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

专业做鞋子的网站有哪些/抖音seo

专业做鞋子的网站有哪些,抖音seo,网站流量真难做,asp 网站后台本节我们来看一个例子,大家都非常熟悉的对象 Integer 也用到了享元模式,其中暗藏玄机,来看代码。public static void main(String[] args) {Integer a Integer.valueOf(105);Integer b 105;Integer c Integer.valueOf(1000);Integer d 10…

本节我们来看一个例子,大家都非常熟悉的对象 Integer 也用到了享元模式,其中暗藏玄机,来看代码。

public static void main(String[] args) {

Integer a = Integer.valueOf(105);

Integer b = 105;

Integer c = Integer.valueOf(1000);

Integer d = 1000;

System.out.println("a==b:" + (a == b));

System.out.println("c==d:" + (c == d));

}

大家猜它的运行结果是什么?在运行完程序后,我们才发现有些不对,得到了一个意想不到的运行结果,如下图所示。

a==b:true

c==d:false

之所以得到这样的结果,是因为 Integer 用到了享元模式,来看 Integer 的源码。

public final class Integer extends Number implements Comparable {

...

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);

}

...

}

由上可知,Integer 源码中的 valueOf() 方法做了一个条件判断。在通过 valueof 方法创建 Integer 对象的时候,如果目标值在 -128~127 之间,则直接从缓存中取值,返回 IntegerCache.cache 中已经存在的对象的引用,否则新建 Integer 对象。

那么 JDK 为何要这么做呢?因为 -128~127 之间的数据在 int 范围内是使用最频繁的,为了减少频繁创建对象带来的内存消耗,这里就用到了享元模式,以提高性能。

上述例子中 a 和 b 的值为 100,因此会直接从 cache 中取已经存在的对象,所以 a 和 b 指向的是同一个对象,而 c 和 d 是分别指向不同的对象。

同理,Integer、Short、Byte、Character、Long 这几个类的 valueOf 方法的实现是类似的,而 Double、Float 的 valueOf 方法的实现是类似的,因为浮点数在某个范围内的个数不是有限的。

拓展

和 Integer 类似,Long 源码也用到了享元模式,将 -128~127 的值缓存起来,源码如下:

public final class Long extends Number implements Comparable {

public static Long valueOf(long l) {

final int offset = 128;

if (l >= -128 && l <= 127) { // will cache

return LongCache.cache[(int)l + offset];

}

return new Long(l);

}

private static class LongCache {

private LongCache(){}

static final Long cache[] = new Long[-(-128) + 127 + 1];

static {

for(int i = 0; i < cache.length; i++)

cache[i] = new Long(i - 128);

}

}

...

}

同理,Long 中也有缓存,但是不能指定缓存最大值。

http://www.jmfq.cn/news/5153023.html

相关文章:

  • 苏州seo营销/如何优化培训体系
  • 有没有做高仿的网站/seo软文推广工具
  • 重庆网站建设网络推广/搜索词热度查询
  • 密云区住房城乡建设委官方网站/推广策划
  • 为女朋友做的表白网站/宁波seo公司推荐
  • 兼职做网站这样的网站/b站黄页推广软件
  • 昆山网站建设哪家好/手机百度网址大全首页
  • 我本沉默传奇新开网站/今日国际新闻最新消息事件
  • 专业的培训网站建设/软文营销定义
  • 郑州网站设计/十八大禁用黄app入口
  • 日本最新消息/上海百度提升优化
  • 百度网站置顶怎么做/衡阳seo快速排名
  • 政府网站html源码/免费新闻源发布平台
  • 聊城百度做网站的/谷歌seo招聘
  • 西安搬家公司收费/seo研究院
  • 租用海外服务器的网站有域名吗/谷歌下载安装
  • 做网站公奇闻司郑州汉狮/谷歌seo服务
  • 免费域名的网站/营销型网站建设团队
  • 整形医院网站建设/苏州网站制作推广
  • 如何修改单页网站/关键词分词工具
  • 建设企业网站的需求分析/朋友圈营销
  • 自己怎么做免费网站空间/今日的新闻头条10条
  • 卖挂的网站怎么做/百度账号登录入口网页版
  • 做外围代理要有自己的网站/永久免费的电销外呼系统
  • 怎么看一个网站是哪个公司做的/系统优化软件
  • 修改wordpress logo/首页关键词优化公司
  • 做购物网站的数据库/长尾词seo排名优化
  • 做产品类的工作上什么网站好/网页设计大作业
  • 阜新本地网站建设平台/关键字挖掘爱站网
  • 大型网站建设优化企业/零基础学电脑培训班