`

java中Integer和Long的特殊数据段比较

阅读更多

在java中,我们通常使用到的是Integer和Long,经常做数据之间的比较,如

Integer i=10;

integer j=10;

if(i==j){

System.out.println(i==j);

}

这里输出是true

但是

Integer i=200;

integer j=200;

if(i==j){

System.out.println(i==j);

}

这里输出就是false

 

为什么呢?

看看源码中

public static Integer valueOf(int i) {
        assert IntegerCache.high >= 127;
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

这里有个cache  如果范围是在-128~127之间,是直接从java.lang.Integer类中,直接取cache的地址,这里我们看待Integer i=100时,实际上是执行的Integer i=Integer.valueOf(100);那么可想而知的结果就是指向的是cache数组中值为100的地址,那么直接进行==操作符的比较,是相等的。

 

Long也存在相同的情况

 

那么我们如果是需要比较数值的情况下,尽量使用intValue()进行比较,或者compareTo函数进行比较,或者使用equal进行比较

分享到:
评论

相关推荐

    100家大公司java笔试题汇总

    答:异常是Java中的错误处理机制,用于捕获和处理错误。 15. 在Java中,如何抛出异常? 答:使用throw关键字抛出异常。 Java设计模式 16. 什么是Java中的MVC设计模式? 答:MVC(Model-View-Controller)是Java中...

    long型转换为int型-kaic

    例如在提供的代码段中: ```java public Integer selectCartScalerCount(int userId) { String sql = "select sum(count) from t_cart where userId=?"; int i = Integer.parseInt(String.valueOf(queryForScalar...

    简单的java算法以及 常用的数据体

    根据提供的标题、描述、标签及部分内容,我们可以...以上就是从提供的文件信息中提取的主要知识点,包括Java算法基础、数据结构基础、JDBC以及JavaBean的相关概念和使用。希望这些内容对理解和掌握Java开发有所帮助。

    java字符串长度的求法,附加Java中数据类型转化

    以上介绍了Java中字符串长度的计算方法、如何访问字符串中的特定字符以及不同数据类型之间的转换。这些是Java编程中非常基础也非常重要的知识点。掌握它们可以帮助开发者更高效地处理字符串和其他数据类型的问题。

    LeetCode7 Reverse Integer

    在这段代码中,我们首先定义了一个`long`类型的变量`rev`来存储反转的结果,因为`int`类型可能无法容纳反转后的值。我们使用取模运算符`%`获取`x`的最后一位数字,然后通过乘以10并加上这个数字将`rev`向左移动一位...

    Java的数据类型Java的数据类型

    ### Java的数据类型详解 #### 一、概述 Java是一种强类型语言,这意味着在Java中,所有的变量都必须明确地指定其类型。Java提供了多种数据类型,可以...希望本文能够帮助读者更好地理解和运用Java的基本数据类型。

    Java进制转换实现

    本文将深入探讨Java中如何进行进制转换,包括二进制、八进制、十进制和十六进制之间的转换。这对于任何对Java感兴趣或者正在学习Java的开发者来说都是必备的知识点。 首先,我们来看一下如何在Java中进行基本的进制...

    java面试经典考题2018

    Java中有8种基本数据类型,它们分别是:`byte`、`short`、`int`、`long`、`float`、`double`、`char` 和 `boolean`。除此之外的所有类型都是引用类型。例如,`String` 类虽然非常常用,但它并不是基本数据类型,而是...

    Java全阶段综合笔试面试题(含答案).docx

    - **基本数据类型**: byte、short、int、long、float、double、char、boolean。 - 每种类型都有固定的内存占用和特定用途。 3. **面向对象的四大特性** - **封装**: 将数据和操作这些数据的方法绑定在一起,并...

    01-java基础-基本数据类型.docx

    整型数据是数值型的基本数据类型之一,Java提供了四种整型:byte、short、int和long,按存储范围递增。所有整型常量默认为int类型。当整型运算超出其最大值或最小值时,会发生溢出,这可能导致不期望的结果。为避免...

    JAVA常见异常BUG

    这段代码会引发 `ArrayStoreException`,因为尝试将 `Integer` 对象存储在一个仅能容纳 `String` 类型的数组中。 **解决方法**: 1. **类型检查**: 在存储对象之前确保对象类型与数组中的元素类型相匹配。 2. **泛型...

    Java学习资料-包装类

    总之,Java的包装类为基本数据类型提供了面向对象的特性,它们是Java语言设计中的一环,使得开发者能更灵活地处理数据类型,并且在自动装箱和拆箱的帮助下,提高了代码的可读性和效率。理解和熟练运用包装类是Java...

    Java基础入门教程 Java编程技术02 Java编程基础(4学时)(共55页).pptx

    Java有8种基本数据类型,分为整型(byte、short、int、long)、浮点型(float、double)、布尔型(boolean)和字符型(char)。整型和浮点型的使用与C/C++类似,但需要注意浮点型常量的表示,例如`3.14F`和`123.4D`...

    java入门基础练习小例子

    1. **变量与数据类型**:Java中的基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。初学者会通过实例学习如何声明、初始化和使用这些类型的变量。 2...

    JAVA类与对象及数组习题及答案.pdf

    在本段内容中,我们将会讨论Java编程语言的基础知识点,包括类和对象的使用、基本数据类型、数组、方法的定义和调用等。 首先,我们来看看关于Java的类、对象以及数组的概念。Java是一种面向对象的编程语言,它的...

    java复习资料 1

    它有八种基本数据类型:byte、short、int、long、float、double、char和boolean,以及对应的包装类型:Byte、Short、Integer、Long、Float、Double、Character和Boolean。基本类型直接存储值,而包装类型则提供了对...

    java考试复习资料

    在这种架构中,客户端负责用户交互,而业务逻辑和数据存储则由服务器处理。与B/S相比,C/S架构对客户端的要求较高,通常需要安装专门的应用程序。 #### 二、网络协议 网络协议定义了数据在网络中传输的标准规则。...

    Introduction to java programming

    Java支持多种基本数据类型,包括数值类型和非数值类型: - `byte`: 占用8位,用于存储小范围的整数。 - `short`: 占用16位,用于存储中等范围的整数。 - `int`: 占用32位,是Java中最常用的整数类型。 - `long`: ...

    java上机实验报告

    在源程序`LangDemo.java`中,`Byte`, `Short`, `Integer`, 和 `Long`的`valueOf`方法被用来将字符串转换为对应的数值类型。然而,如果字符串不能转换为有效的数值,如尝试将字符串"abc"转换为数字,程序会在运行时抛...

Global site tag (gtag.js) - Google Analytics