Java 基本数据类型
基本数据类型
Java只包含这8种基本数据类型,值得指出的是,字符串String
不是基本数据类型,字符串是一个类,也就是个引用数据类型
。
整型
整型的数值范围
整型的数值范围为:
例如
- 一个byte类型整数在内存里占
位,可以表示的数值范围为: - 一个short类型整数在内存里占
位,可以表示的数值范围: - 一个int类型整数在内存里占
位,可以表示的数值范围为: - 一个long类型整数在内存里占
位,表数范围是:
直接给出的整数值默认为int类型
int是最常用的整数类型,因此在通常情况下,直接给出一个整数值默认就是int类型。除此之外,有如下两种情形必须指出:
- 如果直接将一个较小的整数值(在byte或 short类型的表数范围内)赋给一个byte或 short变量,系统会自动把这个整数值当成byte或者shot类型来处理。也就是
byte a=1
,这里的整数1会直接当成byte类型来处理,short x=3
,这里的整数3
也会直接当成short类型来处理。 - 如果使用一个巨大的整数值(超出了int类型的表数范围)时,Java
不会
自动把这个整数值当成long类型来处理。如果希望系统把一个整数值当成long类型来处理,应在这个整数值后增加l或者L
作为后缀。通常推荐使用大写的L
,因为英文小写l
很容易跟数字1
搞混。也就是long a=2147483648;
这样写, 虽然在Long的表示范围之内,但是编译器还是认为它是一个int类型,2147483648
超出了int的表示范围。所以在编译时会报错,正确的写法为long a=2147483648L;
可以把一个较小的整数值(在int类型的表数范围以内)直接赋给一个long类型的变量,这并不是因为Java会把这个较小的整数值当成long类型来处理,Java依然把这个整数值当成int类型来处理,只是因为int类型的值会自动类型转换到long类型。
数值的表示方式
Java中整数值有4种表示方式:十进制、二进制、八进制和十六进制,其中二进制的整数以0b或0B开头;八进制的整数以0开头;十六进制的整数以0x或者0X开头,其中10-15分别以a-f(此处的af不区分大小写)来表示。下面的代码片段分别使用八进制和十六进制的数。
预览: