String str="i"与 String str=new String(“i”)一样吗?
不一样,因为Str="i"会把i这个值通过jvm放在常量池里面,而new String(i)会把这个对象先放进堆里面然后判断字符串常量池里面有没有i如果有堆直接引用没有则创建并引用i。
如果只是‘a’+‘b’优化为一个“ab”只创建一个。
string str=‘i’+new String(“abc”);创建了5个对象 i创建1个,new创建2个 jvm编译优化把‘+’优化stringbuilder一个,string返回连接后的对象一个(在常量池中不创建联合在一起的);
String str=“i“与 String str=new String(“i”)一样吗?
最新推荐文章于 2024-02-18 08:46:17 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)