Java基本类型:byte,short、int、long、float、double、boolean、char
Java 是一种强类型的语言。通俗点讲,在Java中村春的数据都是有类型的,而且必须在编译时就确定其类型。Java中有两累数据类型:一种是今天写的基本数据类型,另一种是引用数据类型(类,接口、数组)。
在Java中,基本数据类型变量存放的是数据本身,而引用类型变量存的是保存数据的空间地址,有点像C++中的指针。
a.关键点(时刻需要记住的)
1、整型字面量默认为int型,浮点型字面量默认为double型
2、布尔型boolean有且仅有两种取值:true或者false,不像C++中0为false,非0为真
3、各种类型的长度固定,不像C++中各种类型的长度根据机器不同而不同。具体如下:
类型 | 长度(字节) |
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
4、各种数的类型都是带符号的,即除了char,其余的每种类型都可以表示负数,不像C++中带符号和不带符号的为两种类型。
b.各种具体类型
1.byte、short
byte -128-127;
short -32768-32767
byte a=23;//right,当把一个在byte范围之内的字面量赋给byte,不会出现错误
byte b=456;//error,当把一个超出其范围的字面量赋给byte时,会出现错误,此时可以将其强制类型转换
byte b=(byte)456;//right,强制类型转换
byte c=2+a;//error,也许会在这比较奇怪,因为结果为25,没超出范围为什么会错呢?这是因为2为字面量int型,运算为int+byte,会转换成int+int,结果会得到一个int型,将一个int / //型赋给byte型会产生错误,因为int为4个字节,同样可以对其进行强制转换
short与byte类似,只不过长度为2个字节
2.int
int为4个字节
3.long
long为8个字节
long l=121212121212;//errror,将一个超出int范围的字面量赋给long型会出错,尽管没有超出long型的范围,但因为字面量默认为int型,所以错误是发生在将字面量默认为int的 //过程中,解决方法是在字面量的后面加上“L”或者“l”,因为小写l很像数字1,所以建议使用L
long a=121212121212L;//right
4.lfloat
float为4个字节,单精度浮点型
float f=3.3;//error,因为浮点字面量为double型,将一个double类型赋给float产生错误,解决方法是在字面量后面加上“F”或者“f”,又或者强制类型转换,但这将损失精度
float a=3.3F;//right
float b=(float)3.3;//right,但是损失类精度
5.double
double为8个字节,双精度,没什么好讲的
6.boolean
只能取两个值:true或者false
7.char
char为2个字节,无符号,所以范围为0—65535,学过C++的朋友知道C++中的char是一个字节,这是因为C++采取ASCII编码的原因,只对127个字符进行了编码,所以只需要一个字节,而Java为了包含很多国家的文字符号等等,采取了Unicode编码,包含了更多的字符,所以为2个字节。
char a=2;//right,可以用在其范围内的字面量给其赋值
char b='b';//right,单引号,一个字符
char c='ax';//error
char d=2+a;//error,结果为int型,赋给char型产生错误
总结:
如果我们用IDE的话,很多错误编译器会提醒我们,但是我们还是需要记住一些基本特性。