String 创建对象

文章转载自:https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html

在转载的文章中讲解的比较清晰。我这里就不重新介绍。

对于转载文章中对于 String a="aa"+"bb";创建几个对象?

                                                

                                                                          图1

                                                                           图2

 

运行图1上的代码,看编译后的class文件。New具有强制性,使用new一定会创建一个对象。当使用引号加文本的方式创建时,首先是ldc 检查常量池中是否有这个常量,有直接使用,不会创建新的对象。“ee” +  “ff”  在编译期直接合并成  “eeff” 。看图2 中20行。

是否创建对象和2个因素有关:1 、是是否使用  new   2、常量池中是否已有这个常量。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值