`
javaliwei
  • 浏览: 13806 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Integer 和 int 值比较的注意事项

    博客分类:
  • java
阅读更多
Integer生成的新对象,如果值在-128到127之间,是直接在缓存池中取的

也就是说不是new的

所以
Integer a=100;
Integer b=100;

a==b 是true



Integer a=200;
Integer b=200;

a==b 是 false
1
1
分享到:
评论
2 楼 javaliwei 2010-03-18  
张洪财 写道
验证了。果真。 不明白为什么只把-128到127存在栈中?

java.lang.Integer中关于valueOf的源代码是怎样的:
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}

也就是在这个范围内的数值是取缓存中的值,多次使用可以节省空间和提高效率。
正好和Byte 类型的大小一致,应该是考虑到这个范围内的值使用频率最高吧。
1 楼 张洪财 2010-03-16  
验证了。果真。 不明白为什么只把-128到127存在栈中?

相关推荐

    Java基础之Integer使用的注意事项及面试题

    "Java基础之Integer使用的注意事项及面试题" Java 中的 Integer 对象是一种 wrapper class,它可以将基本类型 int 转换为对象。然而,在使用 Integer 对象时,需要注意一些细节,以避免出现意外的结果。 首先,...

    java 面试题 java 基础 java 注意事项

    在Java编程领域,面试题常常围绕基础概念、最佳实践以及注意事项。以下是一些常见的Java面试知识点的详细解释: 1. **面向对象的特征** - **抽象**:抽象是将复杂的现实问题简化为一系列概念,忽略不重要的细节,...

    嵌入式c语言面试

    * 注意事项:16 位机的整型数溢出问题,使用长整型符号 L。 答案:#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 2. 宏定义 MIN * 基本语法知识:宏定义的基本知识,三重条件操作符的使用。 * 应用场景:编写...

    【华为OD机试真题2023JAVA&JS】几何平均值最大子数组

    每次移动`i`,计算新的子数组的几何平均值,如果大于当前最大值,更新最大值和子数组信息。同时,由于题目要求在多个几何平均值相等的情况下选择长度最小的子数组,因此需要记录当前子数组的长度`len`,以便于比较。...

    java常用类型转换[文].pdf

    5. **注意事项**: - 在进行类型转换时,必须确保转换的合法性。例如,不能将非数字的字符串转换为整数。 - 转换可能导致数据丢失,如将`double`转换为`int`时,会丢弃小数部分。 - 使用`parseInt()`和`parseLong...

    JAVA实用进制转换

    5. **注意事项**: - 使用`Integer.parseInt()`时,如果字符串无法解析为指定基数的整数,或者字符串开头的非空字符不是有效的数字,会抛出`NumberFormatException`。 - 当转换的数值超出整数类型的范围时,如`...

    语音信号低通滤波定点化程序在硬件平台上实现注意事项1

    6. **验证数据一致性**:比较定点程序中的数据(如jt1和jt2)与MATLAB读取的数据,确保数据类型匹配(Signed Integer 16 bit)。使用printf函数进行单步调试,验证数据引用的正确性。long型可能不适用于存储wav文件...

    java面试题

    此外,`Integer`提供了额外的方法,如`parseInt()`,以及表示整数最大值和最小值的常量。 3. 方法的重载(Overload)与覆盖(Override): - 重载允许在同一个类中定义多个同名方法,但这些方法的参数列表必须不同...

    java权限设置,和java处理字符和二进制的转换

    5. 字符串转换为二进制字符串的注意事项:我们需要注意字符串转换为二进制字符串时可能会出现的错误。例如,如果字符串中包含非ASCII字符,那么转换后的二进制字符串可能不正确。 Java权限设置和字符、二进制转换是...

    JAVA实用进制转换.pdf

    4. **注意事项**: - 当使用`parseInt`时,务必确保字符串能够被解析为有效的数字,否则会抛出`NumberFormatException`。例如,`parseInt("99", 10)`、`parseInt("Kona", 10)`和`parseInt("2147483648", 10)`都会抛...

    C语言关于存储类型typefdef的详解

    本文详细介绍了 C 语言中的类型定义(typedef),包括其语法、使用场景、优点和注意事项。文章首先介绍了类型定义的基本概念和语法,然后深入探讨了类型定义在代码模块化、Traits 技术和模板编程中的应用。接着,...

    java数据类型转换.pdf

    4. 注意事项 - 类型转换时要确保不会丢失数据或产生溢出。例如,将一个大整数转换为byte可能会导致数据丢失。 - 浮点型转换为整型时,会舍去小数部分,而不是四舍五入。如果需要四舍五入,可以先乘以10的适当幂,...

    pascal语言_教程[借鉴].pdf

    四、注意事项 1. 在赋值语句中,表达式的类型必须与赋值号左边的变量类型赋值相容。 2. 对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。 Turbo Pascal语言提供了丰富...

    经典讲解C# get set.pdf

    六、get set 函数的注意事项 在使用 get set 函数时,需要注意以下几点: * get set 函数不能将域的保护级别设为 public,以免外部随意操作。 * get set 函数需要遵守访问修饰符的规则。 * get set 函数可以使用 ...

    解决Java包装类比较时遇到的问题

    一、包装类比较的注意事项 在 Java 中,包装类的比较时,不会自动拆包,而是地址比较。这意味着,如果两个包装类的值相同,但地址不同,则比较结果将为 false。例如,Integer a = 1; Integer b = 1;System.out....

    JAVA数据类型转换.doc

    4. **类型转换注意事项** - 当字节类型变量参与运算时,如果不做类型转换,它会被提升为int类型进行计算。 - 类型转换可能导致数据丢失或溢出,需要谨慎操作。 - 在使用强制转换时,确保转换不会超出目标类型能...

    Java Methods-java.util.ArrayList.ppt

    ArrayList 类有以下几个注意事项: * 可以导致性能问题:ArrayList 的自动调整大小可能会导致性能问题。 * 可以导致内存泄露:ArrayList 中的对象如果没有被正确释放,可能会导致内存泄露。 ArrayList 类是一个...

    60条Android开发注意事项与经验总结

    16. ArrayList操作:arraylist执行remove时注意移除int和Integer的区别。 17. Log打印:Log请打上Tag,调试打印一定要做标记,能定位打印位置,否则尴尬是:不知道是哪里在打印。 18. 代码复用:码块/常量/资源...

    在一小时内学会 C#(txt版本)

    int 4 signed integer uint 4 unsigned integer long 8 signed long ulong 8 unsigned long float 4 floating point number double 8 double precision number decimal 8 fixed precision number string - ...

    java中数组列表ArrayList的使用[归类].pdf

    6. **注意事项** - ArrayList的性能主要取决于其容量管理。当添加新元素导致容量不足时,ArrayList会自动扩大容量,这可能导致一定的性能开销。 - 对于频繁的插入和删除操作,考虑使用`LinkedList`,因为它在这些...

Global site tag (gtag.js) - Google Analytics