String a="hello";和String a=new String的区别

2025-03-10 12:43:20
推荐回答(1个)
回答1:

String a="hello"
可能创建一个对象或者不创建对象,如果"hello"这个字符串在java 常量池里不存在,会在java 常量池创建一个String对象("hello").如果已经存在,a直接引用这个常量池里的对象。

String a=new String("hello")
至少创建一个对象,也可能两个。因为用到new 关键字,会在堆中创建一个 a的String 对象("hello").同时,如果"hello"这个字符串在java 常量池里不存在,会在java 常量池也创建一个String对象("hello").