java的基本数据类型包含8种,如下所示。
一、整数类型,包含byte、short、int、long,分别为1、2、4、8字节。
1)java的整数类型有固定的数值范围和位数,不随具体的操作系统而同步,以支持语言的可移植性。
2)整型常量有三种表示方法,以0开通的八进制,如012,以0x或0X开头的十六进制,如0x1a,还有常见的十进制,如14,十进制表示法不能以0开头。
3)整型常量默认为int型,故声明long型常量需要加l或者L,如long a=100是错误的,应该是long a=100L。
二、浮点类型,包含单精度float、双精度double,分别为4、8字节。
1)java的浮点类型有固定的数值范围和位数,不随具体的操作系统而同步,以支持语言的可移植性。
2)java浮点型常量默认为double型,如需声明一个float型常量,则需要在后面加上f或者F,如float a=2.4是错误的,应该是float a=2.4f
3)java浮点数是有精度一说的,因为在=计算机表示浮点数是离散的,故比较浮点数时,a==0.1是不合适的,应该a-0.1==0;如果a是0.1,则即使有误差 a-0.1==0因为a和0.1都被表示为一个有误差的计算机二进制
三、字符型,包含char,为2字节。
1)字符常量为用单引号括起来的单个字符,采用全球语言统一编码unicode,因具有两字节,故可以存入一个中文。同时支持包含\的转义字符,如‘\n’ 。
2)“s”表示的是一个字符串,虽然只有一个字符,但由于使用双引号,java认为这就是一个字符串。
3)同c和c++一样,java语言也可以将字符当做整数对待,unicode采用无符号编码,故char类型字符可以表示65536个字符,如果想得知一个0-65536之间的整数所代表的的字符,可以使用显示转换得知,如(char)p,同理也可以通过(int)word,得知一个字符对应的整数位置。(p和word皆为变量)
四、布尔类型,包含boolean,为1字节。
1)boolean类型的数据只允许取值true和false,注意区分大小写,不能用0取代false,不能用非0取代true。
2)布尔类型变量不能与整数类型进行转换。
五、实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作
java是面向对象的语言,对于八大基本数据类型,都有一个对应的包装类。
图1、数据类型
图二、八大基本类型对应的包装类