`
beyondsky
  • 浏览: 2263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Integer

阅读更多
Integer i = 100;
Integer j = 100;
Integer m = new Integer(100);
Integer x = 200;
Integer y = 200;
System.out.println(i == j);
System.out.println(i == m);
System.out.println(x == y);

为什么i==j是true;x==y是false?

解答:有些primitive值会被unbox成常量、不可变的wrapper对象,-127到127之间的值是不可变的wrapper类型,虚拟机对i和j使用了同样的对象实例及内存地址。
分享到:
评论
1 楼 skydream 2008-03-18  
挺简单的东西,怎么讲得这么复杂?wrapper对象啥的。

看看Integer的源代码就知道了,其实就是Integer把-127-128之间的每个值都建立了一个对应的Integer对象,类似一个缓存。由于Integer是不可变类,因此这些缓存的Integer对象可以安全的重复使用。

比如Integer.valueOf(int),就是先判断是否在-127-127之间,如果是直接return已经存在的对象,否则就只能new一个了。

这也就是为什么要尽量写Interger.valueOf(int),而不是new Integer(int)了。

相关推荐

    Transform Coding with Integer-to-Integer Transforms.pdf

    ### Transform Coding with Integer-to-Integer Transforms #### 概述 《Transform Coding with Integer-to-Integer Transforms》一文由Vivek K Goyal撰写,发表于2000年3月的IEEE Transactions on Information ...

    HugeInteger大整数计数器作业

    HugeInteger Class) Create a class HugeInteger that uses a 40-element array of digits to store integers as large as 40 digits each. Provide member functions input, output, add and subtract. For ...

    Clock_Integer 指令库应用例程.rar

    《Clock_Integer 指令库应用详解》 在嵌入式系统开发中,精确的时钟管理是至关重要的。Clock_Integer 指令库提供了一种高效、灵活的方式来处理与时间相关的任务,尤其是在实时操作系统(RTOS)或者微控制器(MCU)...

    bigdecimal转integer.docx

    在 Java 编程中,`BigDecimal` 和 `Integer` 是两个不同类型的数值表示。`BigDecimal` 用于处理精确的浮点数运算,适合财务或金融计算,因为它可以避免浮点数计算中的精度问题。而 `Integer` 是 Java 中的整数类型,...

    Mybatis Generator将tinyint映射成Integer的解决办法.pdf

    在使用MyBatis Generator生成Java DAO层代码时,可能会遇到将数据库中的tinyint类型映射成Integer类型的问题。这个问题在上述描述中得到了详细的解释。首先,我们来看一下问题的背景和原因。 在Java环境中,使用...

    mybatis返回Integer

    在使用MyBatis进行数据操作时,我们经常会遇到关于返回值类型的困扰,特别是涉及到基本类型int和对象类型Integer之间的转换。标题"mybatis返回Integer"指的是在MyBatis的映射文件或者Mapper接口中,使用Integer作为...

    mybatis逆向工具generator,中文注释,Byte改Integer

    在给定的标题中,“mybatis逆向工具generator,中文注释,Byte改Integer”表明这是一个定制版的MyBatis Generator,特别之处在于它对生成的代码进行了修改,将原本自动产生的`Byte`类型字段改为了`Integer`类型。...

    android数组资源string-array integer-array的用法

    本篇文章将深入探讨`string-array`和`integer-array`的用法,以及如何在XML中定义和使用它们。 首先,`string-array`是Android中用于存储字符串数组的资源。在Android的资源XML文件(通常位于res/values/strings....

    Java8 将List<Integer> 转换成以逗号分割的String字符串

    在Java编程中,将一个`List<Integer>`转换成以逗号分隔的`String`字符串是一种常见的需求,尤其是在处理数据展示或格式化输出时。Java 8引入了新的特性和方法,使得这种转换变得更加简洁和高效。下面我们将深入探讨...

    convert string to integer

    在本篇文章中,我们将深入探讨如何在不同的编程语言中实现`convert string to integer`的功能,以帮助开发者更好地理解和应用这个概念。 首先,让我们以 Ruby 为例,这可能与提供的压缩包文件 `string_to_integer....

    义一个整数集合类integerSet。这种类型的对象可以存储10个20~80之间的整数,即他的内部有一个整型数组存储数据。编程:

    根据给定文件的信息,我们可以对整数集合类`integerSet`进行详细的知识点解析与功能实现探讨。 ### 整数集合类integerSet #### 类定义 `integerSet`类用于存储10个位于20至80之间的整数。此类包含了一个整型数组...

    c++ 大整数库 big integer

    在C++编程中,大整数(Big Integer)是指能够表示超出普通整型变量范围的数值类型。在标准C++库中,没有内置的大整数支持,因此开发人员需要依赖第三方库来处理这类需求。"big integer"库是其中一个解决方案,它由...

    Integer类的使用方法

    ### Integer类的使用方法详解 在Java编程语言中,`Integer`类是一个非常重要的封装类,它用于将基本数据类型`int`封装成对象。这不仅增强了数据的灵活性,还提供了许多实用的方法来处理整数相关的操作。下面,我们...

    JAVA-int和Integer的区别

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型(Primitive Type),它...

    POJ1503-Integer Inquiry

    【标题】"POJ1503-Integer Inquiry"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这类题目通常要求参赛者编写程序来解决特定的算法问题,以此锻炼和测试编程技能。 【描述】"解题...

    JAVA-int和Integer的区别1.zip

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型之一,它直接存储在栈...

    创建一个IntegerSet(集合类).zip

    本文将深入探讨如何在C++中创建一个名为`IntegerSet`的集合类,以及在这个过程中涉及的关键知识点。 首先,集合类通常用于存储和操作一组特定类型的元素,比如整数。在C++中,我们可以通过定义一个类来实现这个概念...

    ninteger_ninteger_分数阶系统_分数阶_

    总的来说,"ninteger_ninteger_分数阶系统_分数阶_"工具箱为研究和工程应用提供了强大的分数阶系统建模和控制手段,有助于推动分数阶系统理论的发展和实际应用的进步。对于控制系统设计者和研究人员来说,掌握和利用...

    170: Warning: (1681, ‘Integer display width is deprecated and will be removed in a future release.’)

    在Python的数据库操作中,尤其是当你使用pymysql库连接MySQL数据库时,可能会遇到一个警告,提示"Integer display width is deprecated and will be removed in a future release." 这个警告源于MySQL数据库的一个...

    pls_interger 和binary_integer的区别与多种数据类型说明

    与 PLS_INTEGER 的区别在于溢出时的处理,BINARY_INTEGER 型的变量会被自动指派给一个 NUMBER 型,而 PLS_INTEGER 型的变量将会发生错误。 字符类型 字符类型包括 CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR 和 ...

Global site tag (gtag.js) - Google Analytics