30.Java简单数据类型
Java有8种简单类型:四种整型,两种浮点型,一种字符型,一种用于表示true/false的布尔类型。
其中,整型数据类型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
char也可以看成是整型数据,但它是无符号的(没有负数)。
1.布尔类型
布尔类型的数据用于表示逻辑上的“真”或“假”,在Java中,boolean类型的数据只能取值true或false。不能用整型的0或1来替代。同时,boolean类型的数据也不能转换成其他类型的数据。除了布尔类型,其他的几种简单数据类型都可以有相应的方法进行相互转化。
例如: boolean b1 = false;
booealn b2 = true;
注意,绝对不要给false或者true用双引号括起来。true和false不是关键字,但是在Java中也不允许用这两个单词做标识符。因为它俩是代表着这两个特殊的布尔值。
2.字符类型
字符(char)类型数据用来表示通常意义上“字符”。字符常量是用单引号括起来的单个字符。
Java与众不同的特征之一就是Java对各种字符的支持,这是因为Java中的字符采用16位的Unicode编码格式,Unicode被设计用来表示世界上所有书面语言的字符。Char简单类型保存一个16位的Unicode字符。
Unicode字符通常用十六进制编码形式表示,范围是‘\u0000’~‘\uFFFF’,其中前缀‘\u’标志着这是一个Unicode编码字符,其中前256个(‘\u0000’~‘\u00FF’)字符与ASCII码中的字符完全重合。
char型数据只能记录单个的字符值,为表述更多的文字信息,java语言还提供了String类型----记录由多个字符组成的字符串。前面已经提醒过了,String不是简单数据类型,是引用类型。
char类型的数据用单引号来表示,注意它和String类型数据的区别,例如,‘A’表示的是一个char类型的数据,而“A”表示的是一个String类型的数据,它们的含义是不同的。
Java语言中还允许使用转义字符‘\’来将其后的字符转变为其它的含义,例如,如果需要在java中使用一个绝对路径:c:\tsinghua\java,如果直接在程序中写String path = “c:\test\java”,则不会得到你期望的结果,因为java将“\”当成转义符了,所以你必须用\来转义\。这时候应该这样来写:String path = “c:\\test\\java”;
3.整数类型
整数类型分为四类:byte、short、int以及long,它们的差别在于它们所占用的内存空间和表数范围不同。
byte 1字节 -128 ~ 127
short 2字节 -215 ~ 215-1 (-32768~32767)
int 4字节 -231 ~ 231-1 (-2147483648~2147483647)
long 8字节 -263 ~ 263-1
通常情况下,int是最常用的一种整型数据,它也是Java中整数常量的默认类型。在表示非常巨大的数字时,则需要用到更大范围的long。对于前面三种整数数据类型的数据,只需要直接写出数据就可以了,而对于长整形(long)数据,需要在长整型数据后面加上L或l来表示。但是很显然,l与数字1在阅读的时候是非常容易混淆的,所以为了不必要的麻烦,这里建议用大写L。
整型常量虽然默认为int类型,但在不超过其表数范围的情况下,可以将int类型的数据直接赋给char、byte、short类型的变量。要注意前提,否则编译会提示,超出表数范围,编译报错。而且注意这里包括char型。因为虽然char是字符型,但在进行存储数据时候,存储的是该字符的unicode编码,本质上仍然是整型数据。
Java中允许使用三种不同的进制形式表示整型变量:八进制、十进制、十六进制。十六进制数据通过加上前缀0x来表示,八进制数据通过加上前缀0来表示。一旦遇上了这样的代码:
int i = 010,千万不要自作聪明的把0去掉。这里010就是8进制数据了,换算出10进制就是8!
4.浮点类型
Java浮点类型有两种:float和double。Java浮点类型有固定的表数范围和字段长度。和整数类型一样,在Java中,浮点类型的字段长度和表数范围与机器无关,这点是由Java平台无关性特性决定的。这是与其他的同期的面向对象编程语言的巨大不同。
float 4字节 -3.403E38~3.403E38
double 8字节 -1.798E308~1.798E308
double类型的浮点类型数据正如它的名字所揭示的,它表示精度是float的两倍(因此也将double类型的数据称为双精度类型的数据)。表示float类型的数据需要在数字后面加上F,用于和double类型数据相区别。
Java语言浮点类型常量有两种表示形式:
十进制数形式,必须含有小数点,例如3.14、314.0、.314。否则将被当作int型常量处理,例如314。
科学记数法形式,如3.14e2、3.14E2、314E2。注意,只有浮点类型才能采用科学记数法表示,因此314E2也是浮点型常量,而不是int型。
Java语言的浮点型常量默认为double型,要声明一个常量为float型,则要在它数字的后面加f或F。例如:
3.0表示一个double型常量,占64位内存空间。
3.0f表示一个float型常量,占32位内存空间。
另外,有三种特殊的浮点值:正无穷、负无穷以及NaN,用于表示溢出和出错。例如,用一个0去除一个正数,会得到一个正无穷(infinity),而0/0或者对一个负数开平方则会得到一个NaN。NaN是一个非常特殊的值,特殊到什么地步?它甚至和自己都不相等!
前面说到了在Java的简单数据类型之间,除了布尔类型之外,其他都可以相互转化,下篇就说说转化的方式和规律。
上一篇: 32.Java引用类型
下一篇: 29.Java数据类型