java中String new和直接赋值的区别

2025-02-25 07:37:36
推荐回答(1个)
回答1:

new,会在java的堆内存中创建对象, 有几个new就有几个对象。
直接赋值, 是从字符串常量池中取值。
例如 String str1 = "a"; String str2 = "a"; System.out.println(str1==str2);结果为true,地址值
都是字符串长量池中的"a".
String str3 = new String("a");String str4 = new String("a");System.out.println(str3==str4);
结果为false. 应为new会在堆中创建两个字符串对象, 地址值不同