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

Java Integer常量池

public class IntegerExample {  
   public static void main(String[] javalatte) {  
      Integer i = 10;  
      Integer j = new Integer(10);  
      Integer k = 130;  
      Integer p = new Integer(130);  
   }  
}  

将上面的类编译后再反编译得到如下的类:

public class IntegerExample {  
   public static void main(String[] javalatte) {  
      Integer i = Integer.valueOf(10);  
      Integer j = new Integer(10);  
      Integer k = Integer.valueOf(130);  
      Integer p = new Integer(130);  
   }  
}  

即当我们用Integer i = 10 创建Integer类的实例时,其实是调用了Integer.valueOf()方法;

从JDK源码中我们可以看到:

public static Integer valueOf(int i) {
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

当我们在[-128,127]里调用valueOf()时,实际上使用的是IntegerCache(缓存)里的值,如果用超出此范围的值给封装类赋值时,Integer.valueOf()会返回new Integer()实例。

转载于:https://www.cnblogs.com/lxcmyf/p/6404523.html

相关文章:

  • Internet Explorer快捷键
  • Java中的同步
  • 十条永恒的安全法则
  • 有关activit工作流的项目的一些简述:一
  • 资源的积累
  • windows下ueditor1.4.3.3 jsp 版本在线管理图片显示问题。
  • 致歉
  • 最长下降/上升子序列问题
  • Android源码设计模式解析与实战(八)
  • .net 中viewstate的原理和使用
  • struts1的配置文件
  • mac 安装PHPredis扩展
  • 金山反间谍(系统清理专家)2007年2月1-2日更新报告
  • 在数据库里面相对安全的数据清理方式
  • LINUX下的DHCP
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • css属性的继承、初识值、计算值、当前值、应用值
  • exports和module.exports
  • k个最大的数及变种小结
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • log4j2输出到kafka
  • Otto开发初探——微服务依赖管理新利器
  • spring + angular 实现导出excel
  • Vue组件定义
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 测试开发系类之接口自动化测试
  • 给第三方使用接口的 URL 签名实现
  • 排序(1):冒泡排序
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 主流的CSS水平和垂直居中技术大全
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • $ git push -u origin master 推送到远程库出错
  • $.ajax,axios,fetch三种ajax请求的区别
  • (二)springcloud实战之config配置中心
  • (六)c52学习之旅-独立按键
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)visual stdio 书签功能介绍
  • .NET CLR基本术语
  • .net core使用ef 6
  • .net refrector
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 提取注释生成API文档 帮助文档
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [AutoSar NVM] 存储架构
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [CF]Codeforces Round #551 (Div. 2)
  • [CLickhouse] 学习小计
  • [codevs 1515]跳 【解题报告】
  • [Git 1]基本操作与协同开发
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [JavaWeb学习] Spring Ioc和DI概念思想