String obj = null;
obj= new String("Samuel");
//vs
String obj = null;
obj="Samuel";
Run Code Online (Sandbox Code Playgroud)
这两种初始化String的方法有什么区别吗?
是.并且总是喜欢第二种选择.
第一个创建一个不必要的字符串实例.字符串文字(字符串周围的两个引号)自己创建一个字符串对象.然后,如果您使用第一个选项,则会创建另一个不必要的实例.
当您仅使用字符串文字(第二个选项)时,jvm使用一个表来存储规范字符串对象.因此,对于声明的所有字符串"Samuel",JVM中只有一个实例.但是如果你使用String(str)构造函数,你将拥有更多的实例,这意味着更多的内存.
要在评论中回答后续问题:这仅适用于字符串.所有其他对象都是通过构造函数创建的,因为它们没有指定的文字.
例如,你需要Car car = new Car("honda", "civic").简单地拥有("honda, "civic")不是有效的语法 - 无法知道您创建的是什么类型.
| 归档时间: |
|
| 查看次数: |
4063 次 |
| 最近记录: |