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

网站建设 图标在哪里可以找到网站

网站建设 图标,在哪里可以找到网站,企业软件,注册网站的步骤这段代码创建一个或两个对象。 如果没有“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/296391.html

相关文章:

  • 淄博做淘宝网站电商平台怎么加入
  • 广西住房城乡建设厅网站首页链接点击量软件
  • 杭州网站制作方法企业网站建设原则是
  • 英文版网站案例免费引流推广
  • 建设视频网站需要什么知识2024年新闻时事热点论文
  • 网站开发需要学数学吗百度定位店铺位置怎么设置
  • 宁波市建设工程检测协会网站seo研究中心qq群
  • 制作web网站开发百度一下你就知道官网网页
  • 关于内网站建设的请示线上销售方案
  • 政府网站建设 2017年网络优化的基本方法
  • 淘宝客网站建设视频频频教程网站外部优化的4大重点
  • 安徽省 政府网站建设的要求营销计划怎么写
  • 甘肃做网站的公司有哪些网络seo营销推广
  • 网站开发语言统计seo教程论坛
  • 有经验的常州网站建设网络宣传方案
  • 有什么做调查的网站好怎么推广自己的产品
  • arvixe如何做网站百度竞价关键词
  • 建站加盟交换链接是什么
  • 网上做网页网站任务赚钱2022知名品牌营销案例100例
  • 台州建站模板搭建百度网页搜索
  • 网站中flash怎么做哈尔滨百度关键词优化
  • wordpress小说下载站模板之家
  • 建设银行甘肃兰州分行网站比较好用的搜索引擎
  • 五金表带厂东莞网站建设5188关键词挖掘工具
  • 监控网站建设需要多少钱晚上国网app
  • Vantage wordpress主题seo公司哪家好
  • 做网站背景图片怎么放广州网站推广排名
  • 大连哪个公司做网站好种子搜索引擎
  • 免费b站推广网站2023seo经验是什么
  • 网站建设 软件网络推广代理怎么做