Java 字符串内存分配
哪一个更好Java 字符串内存分配,java,Java,哪一个更好 System.out.println("hello world"); 或 对于这个简单的例子,内存分配没有区别。在这种情况下没有区别 重要的是要了解引用是如何工作的,并且局部变量不同于它们所引用的对象。局部变量本身所需的内存是微不足道的;如果局部变量使代码更具可读性,那么您应该毫不犹豫地声明局部变量 例如,考虑以下代码: String s1 = "a very long string..."; String s2 = s1; 此代码声明了两个String引用,但它们都引用相同的S
System.out.println("hello world");
或
对于这个简单的例子,内存分配没有区别。在这种情况下没有区别 重要的是要了解引用是如何工作的,并且局部变量不同于它们所引用的对象。局部变量本身所需的内存是微不足道的;如果局部变量使代码更具可读性,那么您应该毫不犹豫地声明局部变量 例如,考虑以下代码:
String s1 = "a very long string...";
String s2 = s1;
此代码声明了两个String
引用,但它们都引用相同的String
对象。在这种情况下,内存需求不会增加一倍
永远不要低估编译器在优化代码方面的智慧。考虑下面的例子:
System.out.println("Hello world!");
System.out.println("Hello world!");
System.out.println("Hello world!");
事实上,上面的代码片段没有在内存中存储三次string对象“Hello world!”
!该文本在内存中只存储一次
工具书类
每个字符串文字都是对类字符串
实例的引用<代码>字符串对象具有常量值。字符串文本——或者更一般地说,是常量表达式的值的字符串——被“插入”,以便使用该方法共享唯一的实例
相关问题
-
- 在
vs“字符串”
新字符串(“字符串”)
- 在
String s=new String("hello world");
System.out.println(s);
与
然后会有一个潜在的差异,因为后一种情况是字符串内部化的候选,而前一种情况不会。像这样的微优化通常不值得付出努力。
String s=new String("hello world");
System.out.println(s);
System.out.println("hello world");