注意:整数数值默认为int类型,如果需要定义一个long类型的变量,当超出int范围时,需要在该值后面加上L或l
int a = 34; long b = 40L; long c = 40l; 浮点型 占用字节数比特/位取值范围float(单精度)432【-3.402 E+38F~+3.402 E+38F】double(双精度)864【-1.79 E+308~+1.79 E+308】注意:float有效位是6~7位,double有效位是15位。浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加f或者F
double a = 4.13; float b = 4.13f; float c = 4.13F; 字符型 占用字节数比特/位取值范围char(字符型)216【\u0000\uffff】即为065535 //1、字符参与运算(是查找ASCII里面的值) char a = 'a'; int b = 1; System.out.println(a + b);//结果为98 //2、字符串参与运算(就是字符串的拼接,字符串在前面就做拼接,数值在前就做相加) System.out.println("hello" + 'a' + 1);//helloa1 System.out.println('a' + 1 + "hello");//98hello System.out.println(5 + 5 + "=5+5");//10=5+5 System.out.println("5+5=" + 5 + 5);//5+5=55 布尔类型 占用字节数比特/位取值范围Boolean(布尔类型)11true和false常见的转义字符:
转义序列名称Unicode值\b退格\u0008\t制表\u0009\n换行\u000a\r回车\u000d\ "双引号\u0022\ ’单引号\u0027\ \反斜杠\u005c定义:就是给类、接口、方法、变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。
组成规则:英文大小写字母(字符统称—>中英文皆可,强烈不推荐使用中文); 数字; $和_
注意事项:不能以数字开头;不能是java中的关键字;区分大小写
标识符需要遵循的规范:1、所有标识符必须要见名知意;2、变量、函数、语句块的名称满足小驼峰(首字母小写,其后每个单词首字母大写);3、类名满足大驼峰 (每个单词首字母大写),常量所有字母大写,单词之间用_隔开
//标识符的注意事项 int $_abc123 = 1; int 123$_adad = 2; ----->这是错的!!! int _abc$123 = 3; int abc$_123 = 4; //标识符遵循小驼峰命名 int helloWord = 4; //常量的书写格式 final int HELLO_WORD = 5;A:数据类型 变量名 = 初始值
B:数据类型 变量名;
变量名 = 变量值;
变量的三种操作:
1、存值;
2、取值;
3、改值
变量的关注点:
1、数据类型;
2、变量名称;
3、变量的值;
4、变量的作用域,根据{}来定。同一个作用域当中,变量不能重名
变量的使用注意事项:1、变量本身存在;2、变量的值要存在;3、使用时一定要存在于作用域之内,其作用域:从定义开始,到离它最近的左大括号相对的右大括号结束。
变量一旦使用,那么必须保证它的值已经存在(形式参数除外)
//变量的声明 int a ; //变量的初始化 a = 1; //同一作用域中变量重名,错误 int a = 2; ----->变量重名!!! //变量只声明,没有初始化,会报错 int a; System.out.println(a); ---->会报错 //不同作用域里面,变量可以重名 for (int i = 0; i < 5; i++) { System.out.println(i); } for (int i = 0; i < 5; i++) { System.out.println(i); }定义:数据在不同类型之间进行转换,boolean类型不参与转换
默认转换:A、从小到大;B、byte,short,char----->int,long,float,double;
C、byte,short,char之间是平级的,不相互转换,直接转成int类型参与运算强制转换:可能会有精度的损失,一般不建议这样使用。
格式:**目标数据类型 变量名 = (目标数据类型)被转换的数据** byte a =(byte)123; long b = (long)45555555;注意:当byte、short、char在运算时,会自动向上转型为int类型,所以返回的结果是int类型,如果接收的类型不是int类型,则会报错。
public static void main(String[] args) { byte a = 1; byte b = 2; byte c = a+b;---->这里报错!!! }图中有6个实心箭头,表示无信息丢失的转换;有三个虚箭头,表示可能有精度损失的转换
**小精度转大精度可以自动转换,int值类型的值会自动地转换成double类型 **
有时候需要将double 转换成int,这就需要进行强制类型转换,但是会丢失一些信息
double a = 4.0; int b = a; ----->这里会丢失精度!!!