Integer 中的缓存类IntegerCache

Java Integer包装类缓存(cache) Java的Integer类有一个内部的缓存机制,主要用于优化自动装箱(autoboxing)和拆箱(unboxing)的性能。这个特性首次引入于Java 5,旨在减少对频繁使用的小整数值的重复对象创建,从而提高性能和减少内存使用。 阅读详情

Cache为[-128,127],IntegerCache有一个静态的Integer数组,在类加载时就将-128 到 127 的Integer对象创建了,并保存在cache数组中,一旦程序调用valueOf 方法,如果取的值是在-128 到 127 之间就直接在cache缓存数组中去取Integer对象,超出范围就new一个对象。

 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) {
                int i = parseInt(integerCacheHighPropValue);
                i = Math.max(i, 127);
                // Maximum array size is Integer.MAX_VALUE
                h = Math.min(i, Integer.MAX_VALUE - (-low));
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);
        }

        private IntegerCache() {}
    }

                Integer i = 127;
		Integer j = 127;
		System.out.println(i==j);//true
		Integer i1 = 128;
		Integer j1 = 128;
		System.out.println(i1==j1);//false
		Integer i2 = new Integer(127);
		Integer j2= new Integer(127);
		System.out.println(i2==j2);//false
		System.out.println(200 == i); //false






KiCad插件安装太慢?试试华秋版,再手把手教你装这5个实用插件 本文介绍了KiCad华秋发行版如何解决插件安装慢的问题,并详细推荐了5个实用插件及其安装方法。华秋版优化了国内用户的下载速度,预装了常用扩展包,包括BOM生成器、3D模型增强工具等,显著提升PCB设计效率。 阅读详情

相关推荐

AES128加密算法开发(含源码)

本文详解了AES128加密算法的原理与C语言实现。AES128是当前广泛使用的对称加密标准,采用128位密钥和10轮变换,具有高安全性和高效性。文章从算法背景、核心概念(混淆与扩散)入手,详细解析了4×4状态矩阵表示、4个核心变换(字节替换、行移位、列混合、轮密钥加)以及密钥扩展过程。特别针对汽车电子应用场景,如ECU通信加密、车钥匙认证等,说明了AES128在资源受限环境中的优势。通过分步图解和原理剖析,帮助开发者深入理解这一加密标准的技术细节与实现方法。

汽车电子软件开发笔记 2918

java 整数缓存_Java数值类型缓存

首先给大家看一道面试题:Integer a=100,b=100,c=200,d=200;System.out.println(a==b);System.out.println(c==d);题的大概内容与这个类似,就是比较两个 int 包装类的值很多小伙伴一看题,想都不想:true true 。。你有没有想过,要是这么 low 的题,面试官是考你什么呢?相信看过 jdk 源码的小伙伴一定知道结果不是...

weixin_39621379的博客 218

FFmpeg HDR视频转SDR视频命令

之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。 ffprobe查看有如下属性: # 10bit HDR Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98

彼此当年少,莫负好时光 1万+

Integer缓存池(IntegerCache)及整型缓存池

原贴:https://blog.youkuaiyun.com/maihilton/article/details/80101497 Integer 缓存是 Java 5 中引入的一个有助于节省内存、提高性能的特性。 Integer中有个静态内部类IntegerCache,里面有个cache[],也就是Integer常量池,常量池的大小为一个字节(-128~127)。JDK源码如下(摘自JDK1.8源码):......

Turn X7 2147

别再手动抄表了!用MCGS触摸屏自动存数据到U盘,5分钟搞定报表导出

本文详细介绍了如何利用MCGS触摸屏实现工业数据自动记录与U盘导出,彻底告别传统手动抄表方式。通过昆仑通态MCGS系统,可构建零误差自动化报表系统,实现实时数据采集、双重备份及标准CSV格式导出,大幅提升数据准确性和工作效率。

weixin_30872157的博客 793

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1643

Integer缓存IntegerCache详解

IntegerCache缓存区间为[-128,127]。在调用Integer.valueOf(int i)方法进行自动装箱时假若i的值在[-128,127]区间则生成的Integer对象会被存入缓冲区。当再次对该值进行装箱时会先去缓冲区中获取;如果取到则返回,如果没有取到则创建包装类对象存入缓冲区并返回。

谷哥的小弟 6611

PT:pt write_change to innovus 脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1526

Java Integer之IntegerCache

对象的唯一性:对于较小的整数值(在缓存范围内),使用自动装箱的方式,每次使用相同的值创建的Integer对象都是同一个对象。总之,对于较小的整数值,推荐使用自动装箱的方式,而对于较大的整数值,可以使用显式的构造函数调用方式,或者直接使用基本类型int,避免不必要的对象创建和内存消耗。内存使用:对于较小的整数值(在缓存范围内),使用自动装箱的方式可以节省内存空间,而使用显式的构造函数调用方式则会在堆内存中为每个新创建的对象分配不同的内存空间。要注意的是,前者写法并不是后者的简写形式。

m0_56426418的博客 1330

YOLO11训练中的批量大小(Batch Size)选择策略:分析Batch Size对训练速度、显存占用和模型性能的影响

在深度学习训练过程中,Batch Size(批量大小)是一个至关重要的超参数,它指的是单次迭代中用于更新模型权重的样本数量。简单来说,当我们训练神经网络时,不会一次性将所有数据喂给模型,而是将数据分成若干个小批次(batch),每个批次包含一定数量的样本,这个数量就是Batch Size。 Batch Size的核心作用在于平衡训练效率与模型性能。较小的Batch Size意味着每次更新权重时参考的信息较少,可能导致训练过程更加随机,但有时能带来更好的泛化能力;较大的Batch Size则能提供更稳定的梯

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 323

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统(深度学习模型+UI界面+训练数据集)

随着人工智能技术在农业领域的深入应用,基于深度学习的害虫检测系统已成为智慧农业的重要组成部分。本文详细介绍了一种基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统,涵盖算法原理、数据集构建、模型训练、系统实现及完整代码。该系统能够实时检测并识别多种农作物害虫,为农业生产提供精准的病虫害监测解决方案。

YOLO 273

Integer 中的缓存类 IntegerCache

我们先看一段代码: public class TestAutoBoxing { public static void main(String[] args) { //-128到127之间 Integer a=127; Integer b=127; System.out.println(a==b); ...

weixin_30852367的博客 123

2023华为OD机试真题B卷 Python 实现【最长的元音子串长度】

定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成的子序列称为该字符串的子串

MISAYAONE的博客 902

Integer缓存类IntegerCache,Integer自动装箱拆箱

Integer i1=new Integer(999); Integer i2=new Integer(999); System.out.println(i1==i2);//false Integer i3=126; Integer i4=126; int i5=126; System.out.println(i3==i4);//true System.out.printl...

today_liqiu的博客 157

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

对Integer类中的私有IntegerCache缓存类的一点记录

对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127。 // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可以直接使用 == 来比较是否相等 Integer a = 88; Integer b = 88; System.out.println(a == b); // tru...

dichixi2886的博客 161

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Integer类的缓存IntegerCache

public static void main(String[] args) { Integer i = 127; Integer j = 127; Integer ii = 128; Integer jj = 128; System.out.println(i==j); System....

DJPLH的专栏 477

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

了解关于Integer的缓存类IntegerCache

今天看了一下Integer的源码: public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(parseInt(s, 10)); } /** * Cache to support the object i...

weixin_30532987的博客 74

Java 基础类型的包装类 Integer

纸上得来终觉浅,绝知此事要躬行。 上代码 Integer i = new Integer(0); Integer j = new Integer(0); //false // 分析 :new操作 都是在内存分配空间,创建对象, //所以引用不同(地址不同),== 操作符就是直接比较变量存在的值 // 值有真正的值也有地址,但是都是二进制数字,所以看成数字的比较 boolean res = i == j;

wqh754186373的博客 387
上一篇: SpringMVC与Shiro的最简单整合(不包含权限管理)
下一篇: String类中的intern
echo_oy
博客等级 码龄12年 6粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值