欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

30.Java简单数据类型

程序员文章站 2022-04-29 13:19:55
...

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的简单数据类型之间,除了布尔类型之外,其他都可以相互转化,下篇就说说转化的方式和规律。