java使用Unicode编码(16进制),可以保存世界上所有语言
基本数据类型
基本类型 | 字节数 | 位数 | 最大值 | 最小值 |
byte | 1byte | 8bit | 2^7 - 1 | -128 |
short | 2byte | 16bit | 2^15 - 1 | -32768 |
int | 4byte | 32bit | 2^31 - 1 | -2147483648 |
long | 8byte | 64bit | 2^63 - 1 | -9.22337E+18 |
float | 4byte | 32bit | 3.40E+38 | 1.4E - 45 |
double | 8byte | 64bit | 1.7976931348623157E308 | 4.9E - 324 |
char | 2byte | 16bit | 2^16 - 1 | 0 |
整形:byte、short、int、long(默认值0)
浮点型:double、float(默认值0.0)
字符型:char(默认值“\u0000”,打印出来为空)
布尔型boolean(默认值false)
引用数据类型:
数组、类、接口(默认值为null)
在类中定义的变量没赋值会被自动初始化,但在方法中定义的变量不会。
整形:
在JAVA中,任何整形常量都是int类型
声明long 数据类型,用L或者l:
因为任何整形常量的默认值为int,那么赋值的时候字面量的大小为 -2^31~2^31-1,不加L就相当于把int转换成long,long的取值范围为-2^65~2^65-1,如果数值超过了这个范围不加L就会报错。
long a=2147483648L;(例如这个数值,不加L就会报错)
强制类型转换(强转是将大的数据类型变成小的数据类型)
1.小数据类型可以自动变为大数据类型(在数学运算)
byte,short,char → int → long → float → double
byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。
2.大数据类型只有强转才能变成小数据类型
byte -int
1.如果整型常量值在byte范围内,则可以直接赋值
2.整形变量转换为byte类型,必须强转。
浮点型:
Java中,所有小数默认为double
要使用float必须在小数后加上F或f
字符型: char
1.char与int可以相互转换
2.字符型数字('0'-'9')与int型数字(0-9)不同,
char a='9';
int b=a;
System.out.println(b);//打出来为ASCII码
int c=Character.digit(a, 10);//如果是数字就会转换成数字,如果是其他字符为-1
System.out.println(c);//打印对应素组数字