Java的数据数据类型大致可以划分为基本数据类型和引用数据类型。基本数据类型有
当然,我们在平时常常还会用到String字符串。对与String字符串并不是基本数据类型,它是Java提供的一个封装类,使用时要注意。
基本类型的扩展 整数类型
对于整数类型的扩展,我们首先来看一下进制。在我们日常生活中使用最多的当属十进制,而在计算机中常用的有二进制、八进制(0致7)以及十六进制(0~F)。
int a1=10;int a2=010;int a3=0x10;System.out.println(a1);System.out.println(a2);System.out.println(a3);
运行以上程序得到结果:
从结果中我们看到给变量赋值可以使用不同的进制八进制(0开头),十六进制(0x开头)。
浮点数类型
对于浮点数,我们来看一段程序
float b1= 1.11F; double b2=1.11; float b3=1.11F; double b4=1.11; System.out.println(b1==b2); System.out.println(b1==b3); System.out.println(b2==b4);
运行结果:
对于b1和b2来说两者赋值都是相同的值,只有数据类型不一致。在将两者做对比时其结果为不相等,这又是为什么呢?我们知道float与double的区别在与两者的所占字节不一样对应的表示范围和精度也就不一致。而在对浮点数表示时,由于精度表示范围不同选用float和double会进行不同的舍入操作。最终也就会使得两者数据不一致。尽管,我们在表面上和测试时看到数据时一致的,但是也只是接近所赋值。因此,在做数值比较时尽量不要使用浮点数。
字符类型
对于char类型,在计算机中如何表示字符呢?在计算机中只有数据,所以采用对字符进行编码,每一个字符对应一个编码。ASCLL码便是按照对字母和常用字符进行编码,用编码操作字符。但是,对于汉字又应该如何表示呢?在目前的计算机中,采用了国标码和区位码来对汉字进行编码。
接下来,我们来了解一下字符与其对应的编码。
char c1='a'; char c2='中'; System.out.println(c1); System.out.println(c2); System.out.println((int)c1); System.out.println((int)c2);
运行结果:
从结果中看到字母a的编码为97,汉字‘中’的编码为20013。在JAVA中编码在Unicode表中。该表将U0000~UFFFF对字符进行编码。这里我们测试一下:
char c4='u0061'; System.out.println(c4);
运行结果:
可以看到u0061对应字母a。