千家信息网

怎么理解java的integer缓存

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要讲解了"怎么理解java的integer缓存",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么理解java的integer缓存"吧!首先,
千家信息网最后更新 2025年01月23日怎么理解java的integer缓存

这篇文章主要讲解了"怎么理解java的integer缓存",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么理解java的integer缓存"吧!

首先,我们都知道integer在-128至127(包含),是走缓存的,该缓存设计目的是:节省内存,提高性能。

猜想,Long 是否也存在类似缓存设计?

public static void main(String[] args) {    Integer integer1 = 3;    Integer integer2 = 3;    System.out.printf("integer1 == integer2:[%s]\n", integer1 == integer2);    Integer integer3 = 300;    Integer integer4 = 300;    System.out.printf("integer3 == integer4结果:[%s]\n", integer3 == integer4);    System.out.println("--------换行----------");    Long long1 = 3L;    Long long2 = 3L;    System.out.printf("long1 == long2:结果:[%s]\n", long1 == long2);    Long long3 = 300L;    Long long4 = 300L;    System.out.printf("long3 == long4:结果:[%s]\n", long3 == long4);}

返回值如下:

integer1 == integer2:[true]integer3 == integer4结果:[false]--------换行----------long1 == long2:结果:[true]long3 == long4:结果:[false]

剖析

剖析integer

java.lang.integer类中有个private static class IntegerCache静态内部类。其javadoc如下:

/**     * Cache to support the object identity semantics of autoboxing for values between     * -128 and 127 (inclusive) as required by JLS.     *     * The cache is initialized on first usage.  The size of the cache     * may be controlled by the {@code -XX:AutoBoxCacheMax=} option.     * During VM initialization, java.lang.Integer.IntegerCache.high property     * may be set and saved in the private system properties in the     * sun.misc.VM class.     */

其最大值(high)可以通过-XX:AutoBoxCacheMax=属性来指定,但代码中有判断,确保其不可小于127

剖析Long

java.lang.Long类中有个private static class LongCache静态内部类。其代码如下:

private static class LongCache {    private LongCache(){}    static final Long cache[] = new Long[-(-128) + 127 + 1];    static {        for(int i = 0; i < cache.length; i++)            cache[i] = new Long(i - 128);    }}

感谢各位的阅读,以上就是"怎么理解java的integer缓存"的内容了,经过本文的学习后,相信大家对怎么理解java的integer缓存这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

缓存 结果 剖析 学习 代码 内容 静态 设计 最大 内存 可以通过 就是 属性 思路 性能 情况 文章 更多 最大值 目的 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机软件开发纠纷 网络安全大学排名 徐州新一代服务器供应商 数据库数据查询实验答案 网络安全学教育知识大全 戴尔服务器生产日期查询 软件开发就是将近态转为动态 北邮计算机网络技术2 网络安全主题论坛线上 小学国家网络安全宣传方案 江湖悠悠新服务器 崇明区无线网络技术有哪些 学习计算机网络技术前景如何 网络安全提示信息泄露 互联网对科技创新有什么作用 上云服务器就安全了吗 我国网络安全上市公司 数据库审计产品 2021西安国家网络安全周 设置安全令提示服务器错误 重庆合川网络安全启动仪式 北京存储服务器虚拟化软件云主机 深圳手机游戏软件开发工程师月薪 iis保存用户数据库 学校监控服务器哪个质量好 高并发nosql数据库 数据库dump包空间不足 四年级手抄报网络安全看清楚 网络安全对个人的影响 运筹学网络技术问题的例题
0