• 关于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] 对 == 比较结果的影响。

  • 相关阅读:
    codeforce666A_dp
    杭电1789_贪心
    杭电2059_记忆化搜索
    杭电1503_输出最长公共子序列
    杭电1501_dfs和记忆化搜索
    杭电1081_二维dp
    杭电1078_dfs
    coderforce 675C(贪心)
    杭电2571_01背包
    杭电1069_01背包
  • 原文地址:https://www.cnblogs.com/CoolSoul/p/5874631.html
Copyright © 2020-2023  润新知