当前位置: 首页 > news >正文

Java包装类型的缓存

Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。

Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or False

果超出对应范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。

两种浮点数类型的包装类 Float,Double 并没有实现缓存机制。

public static void main( String[] args ){Integer i1 = 128;Integer i2 = 128;System.out.println(i1 == i2);// 输出 falseInteger i3 = 33;Integer i4 = 33;System.out.println(i3 == i4);// 输出 trueFloat i11 = 333f;Float i22 = 333f;System.out.println(i11 == i22);// 输出 falseDouble i5 = 1.2;Double i6 = 1.2;System.out.println(i6 == i5);// 输出 falseInteger i7 = 40;Integer i8 = new Integer(40);System.out.println(i7==i8);//输出false,因为i7直接用的缓存,i8则是创建的对象,存在堆}

装箱其实就是调用了 包装类的valueOf()方法,拆箱其实就是调用了 xxxValue()方法。 

Integer i = 10 //等价于 Integer i = Integer.valueOf(10)
int n = i //等价于 int n = i.intValue();

http://www.lryc.cn/news/510628.html

相关文章:

  • 【蓝桥杯——物联网设计与开发】拓展模块4 - 脉冲模块
  • .NET平台用C#通过字节流动态操作Excel文件
  • SpringMVC详解
  • springboot、spring、springmvc有哪些注解
  • Apache Commons ThreadUtils 的使用与优化
  • 重温设计模式--5、职责链模式
  • 下午四点半
  • 嵌入式单片机中Flash存储器控制与实现
  • loki failed to flush
  • 微信小程序打印生产环境日志
  • 利用 deepin-IDE 的 AI 能力,我实现了文件加密扩展
  • JPA 基本查询(五)
  • hiprint结合vue2项目实现静默打印详细使用步骤
  • 项目报 OutOfMemoryError 、GC overhead limit exceeded 问题排查以及解决思路实战
  • 【计算机-显示屏灰阶测试】
  • CSS系列(40)-- Container Queries详解
  • 工作生活做事慢效率低原因及解决方案
  • 各种数据库类型介绍
  • 了解智能运维
  • js实现仿windows文件名称排序
  • 基于Oauth2的SSO单点登录---前端
  • springboot 使用注解设置缓存时效
  • QGIS二次开发(地图符号库操作)
  • 线性代数行列式
  • Vision Transformer (ViT) 论文的第二句话
  • Github 2024-12-27 Java开源项目日报Top10
  • 气相色谱-质谱联用分析方法中的常用部件,分流平板更换
  • centos7 免安装mysql5.7及配置(支持多个mysql)
  • Python的Pandas--Series的创建和实现
  • OCR实践-问卷表格统计