简单说一下
特别注意Boolean 未精确定义字节。Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位。
- 装箱:将基本类型用它们对应的引用类型包装起来;
- 拆箱:将包装类型转换为基本数据类型;
int a;
System.out.println(a); // 这里会报错,因为a没有初始化
Integer b = new Integer(); // 构造函数必须传递一个默认值,要不然提示报错,无法初始化
// 看一下Integer的源码的value,
public Integer(int value) {
this.value = value;
}
// 而value,这么以来,创建对象必须初始化咯
private final int value;
float a = 3.14; // 字面量3.14 是double类型, 所以这里会报错
float a = 3.14f; // 这样就不会报错了,需要加个f
// 转型
short a = 1; // short类型
a = a + 1; // short = short + int 会报错, int无法像下转型,但是short可以向上,这样右边就是Int,无法向下
a++; // 这里是a = (short) (a + 1);
// This method will always cache values in the range -128 to 127,
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high) // 条件
return IntegerCache.cache[i + (-IntegerCache.low)];// 取缓存,
// Integeer的源码中:
// static final int low = -128; IntegerCache.low = -128
return new Integer(i);
}