Integer对象的大小比较

先看两个比较大小的代码:

     Integer a = 127;Integer b = 127;Integer c = 128;Integer d = 128;System.out.println("---------"+(a == b));System.out.println("---------"+(c == d));

执行结果:

结论:
两个Integer 变量比较(用“==”比较),如果两个变量的值在区间-128到127 之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为 false 。
分析:
Integer i = 100 在编译时,会翻译成为 Integer i = Integer.valueOf(100),而 java 对 Integer类型的 valueOf 的定义如下:

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);
}

java对于-128到127之间的数,会进行缓存。

所以 Integer i = 127 时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了。

总结:
Integer对象的大小比较最好用equals。

Integer对象的大小比较相关推荐

  1. 如何计算Java对象的大小

    一个对象通常由头和内容组成.想要计算一个对象的大小,我们就需要分别计算头部的大小和内容的大小. 查看一个对象的大小 首先在pom文件中引入apache下面的lucene-core依赖,然后调用对应的s ...

  2. java integer比较大小_Integer 类型对象之间大小比较

    一.Integer 类型对象之间大小比较 1. 使用 new Integer() 创建的对象 : 首先,我们知道,在java中,基本类型之间是可以做大小比较的,例如int i=1,int j=2,是可 ...

  3. java-判断相同和对象比较大小

    java中判断相同有两种方式: 第一种:使用==直接判断相同,它适用于两个变量之间.一个变量和一个对象之间相比较. 如: int a=3,c=3; Integer b=new Integer(3); ...

  4. java统计空间占用_JVM —— Java 对象占用空间大小计算

    引用类型(reference type: Integer)在 32 位系统上每一个占用 4bytes(即32bit, 才干管理 2^32=4G 的内存), 在 64 位系统上每一个占用 8bytes( ...

  5. List 集合对象比较大小

    List 集合对象比较大小 需要实现Comparable接口 并重写方法compareTo 代码如下: import java.util.ArrayList; import java.util.Col ...

  6. JVM —— Java 对象占用空间大小计算

    零. 为什么要知道 Java 对象占用空间大小 缓存的实现: 在设计 JVM 内缓存时(不是借助 Memcached. Redis 等), 需要知道缓存的对象是否会超过 JVM 最大堆限制, 如果会超 ...

  7. 你会算对象的大小么?不会的话就看看这篇文章吧

    写在前面 如果觉得有所收获,记得点个关注和点个赞,感谢支持. 使用面向对象语言,离不开的就是对象,现在回过头来思考一下,真的了解所使用语言的对象么?我自己有点心虚,对于Java的对象,我了解的尚且还不 ...

  8. 10年老鸟竟不知道Integer如何比较大小

    前言 工作多年,最近在项目中一个地方Integer比较大小,竟然踩坑了. 那么你知道Integer比较大小的正确写法吗? 一.错误说明 先看一下下面这个demo,大家猜下,是相等还是不相等? @Tes ...

  9. java重写compareTo()方法,比较对象的大小

    理论: 使用Comparable或Comparator两个接口中的任何一个来比较对象的大小  一.Comparable接口的使用,自然排序       1.像String.BigDecimal.包装类 ...

最新文章

  1. 百度率先用Silverlight构建MUZONE歌手投票平台正式上线!
  2. Linux进程间通信四 Posix 消息队列简介与示例
  3. js三元运算符_这些优化技巧可以避免我们在 JS 中过多的使用 IF 语句
  4. boost::math::pow相关用法的测试程序
  5. 笨方法python_笨方法学习Python(11-20)
  6. WinForms C# :TabWebBrowser 多页面浏览器源码
  7. 模型修饰在无人机航测实景三维模型生产中的应用——以SVSMeshEditor软件为例
  8. python初学者怎么入门-python初学者怎么入门
  9. eeprom和编程器固件 k2_瞎鸡儿折腾之K2/K2P刷机,刷入第三方固件,傻吊教程!
  10. 信息系统项目管理师考试难吗
  11. 刻意练习:Python基础 -- Task02. 条件与循环
  12. 浅谈跨站脚本攻击与防御
  13. Egress-Assess-出口数据安全功能测试
  14. 什么是埃博拉免疫T-细胞?
  15. 高仿微信6.5.7(融云版)
  16. 信息收集之--- 主动收集
  17. C#.NET程序尝试—修复Excel批注错误
  18. Time Freeze 时间冻结 影子系统
  19. Fedora linux root登录和ssh连接
  20. 渗透测试-完整渗透流程(二.漏洞扫描和利用)

热门文章

  1. DR5加强版2019全新 | PS磨皮插件高端人像后期修图工具
  2. Python计算机视觉编程第一章 基本的图像操作与处理
  3. 华为云点学堂为你揭开DevOps转型的秘密
  4. Ubuntu系统下解决中文显示异常问题
  5. vue+echarts实现仪表盘
  6. 如何访问局域网内宿主机上的虚机服务
  7. 常用java技术_java常用技术
  8. Revit二次开发—获取内置参数对应的中文字符串,并导出Excel;举例(BuiltParameterGroup、ParameterType和BuiltInCategory)
  9. 藏不住啦~SOA竟在我身边? 浅谈CANoe实现SOA仿真测试
  10. C 碎片八 结构体amp;枚举amp;联合