基本数据类型

基本数据类型

基本数据类型_第1张图片基本数据类型_第2张图片


自动装箱

基本数据类型重新转化为对象

// 写法1
Integer num = 9;

// 写法2
Integer num = Integer.valueOf(9);

自动拆箱

对象重新转化为基本数据类型

Integer num = 9;
num--;
  • 进行计算时隐含的有自动拆箱,因为对象是不能直接进行运算的,而是要转化为基本数据类型后才能进行加减乘除

int和Integer有什么区别?

  1. Integer是int的包装类;int是基本数据类型
  2. Integer的默认值是null;int的默认值是0
  3. Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值
  4. Integer变量必须实例化后才能使用;int变量不需要;
  5. Integer可用于泛型;int不可以;

基本类型和包装类型有什么区别?

  1. 包装类型可以为 null,而基本类型不可以

那为什么 POJO 的属性必须要用包装类型而不用基本类型呢?
《阿里巴巴 Java 开发手册》上有详细的说明, 数据库的查询结果可能是 null,如果使用基本类型的话,因为要自动拆箱,就会抛出 NullPointerException 的异常。

  1. 包装类型可用于泛型,而基本类型不可以

泛型使用基本类型时会编译出错。因为泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是 Object 类及其子类。

  1. 基本类型比包装类型更高效

基本类型在中直接存储的具体数值,而包装类型则存储的是堆中的引用
很显然,相比较于基本类型而言,包装类型需要占用更多的内存空间


Integer和int的比较大小


你可能感兴趣的:(java)