Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 1.68 KB

基本类型.md

File metadata and controls

57 lines (40 loc) · 1.68 KB

基本类型

简单说一下

8大基本类型

特别注意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);

注意Integer.valueOf

// 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);
}