Java中有几种基本数据类型?所占用的字节分别为多少?
前提:
在学习基本数据类型之前,我们先认识一下这两个单词:
1、bit --比特位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为0或1
2、byte --字节:字节是计算机存储容量的基本单位,一个字节由8位二进制数组成。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母,两个字节可以表示一个汉字。
1Byte=8bit (1B=8bit)
1KB=1024Byte(字节)=8*1024bit
1MB=1024KB
1GB=1024MB
1TB=1024GB
基本数据类型:
byte 8bit 默认为0,取值-128–127
short 16bit 默认为0,取值-32768–32767
int 32bit 默认为0,取值-21亿–21亿
long 64bit 默认为0,取值-922亿亿–922亿亿
double 64bit 默认为0.0f
float 32bit 默认为0.0d
char 16bit 默认’\u0000’
boolean 1bit 默认false
(boolean 的备注+翻译)
This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.(ref)
这种数据类型代表一个比特的信息,但它的“大小”没有明确的定义。(参考)
测试代码如下:
/**
* 输出各种基础类型的bit大小,也就是所占二进制的位数,1Byte=8bit
*/
private static void getBit() {
//The number of bits used to represent a {@code byte} value in two's complement binary form.
//用来表示Byte类型的值的位数,说到底,就是bit的个数,也就是二进制的位数。
System.out.println("Byte: " + Byte.SIZE);
System.out.println("Short: " + Short.SIZE);
System.out.println("Character: " + Character.SIZE);
System.out.println("Integer: " + Integer.SIZE);
System.out.println("Float: " + Float.SIZE);
System.out.println("Long: " + Long.SIZE);
System.out.println("Double: " + Double.SIZE);
System.out.println("Boolean: " + Boolean.toString(false));
}
执行结果如图:
基本数据类型注意事项:
1、整数默认为int类型;浮点数默认为double类型。
2、如果一个整数的值超出了int类型能够表示的范围,则必须增加后缀“L”(不区分大小写,建议用大写,因为小写的L与阿拉伯数字1很容易混淆),表示为long型。
3、带有“F”(不区分大小写)后缀的整数和浮点数都是float类型的;带有“D”(不区分大小写)后缀的整数和浮点数都是double类型的。
4、编译器会在编译期对byte、short、int、long、float、double、char型变量的值进行检查,如果超出了它们的取值范围就会报错。
5、int型值可以赋给所有数值类型的变量;
long型值可以赋给long、float、double类型的变量;
float型值可以赋给float、double类型的变量;
double型值只能赋给double类型变量