基本类型
Java 中的基本类型有
8
种,分别是:boolean, byte, char, short, int, float, double, long。
包装类型
- boolean — Boolean
- byte — Byte
- char — Character
- short — Short
- int — Integer
- float — Float
- double — Double
存储范围
-
boolean:只有 false 和 true 两个值,对应在计算机中就是 0(0x00) 和 1(0x01)。所以它的长度是 1 bit。
-
byte:字节,1 Byte = 8 bit。可以存储的最大范围是 0xFF,所以是 -128 ~ 127。
为什么是 -128 ~ 127?
首先范围是:0x00 ~ 0xFF;因为二进制数字的最高位表示符号位(正负),所以从 0x80(包括0x80)向后都在计算机中表示负数了;那在 0x00 ~ 0xFF 中,最大是 0x7F(127),最小是 0x80(-128);所以这些数的范围就是:-128 ~ 127。 -
short:2 字节(byte)。
-
int、float:4 字节(byte)。
-
double、long: 8 字节(byte)。
浮点数在计算机中的表示可以学习:
[计算机基础]浮点数在计算机中的表示
拆箱(unboxing)与装箱(boxing)
以 int、Integer 这一对来举例,直接使用例子来说明拆装箱时机:
-
int 和 Integer 作比较时应该是自动拆箱,如下测试:
控制台输出:
true -
一个经典的问题
控制台输出:
true
false看下面代码就知道原因了:
自动装箱的时候使用 valueOf 方法,这里缓存了 -128 ~ 127 之间的 Integer 对象: