哪一个更好
System.out.println("hello world");
Run Code Online (Sandbox Code Playgroud)
要么
String s="hello world";
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
这种情况没有区别.
重要的是要意识到引用是如何工作的,并且局部变量与它们所引用的对象不同.局部变量本身所需的内存是微不足道的; 如果它使代码更具可读性,你应该毫不犹豫地声明局部变量.
考虑以下代码:
String s1 = "a very long string...";
String s2 = s1;
Run Code Online (Sandbox Code Playgroud)
此代码声明了两个String引用,但它们都引用了同一个String对象.在这种情况下,内存要求不会翻倍.
你永远不应该低估编译器在优化代码时的智能程度.请考虑以下示例:
System.out.println("Hello world!");
System.out.println("Hello world!");
System.out.println("Hello world!");
Run Code Online (Sandbox Code Playgroud)
事实上,上面的代码片段并没有将字符串对象存储"Hello world!"在内存中三次!文字是实习的,只存储在内存中一次.
每个字符串文字都是对实例的引用
class String.String对象具有常量值.字符串文字 - 或者更一般地说,是作为常量表达式值的字符串 - 被"实例化"以便使用该方法共享唯一实例String.intern.
"string"vsnew String("string")| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |