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

专业的建站公司服务花果园网站建设

专业的建站公司服务,花果园网站建设,网络搭建与维护,古镇 网站建设文章目录 一、简介二、实现原理三、修改缓存范围 一、简介 Integer缓存池是一种优化技术#xff0c;用于提高整数对象的重用和性能。在Java中#xff0c;对于整数值在 -128 到 127 之间的整数对象#xff0c;会被放入缓存池中#xff0c;以便重复使用。这是因为在这个范围… 文章目录 一、简介二、实现原理三、修改缓存范围 一、简介 Integer缓存池是一种优化技术用于提高整数对象的重用和性能。在Java中对于整数值在 -128 到 127 之间的整数对象会被放入缓存池中以便重复使用。这是因为在这个范围内的整数值被频繁使用因此重用这些对象可以节省内存和提高性能。当使用自动装箱机制创建整数对象时如果对象的值在缓存池范围内会直接返回缓存池中的对象而不是创建新的对象。这个特性可以通过调用Integer.valueOf(int)方法来实现。 根据通过设置JVM-XX:AutoBoxCacheMax可以来修改缓存的最大值最小值改不了 二、实现原理 底层实现的原理是int 在自动装箱的时候会调用IntegervalueOf进而用到了 IntegerCache。 public static Integer valueOf(String s) throws NumberFormatException {return Integer.valueOf(parseInt(s, 10));}没有太多复杂的步骤只需要判断给定的值是否在指定范围内如果是的话则从 IntegerCache 中获取已经预先初始化好的缓存值。 这些缓存值在静态块中被初始化。 /*** 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:AutoBoxCacheMaxsize} 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.*/private static class IntegerCache {static final int low -128;static final int high;static final Integer cache[];static {// high value may be configured by propertyint h 127;String integerCacheHighPropValue sun.misc.VM.getSavedProperty(java.lang.Integer.IntegerCache.high);if (integerCacheHighPropValue ! null) {try {int i parseInt(integerCacheHighPropValue);i Math.max(i, 127);// Maximum array size is Integer.MAX_VALUEh Math.min(i, Integer.MAX_VALUE - (-low) -1);} catch( NumberFormatException nfe) {// If the property cannot be parsed into an int, ignore it.}}high h;cache new Integer[(high - low) 1];int j low;//创建要缓存的值for(int k 0; k cache.length; k)cache[k] new Integer(j);// range [-128, 127] must be interned (JLS7 5.1.7)assert IntegerCache.high 127;}private IntegerCache() {}}这里还有一个有趣的面试题即在 Integer 类中数值在 127 以内的两个 Integer 对象会被认为是相等的而超过 127 的数值则不相等。这是因为在 Java 中对于数值在 -128 到 127 之间的整型对象会使用 IntegerCache 中预先初始化的对象。因此当数值在该范围内时它们实际上是同一个对象因此相等性比较会返回 true。这种行为不仅适用于 Integer 类也适用于 Long 类。 public static Long valueOf(long l) {final int offset 128;if (l -128 l 127) { // will cachereturn LongCache.cache[(int)l offset];}return new Long(l);}对于小数类型的 Float 和 Double不会有像整数类型那样的缓存机制。因为小数类型的数值范围非常广泛无法事先预先缓存所有可能的数值。因此对于 Float 和 Double 类型的对象相等性比较会根据它们的实际数值来判断而不是基于对象的引用。所以即使两个 Float 或两个 Double 对象的数值相同它们也不会被认为是相等的。 三、修改缓存范围 通过注释可知缓存值可以修改 验证默认情况下 添加JVM参数 -XX:AutoBoxCacheMax500 再次执行 发现i1和i2相等返回true说明参数生效了。
http://www.pierceye.com/news/121510/

相关文章:

  • 上海市住房和城乡建设厅官方网站码上游二维码制作
  • wordpress生活插件上海做网站优化
  • 长武网站建设做网站吉林
  • 定制做网站技术建网站不做广告怎么赚钱
  • 南宁市做网站的公司yellow的视频播放
  • 网络营销的效果是什么杭州seo网站建设
  • 南沙免费网站建设阿里巴巴网站工作流程
  • 东莞公司网站建设河南省专业做网站公司
  • 兰州彩票网站制作安阳区号是什么
  • 企业形象网站解决方案传统企业如果建立网站
  • 个人网站主页模板如何开一家网络营销公司
  • 网络管理系统密码吴中seo页面优化推广
  • 手绘风格的网站上海做网站cnsosu
  • 怎么做一个免费网站网站app的作用
  • iis 搭建网站品牌建设经验做法
  • 做国外的众筹网站有哪些wordpress小红书主题
  • 扩展名 网站百度资源共享链接分享组
  • 东莞市seo网络推广怎么样杭州seo关键词优化哪家好
  • 做网站用什么ui美观微信公众号调用WordPress
  • 用万网做网站企业做网站怎么做
  • 比较好的网站开发教学网站专业做视频的网站有哪些
  • 户外旅游网站模板网站开发需要看相关书籍
  • 建设高端网站的公司企业营销网站建设公司
  • 重庆建设工程信息网站重庆企业网站建设报价
  • 大兴模版网站开发公司哪家好unn建站
  • 工信部网站域名备案查询北京科技网站建设公司
  • 昆明做网站那家好自己动手做网站
  • 女生做seo网站推广北京海岸设计公司网站
  • 单位建设网站硬件拍摄制作宣传片企业
  • 网站做推广应该如何来做呢哪里推广柳州360优化