不一样
String s =“abc”,如果字符串常量池中不存在abc,会在字符串常量池中创建一个abc;如果已经存在,则s指向已经存在的abc,直接调用字符串常量池中的“abc”。
String s = new String(“abc”)会在堆中创建新的abc,不管之前是否存在。如果字符串常量池中不存在abc,则会在常量池中创建该字符串的引用。如果常量池中已经存在abc,则会重新创建一个abc。
不一样
String s =“abc”,如果字符串常量池中不存在abc,会在字符串常量池中创建一个abc;如果已经存在,则s指向已经存在的abc,直接调用字符串常量池中的“abc”。
String s = new String(“abc”)会在堆中创建新的abc,不管之前是否存在。如果字符串常量池中不存在abc,则会在常量池中创建该字符串的引用。如果常量池中已经存在abc,则会重新创建一个abc。