Java中String直接赋值与new String()的区别

String str1 = “abc";
创建一个或不创建对象。若常量池中已经存在“abc”,那么str1直接引用,不创建String对象。否则,先在常量池先创建“abc”内存空间,再引用。
String str2 = new string("abc");
创建一个或两个对象。new关键字,一定会在堆空间创建内存区域,它的value 是 "ABC"。同时,如果"ABC"这个字符串在常量池里不存在,会在常量池创建这个一个String对象"ABC"。

猜你喜欢

转载自www.cnblogs.com/shijianchuzhenzhi/p/12980150.html