第一类:逻辑型boolean
boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。
第二类:字符char
1、JAVA中,char占2字节,16位。可在存放汉字
2、char赋值
char a='a'; //任意单个字符,加单引号。
char a='中';//任意单个中文字,加单引号。
char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。
注:只能放单个字符。
3、char运算
char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。
示例:
char m='a'; //a
char m='a'+'b'; //——Ã。 char类型相加,提升为int类型,输出对应的字符。注,在CMD.exe用输出结果是问题?,不同的编码输出显示不一样。Eclipse中须改成UTF-8。
int m='a'+'b'; //——195。195没有超出int范围,直接输出195。
char m='a'+b; //——报错。因为b是一个赋值的变量。
char m=197; //——Ã。输出字符编码表中对应的字符。
char m='197'; //——报错。因为有单引号,表示是字符,只允许放单个字符。
char m='a'+1; //——b。提升为int,计算结果98对应的字符是b。
char m='中'+'国'; //——42282。
char m='中'+'国'+'国'+'国'; //——报错。int转char有损失。因为结果已经超出char类型的范围。
int m='中'+'国'+'国'+'国'; //——86820
char m='中'+1; //——丮。1是int,结果提升为int,输出对应的字符。
char m='中'+"国"; //——报错。String无法转换为char。
System.out.println('中'+"国"); //——中国。没有变量附值的过程。String与任何字符用“+”相连,转换为String。
总结:用单引号''标识,只能放单个字符。char+char,char+int——类型均提升为int,附值char变量后,输出字符编码表中对应的字符。
第三类:整数型(byte、short、int、long)
第四类:浮点型(float、double)
在数学中0到1有无数个浮点数;而计算机是离散的,所以表示的时候有误差,计算机用精度(小数点后几位来表示正确),比较浮点数时a==0.1是不合适的,应该a-0.1==0;如果a是0.1,则即使有误差 a-0.1==0因为a和0.1都被表示为一个有误差的计算机二进制。与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响,Java复电类型常量有两种表示形式:
- 十进制数形式,例如:3.14 、314.0、 .314
- 科学计数法形式,例如:3.14e2、3.14E2、100E02
Java浮点型常量默认为double型,如要声明一个常量为float型,则需要在数字后面家=加f或F,如:
double d = 12345.6;//正确
float f = 12.3f; //必须加f否则会报错