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

搬家网站模板wordpress图片描述

搬家网站模板,wordpress图片描述,扬州专业做网站,建设部网站投诉核查这段代码创建一个或两个对象。 如果没有“abc”这个字符串对象,那么会在堆中创建一个对象实例,并且在常量池中创建该实例的索引。 如果已有"abc"这个字符串对象,那么常量池中不会再创建,只会在堆中创建一个对象。 需…

这段代码创建一个或两个对象。

如果没有“abc”这个字符串对象,那么会在堆中创建一个对象实例,并且在常量池中创建该实例的索引。

如果已有"abc"这个字符串对象,那么常量池中不会再创建,只会在堆中创建一个对象。

需要记住,常量池只会节省字面量(非new出对象时)的内存,因为多个字面量共享同一个常量池内容(常量池实质上是基于哈希表的索引)。

你注意到的“矛盾”其实是字面量加载(由 ldc 或类加载器初始化)和 new String(...) 本身向常量池写入 (intern())之间的区别:

  1. 字符串字面量的加载

     

    java

    复制编辑

    String s1 = new String("abc");

    在编译后的字节码里,会有一条类似

     

    asm

    复制编辑

    ldc "abc"

    指令,这条指令会确保在类加载/链接阶段,JVM 会把字面量 "abc" 自动加入常量池(如果还不存在的话)。

    • 这一行为和你写不写 new String("abc") 是分开的:只要字节码中出现了 "abc" 这个字面量,常量池就会有它。

  2. new String(...) 创建堆对象,不修改常量池
    紧接着,执行

     

    java

    复制编辑

    new String("abc")

    会在上再开辟一个新 String 实例,用常量池中已有的那份字符数据来初始化它的内容。但这一过程并不会把新对象“放进”常量池——它只是读取池里的那份,而不是向池里写入。


所以,究竟创建几个对象?

  • 常量池里是否已经有 "abc"

    • 没有:在类首次加载时,ldc "abc" 会导致池中新建一个 String 对象——这是由字面量触发的

    • 已有:字面量加载这步被跳过,不再新建。

  • new String("abc")

    • 始终在堆上创建一个新对象,不管常量池中有没有相同字面量

http://www.dtcms.com/wzjs/565202.html

相关文章:

  • 广州做网站建设哪家专业手机网站与普通网站的区别
  • 佛山 网站建设wordpress如何去掉加密保护
  • 做网站博客怎么推广宁波网站建设内容
  • 百度账号怎么注销企业没有网站怎么做seo优化
  • 东莞市企业网站制作平台软件定制开发费用
  • 昌网站建设做影视网站代理犯法吗
  • 农家乐网站 建设潍坊网站建设 世纪环球16楼
  • 网站网络营销方案做网站一定要云解析吗
  • 南宁企业网站设计公瑞幸咖啡网站建设方案
  • 网站logo用什么来做珠海响应式网站建设价格
  • 中学校园网站建设方案广告公司制作公司
  • 河南省建设工程网站网站建设销售一个月营业额
  • 做网站的系统重庆忠县网站建设公司哪里有
  • ui设计流程培训网站街景地图手机版下载
  • 西安网站seo厂家免费建网站哪家好
  • 网站建设推广代理南昌做微网站
  • 大美工网站服装定制流程
  • 杭州开发网站的公司哪家好wordpress使用html界面
  • 响应式网站建设服务wordpress 04
  • 杭州小程序网站开发公司免费创建个人博客网站
  • 怎么让别人访问自己做的的网站学校网站建设主体
  • 网站建设找超速云施工企业奖惩制度范本
  • 怎么建设投票网站淮安网站建设
  • 献县网站网络设计是本科
  • 重庆网站建设找珊瑚云网页设计代码常用单词
  • 警惕网站免费看手机可以做动画的网站
  • 广州 美容 公司 网站建设模板网站怎么建设优化
  • 网站特效做化验的网站
  • 官方网站建设的意义怎么用服务器做局域网网站
  • 网站内容上传要求浙江乐清新闻今天