记录一下String str=new String(“123“)究竟创建了几个对象?
@[TOC](new String(“123”)究竟创建了几个对象)
String str=new String("123")
这行代码究竟创建了几个String对象呢?
有两个情况:
JVM编译阶段判断常量池中“123”存在与否,进而来判断是否创建常量对象,然后运行阶段通过new关键字在java heap创建String对象。
情况一: 创建1个对象,如果字符串池中已经存在了“123”这个对象,那么直接在创建一个对象放入堆中,返回str引用。
情况二: 创建了2个对象,如果字符串池中未找到“123”这
原创
2020-09-01 10:53:57 ·
1747 阅读 ·
0 评论