首页 > Java > java教程 > 尽管存在包装类,为什么 Java 程序员仍偏爱原始类型?

尽管存在包装类,为什么 Java 程序员仍偏爱原始类型?

DDD
发布: 2024-11-25 13:15:12
原创
489 人浏览过

Why Do Java Programmers Favor Primitive Types Despite the Existence of Wrapper Classes?

为什么程序员仍然在 Java 中使用原始类型?

尽管 Java 5 中引入了装箱和拆箱,但许多开发人员继续使用原始类型(如 int)优于其对象对应类型(如 java.lang.Integer)。这种做法回避了为什么会发生这种情况的问题,因为对象类型提供了额外的便利。

正如 Joshua Bloch 的“Effective Java”(第 5 条:“避免创建不必要的对象”)中所述,使用原语可以产生显着的性能优势。在他的代码示例中,使用 Long 对象对 long 求和需要 43 秒,而使用基元将过程加速到 6.8 秒。

导致使用基元的另一个因素是对象类型中缺乏本机值相等性。要确定相等性,必须使用详细的 equals() 方法,这与可用于基元的高效 == 运算符不同。

考虑以下代码片段:

class Biziclop {

    public static void main(String[] args) {
        System.out.println(new Integer(5) == new Integer(5)); // false
        System.out.println(new Integer(500) == new Integer(500)); // false

        System.out.println(Integer.valueOf(5) == Integer.valueOf(5)); // true
        System.out.println(Integer.valueOf(500) == Integer.valueOf(500)); // false
    }
}
登录后复制

输出显示不一致new Integer() 和 Integer.valueOf() 之间的值相等。虽然 Java 语言规范 (JLS) 要求缓存至少包含 256 个整数享元 ([-128; 127]),但 JVM 实现者可以扩展此范围。这意味着某些值可能会缓存在某些系统上,但不会缓存在其他系统上,从而导致意外行为。

以上是尽管存在包装类,为什么 Java 程序员仍偏爱原始类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板