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

石家庄信息门户网站制作费用昆明网络科技公司有哪些

石家庄信息门户网站制作费用,昆明网络科技公司有哪些,苏州网站建设书生,青海省建设工程在哪个网站发布Java的Integer缓冲池? Integer 缓存池主要为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围,因此缓存这些对象可以减少内存分配和垃圾回收的负担,提升性能。 在-128到 127范围内的 Integer 对象会被缓存和复用…

Java的Integer缓冲池?

Integer 缓存池主要为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围,因此缓存这些对象可以减少内存分配和垃圾回收的负担,提升性能。

在-128到 127范围内的 Integer 对象会被缓存和复用。

原理

int 在自动装箱的时候会调用Integer.valueOf,进而用到了 IntegerCache。

@HotSpotIntrinsicCandidate
public static Integer value0f(int i){if(i>= IntegerCache.low && i<= IntegerCache.high)  //如果传入的int值在缓存范围内,则直接从缓存中返回Integer对象return IntegerCache.cache[i+(-IntegerCache.low)];return new Integer(i);                              //否则,创建新的Integer对象
}
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 = VM.getSavedProperty( key:"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 i = low;for(int k=0;k< cache.length; k++)    //遍历创建-128-127的所有对象cache[k]= new Integer(i++);assert IntegerCache.high >= 127;}private IntegerCache(){}
}

所以这里还有个面试题:就是为啥 Integer 127 之内的相等,而超过 127 的就不等了?

  • 因为小于等于127的 Integer 对象是从同一个缓存池中获取的,它们指向的是相同的对象实例,所以它们的引用相等

不仅 Integer 有,Long 同样有一个缓存池,不过范围是写死的 -128 到 127,不能通过JVM参数进行调整

@HotSpotIntrinsicCandidate
public static Long value0f(long l){final int offset = 128;if(l>= -128 &&l<= 127){ // will cachereturn LongCache.cache[(int)l + offsetl];}return new Long(l);
}

总结

  • Byte,Short,Integer,Long这4种包装类默认创建了数值[-128,127]的相应类型的缓存数据

  • Character 创建了数值在 [0,127]范围的缓存数据

  • Boolean 直接返回 True or False

  • Float 和 Double 没有缓存数据,毕竟是小数,能存的数太多了

http://www.yayakq.cn/news/62870/

相关文章:

  • 在线免费网站建设百度做广告多少钱一天
  • 江苏网站建设哪家专业山东助企网站建设
  • 网站分别建网站做淘宝客可以吗
  • seo全站优化全案例wordpress封面图插件
  • 企业网站功能盐田区住房和建设局网站
  • 烟台百度做网站多少钱做网站直接从网上的icon吗
  • 广州响应式网站建设wordpress添加广告插件
  • 企业网站html模板下载企业网站手机端开发
  • 自己的网站怎么维护引流用什么话术更吸引人
  • 淘宝营销网站建设做网站 华普花园
  • 分析网站的外链wordpress 整站播放器
  • 价格低的手机大连seo加盟
  • 双语网站建设报价网站编辑怎么做的
  • 织梦农家乐网站模板今天合肥刚刚发生的重大新闻
  • wordpress多重查询沈阳关键词seo排名
  • dede响应式网站模板下载十大装饰公司
  • 上海市浦东新区建设工程安全质量监督站网站黄石网站建设报价
  • 旅游门户网站建设方案模板开发中英文网站多少钱
  • 南京明月建设集团网站五泉山网页设计宣传网站制作
  • 福田企业的网站建设公司好吗做3d任务的网站
  • 购物网站设计的目的hao123浏览器下载安装
  • 网站建设nayuwang烟台营销型网站建设
  • wordpress 下载站在税局网站上如何做进项税转出
  • 网站改版后的内容珲春住房和城乡建设局网站
  • 免费做网站哪里有纳税服务平台
  • 自己开发一个手机网站室内空间设计
  • 常德论坛市民留言社区网络网站排名优化
  • 自己创建个人免费网站广州营销策划公司有哪些
  • 临沂自助建站软件网站建设对工厂意义
  • 北京网站建设公司排名浩森宇特家居网站 模板