Java基础类型自动装箱(autoboxing)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础类型自动装箱(autoboxing)相关的知识,希望对你有一定的参考价值。

  Java SE 1.5 版本及之后,开始提供自动装箱功能。

  自动装箱,将基础类型“包装”成一种类型:

    基本类型 -->  包装器类

  如下过程可触发自动装箱过程:

    Integer count = 1;

    Double amount = 2.0D

  

  从 Javadoc API 上看,包装器类提供方法,对封装的基础类型进行操作:

    类型转换,如 float --> int

    比较

    ...

 

  值得注意的是,对于 [-128, 127] 之间的数值,自动装箱利用缓存提供内存使用效率。

  即,自动装箱对于该范围的数值,得到的包装器类内存地址不变。

  例如,

    Integer a = 129;

    Integer b = 129;

    System.out.println(a == b);// output true

 

实践:

1、自动装箱出现在变量声明中;

2、考虑使用情景之一,需要对基础类型进行比较、类型转换等操作;

3、若需对包装器类进行 == 比较,建议转换为基础类型后,再进行。

  为了避免缓存数值范围 [-128, 127] 对 == 比较结果的影响。

 

以上是关于Java基础类型自动装箱(autoboxing)的主要内容,如果未能解决你的问题,请参考以下文章

转:Java 自动装箱与拆箱(Autoboxing and unboxing)

java基础---Integer缓存机制---Integer缓存机制

Java基础06包装类toStringequalsfinalimportstatic

Java 自动装箱与拆箱

java 自动装箱

java整型自动装箱的缓存机制