`
angkorpeach
  • 浏览: 121914 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java integer和int的问题

 
阅读更多

今天遇到这样一个问题

  • 大小: 42.6 KB
  • 大小: 45.4 KB
分享到:
评论
2 楼 xiaoyu1985ban 2012-01-30  
很显然,在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,对象在内存中被重用,所以使用==进行比较时,实际上参考至同一个对象。

我推断,自动装箱的底层实现实际上是调用了Integer.valueOf(int n)方法,也就是说。形如“Integer a = 100;”的自动装箱的语句等价于Integer a = Integer.valueOf(100);

然后看了一下JDK中相关的源码,发现在valueOf方法的实现中,对于–128到127的值,是从缓存中获取的(IntegerCache),而不是new出来的。

1 楼 angkorpeach 2012-01-28  
咋不能显示全图,点击图片看吧。这个问题不是我本人发现的,是我同学,我同学最后找到的答案如下:Integer 与Short包装类对象,其值如果在-127到+128之间  用“==”运算符会返回true  但是不知道为什么。而且只限于Short型和Integer型,Float Long等就直接全false了 。期待完美解释

相关推荐

    JAVA-int和Integer的区别

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

    JAVA-int和Integer的区别1.zip

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

    Java中Integer两种转int方法比较

    在Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...

    Integer和int的不同

    在Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...

    Java中int和Integer的区别.doc.doc

    Java 中 int 和 Integer 的区别 在 Java 编程语言中,int 和 Integer 是两种不同的数据类型,虽然它们看起来很相似,但它们有着根本的区别。下面我们将详细探讨这两种数据类型的差异。 基本类型 vs 复杂数据类型 ...

    通过实例了解Java Integer类和int的区别

    在比较int和Integer时,Integer会自动拆箱为int类型,然后进行比较。 知识点5:new关键字的影响 使用new关键字创建的Integer对象不会被缓存,而是每次创建一个新的对象。因此,使用new关键字创建的对象进行比较时...

    Java中int和Integer的区别.doc

    Java 中 int 和 Integer 的区别 Java 中的数据类型可以分为基本数据类型和复杂数据类型,int 是基本类型,而 Integer 是一个类。下面是它们之间的主要区别: 1. 数据类型 int 是基本数据类型,直接存储数值,而 ...

    JAVA Integer类型自加实例详解

    JAVA Integer类型自加实例详解是 Java 语言中一个非常重要的知识点,对于 Java 开发者来说,无论是初学者还是高级开发者 都需要了解和掌握这方面的知识。本文将深入探讨 Java Integer 类型的自加实例详解,通过示例...

    java中String类型和int类型比较及相互转换

    本文将深入探讨Java中String类型和int类型之间的比较方法以及相互转换的技术,这对于理解和优化代码逻辑、提升程序性能具有重要意义。 ### 一、String类型与int类型的基本概念 #### 1.1 String类型 String类型在...

    Java中int与integer的区别(基本数据类型与引用数据类型)

    在Java编程语言中,`int` 和 `Integer` 是两种截然不同的数据类型,它们各自具有独特的特性和用途。理解这两者之间的差异对于编写高效、可靠的代码至关重要。 首先,`int` 是Java中的一个基本数据类型,它代表整数...

    java中long类型转换为int类型-java long转int.pdf

    对于整型数据,`long` 和 `int` 是两种不同的类型,它们分别表示不同长度的整数。`long` 类型可以存储更大的值,而 `int` 类型则较小。在处理这两种类型之间的转换时,我们需要注意数据溢出的问题。 1. **向上转换...

    JAVA Integer == equal 比较 doc 比较大小 是否相等

    自动装箱是指 Java 编译器在编译时将基本类型 int 转换为 Integer 对象的过程。 使用 "==" 运算符比较 Integer 对象 在 Java 中,"==" 运算符用于比较两个对象的引用是否相同,而不是比较对象的实际值。因此,当...

    Java int与integer的对比区别

    在Java编程语言中,`int` 和 `Integer` 都是用来表示整数的,但它们在性质和使用场景上有着显著的区别。理解这两者之间的差异对于编写高效且符合Java语法规则的代码至关重要。 首先,`int` 是Java中的一个基本数据...

    详解Java中int和Integer的区别

    Java 中 int 和 Integer 的区别 Java 作为一门面向对象的编程语言,具有两种基本数据类型:基本数据类型(primitive type)和引用类型(reference type)。在 Java 中,基本数据类型只有八个:boolean、char、byte...

    mybatis返回Integer

    首先,我们要理解Java中的基本类型int和引用类型Integer的区别。int是Java的基本数据类型,它占用32位存储空间,直接存储数值,而Integer是int的包装类,是一个对象,它包含一个int类型的成员变量。在Java中,对象的...

    Integer类的使用方法

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

    java中string和int型的相互转换.doc

    Java 中的 String 和 int 类型的相互转换是一个基本的数据类型转换操作,我们可以使用多种方法来实现这种转换,例如使用 `Integer.parseInt()` 方法、`Integer.valueOf()` 方法、`String.valueOf()` 方法等。...

    JAVA中的integer的一些见解

    对JAVA中的int类型和integer类型进行透彻分析的一个文档 很有帮助的哦 亲!

    java中int_char_string三种类型的相互转换

    Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...

Global site tag (gtag.js) - Google Analytics