如何使用Integer IntegerCache
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍"如何使用Integer IntegerCache",在日常操作中,相信很多人在如何使用Integer IntegerCache问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年11月11日如何使用Integer IntegerCache
这篇文章主要介绍"如何使用Integer IntegerCache",在日常操作中,相信很多人在如何使用Integer IntegerCache问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Integer IntegerCache"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Integer s = 1; Integer s1 = 1;; System.out.println(s == s1); Integer s2 = 128; Integer s3 = 128; System.out.println(s2 == s3);
问题由此展开,会打印出true, false; 第二个是我们正常理解的答案。再理解为什么第一个打印是true,先了解下 == 和 equals
== :
基本类型一般都用 == ,比较的是内存地址,如果内存地址是一样的那么两个值自然也是相等的。
equals:
对象的比较一般都用equals, equals比较的是对象的内容
所以
Integer s = 1;Integer s1 = 1;;System.out.println(s.equals(s1)); // true
我们再回来看看开头的问题,关键在于Integer中内部类IntegerCache
private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be configured by property int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { try { int i = parseInt(integerCacheHighPropValue); i = Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h = Math.min(i, Integer.MAX_VALUE - (-low) -1); } catch( NumberFormatException nfe) { // If the property cannot be parsed into an int, ignore it. } } high = h; cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); // range [-128, 127] must be interned (JLS7 5.1.7) assert IntegerCache.high >= 127; } private IntegerCache() {} }-128 - 127范围的数字都放在了cache数组中,所以再找个范围内 == 比较都是true.
那么好处是直接在缓存中去取肯定要比生成一个对象要好太多啊
Byte Short Long 这几个都有类似的做法
到此,关于"如何使用Integer IntegerCache"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
学习
对象
问题
内存
地址
更多
范围
帮助
实用
接下来
两个
做法
关键
内容
好处
开头
数字
数组
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
魔兽单机登录成功进不了服务器
计算机网络技术大专考试科目
搜索数据库技术
江苏软件开发配置
柒上网络技术有限公司
网络安全六个一班会记录
c gui软件开发经历
关于中国网络安全的论文题目
年度论文题目软件开发
国家网络安全法第四十一条规定
操作系统与网络安全
跟软件开发公司的委托协议
昆山全市网络安全等级保护培训
cmd中怎么使用数据库表
asa芯片位点数据库
网络安全风险还包括哪些
网络安全员日常
跨年服务器时间变了程序出错
输入姓名获取匹配数据库
成都网络安全工程师入行门槛低
游戏认证为什么显示服务器错误
火乐云计算服务器
数据库中长度怎么计算
医学论文数据库推荐
河南郑州网络技术学院怎么样
思科网络安全中级考试费
域名空间数据库
延庆区学习网络技术
网络安全应急响应
数据库管理方式教案