(1)基本数据类型
整型:指的是byte、short、int、long四种类型。
Java中的整数值有4中表示方式:十进制、二进制、八进制、十六进制,其中,二进制的整数以0B或0b开头;八进制的整数以0开头;十六进制的整数以0x或0X开头,其中10~15分别以a~f(A~F)表示。
需要注意的是,计算机以补码的形式保存所有的整数。补码的计算原则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。
字符型:通常用于表示单个字符,必须使用(‘ ’)括起来。
浮点型:指的是float和double,分别表示单精度浮点数和双精度浮点数。
需要注意的是,Java语言的浮点类型默认是double类型。若当成float类型处理,则在浮点型数值后紧跟f或F。
只有浮点类型的数值才能用科学计数法形式表示。比如,512E2是浮点类型的值,而51200是一个int类型的值。
(2)基本类型的类型转换之自动类型转换
byte(1字节)->short(2字节)->
int(4字节)->long(8字节)->float(4字节)->double(8字节)
char(2字节)- >
上图中箭头左边的数值类型可以自动类型转换为箭头右边的数值类型。
比如, byte b =9 ;
char c = b; //error ,byte类型变量不能自动类型转换为char类型
double d = b;//true ,byte类型变量可以自动类型装换为double类型
(3)基本类型的类型转换之强制类型转换
通常情况下,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换为基本类型。
比如,String s = "68";
int i = Integer.parseInt(s);//使用Integer的方法将一个字符串转换成int类型
Java为8种基本类型都提供了对应的包装类:boolean对应Boolean,byte对应Byte,short对应Short,int对应Integer,long对应Long,char对应Character,float对应Float,double对应Double,8个包装类都提供了一个parseXxx(String str)静态方法用于将字符串转换成基本类型。
(4) 表达式类型的自动提升
当一个算术表达式中包含多个基本类型的数值时,整个算术表达式的数据类型将发生自动提升。
1)所有byte、short、char类型将自动提升到int类型。
2)整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
3)若表达式中包含字符串,就是另一种情况了。因为把+放在字符串和数值类型之间时,这个+是字符串连接运算符,而不是进行加法运算。
比如, System.out.println("Hello!"+'a'+7); 输出的的是Hello!a7
System.out.println('a'+7+"Hello!");输出的是104Hello!