`
aijuans
  • 浏览: 1578568 次
社区版块
存档分类
最新评论

Integer和int使用解惑

 
阅读更多

前几天群里,大家对Integer和int的区别,讨论的火热,最后以吵闹结束!

先举一个例子:

运行结果:

false

true

true

false

false


从常理解释(其实是错误的解释):

in1>=in2 和 in1<=in2 同时成立true,则in1==in2 也应该返回true,但是in1==in2返回false,这是争论的起点。


正确的解释:

in1==in2 比较对象地址和对象的值, in1>=in2 和 in1<=in2 编译时,自动调用了Integer.intValue(int i); 因此,它们其实比较的是基本数据类型int的值,因此很容易理解, in1>in2 和 in1<in2 都返回false。

下面是反编译后的JVM指令作为实证:

JVM指令


分享到:
评论

相关推荐

    Integer和int的不同

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

    JAVA-int和Integer的区别

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

    Integer类的使用方法

    - `Integer(int value)`: 使用一个`int`值创建`Integer`对象。 - `Integer(String s)`: 使用一个表示整数值的`String`创建`Integer`对象。 示例代码: ```java Integer i = new Integer("1234"); // 创建一个值为...

    JAVA-int和Integer的区别1.zip

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

    Java中Integer两种转int方法比较

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

    mybatis返回Integer

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

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

    Java 中 int 和 Integer 的区别 ...int 和 Integer 是两种不同的数据类型,虽然它们都可以表示数字,但它们的底层实现和使用方式却有所不同。在 Java 编程中,需要正确地区分这两种类型,以免出现错误。

    Java中int和Integer的区别.doc

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

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

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

    第7讲 int和Integer有什么区别1

    【标题】:“第7讲 int和Integer有什么区别1” 【描述】:“1. 理解自动装箱、拆箱2. 源码分析3. 原始类型线程安全” 【标签】:“java 数学” 【正文】: 在Java编程中,`int`和`Integer`是两种不同的数据类型,...

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

    将int类型的值转换为String类型,可以使用`Integer.toString(int i)`方法或简单地通过字符串拼接实现。 ```java int num = 123; String strNum = Integer.toString(num); // 将整数123转换为字符串"123" // 或者...

    详解Java中int和Integer的区别

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

    bigdecimal转integer.docx

    - `setScale()` 和 `intValue()` 结合使用适用于需要保留小数位并转换为整数的情况。 在实际开发中,选择哪种转换方法取决于具体需求。`BigDecimal` 提供的灵活性和精度使其成为处理精确数值计算的理想选择。了解...

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

    Java Integer类和int的区别 Java Integer类和int是Java中两个相关却又不同的概念,很多开发者容易混淆它们之间的区别本文将通过实例来了解Java Integer类和int的区别。 知识点1:自动装箱和拆箱 在Java中,我们...

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

    * NCHAR、NVARCHAR2:国家字符集,与环境变量 NLS 指定的语言集密切相关,使用方法和 CHAR、VARCHAR2 相同。 行类型 行类型包括 RAW 和 LONG RAW 两种类型,用来存储二进制数据,不会在字符集间转换。 * RAW:...

    面试中很多人走过的坑,看完让你知道Integer和Int

    在Java编程语言中,面试时常会遇到关于Integer与int之间区别的问题,这些问题是考察开发者对数据类型、内存管理和自动装箱拆箱的理解。本文将深入解析这些知识点,帮助你避免在面试中踩坑。 首先,Java有两类数据...

    int与Integer的区别(Java各种数据类型详细介绍及其区别).doc

    总结,`int`和`Integer`在Java中具有不同的特性和用途,选择使用哪种类型取决于具体的需求,如性能、内存管理和操作灵活性。在处理大量数据或计算时,基本类型通常更高效;而在需要对象方法或与集合框架交互时,引用...

    解决时间戳long转换int溢出(即转换值为负数) long转int

    int intValue = Integer.parseInt(String.valueOf(longValue)); ``` 对于毫秒级别的转换,由于int类型只能表示10位数字,而毫秒时间戳通常需要13位(1970年至今已超过10位),所以直接转换肯定会溢出。如果你确实...

    每日一题:Integer、int 的区别.docx

    图文并茂吃透面试题,看完这个,吊打面试官,拿高薪offer!

Global site tag (gtag.js) - Google Analytics