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

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);// 输出 false

        Integer i3 = 33;
        Integer i4 = 33;
        System.out.println(i3 == i4);// 输出 true

        Float i11 = 333f;
        Float i22 = 333f;
        System.out.println(i11 == i22);// 输出 false

        Double i5 = 1.2;
        Double i6 = 1.2;
        System.out.println(i6 == i5);// 输出 false

        Integer 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.kler.cn/a/460187.html

相关文章:

  • DevOps工程技术价值流:Ansible自动化与Semaphore集成
  • 无人机飞手培训机构大量新增,考取飞手证参军入伍还有优势吗?
  • 免费又开源:企业级物联网平台的新选择 ThingsPanel
  • 【代码】Python|Windows 批量尝试密码去打开加密的 Word 文档(docx和doc)
  • checked 溢出问题
  • 动态规划解决整数拆分问题
  • solr9.7 单机安装教程
  • Uniapp在浏览器拉起导航
  • 自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭
  • (七)- plane/crtc/encoder/connector objects
  • SQL 实战:使用 CTE(公用表达式)优化递归与多层复杂查询
  • Mysql的事务隔离机制
  • 性能与安全测试综合部分
  • 实验八 指针2
  • 常见cms获取Shell漏洞(Wordpress、dedecms、ASPCMS、PhpMyadmin)
  • 深入了解 Zookeeper:原理与应用(选举篇)
  • Supermap iClient Webgl 粒子特效案例-消防场景
  • C++并发:线程管控
  • Android 部分操作(待补充
  • 活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
  • 代理arp(proxy arp)原理 及配置
  • 每日算法一练:剑指offer——贪心算法与找规律
  • NestJS 认证与授权:JWT、OAuth 和 RBAC 实现
  • 【C++】B2064 斐波那契数列
  • 智能家居体验大变革 博联 AI 方案让智能不再繁琐
  • 两台ubuntu的ECS机器共享一个存储