Pet*_*Mmm 43
String str = new String("SOME")
Run Code Online (Sandbox Code Playgroud)
总是在堆上创建一个新对象
String str="SOME"
Run Code Online (Sandbox Code Playgroud)
使用字符串池
试试这个小例子:
String s1 = new String("hello");
String s2 = "hello";
String s3 = "hello";
System.err.println(s1 == s2);
System.err.println(s2 == s3);
Run Code Online (Sandbox Code Playgroud)
为避免在堆上创建不必要的对象,请使用第二种形式.
两者之间存在细微差别.
第二个声明将与常量关联的引用分配SOME给变量str
第一个声明创建一个新的String,其值为常量的值,SOME并指定其对变量的引用str.
在第一种情况下,创建了第二个String,SOME其具有相同的值,这意味着更多的初始化时间.因此,你应该避免它.此外,在编译时,所有常量SOME都转换为相同的实例,使用的内存要少得多.
因此,总是喜欢第二种语法.
| 归档时间: |
|
| 查看次数: |
178288 次 |
| 最近记录: |