String s="hi";
String s1=new String("hi");
Run Code Online (Sandbox Code Playgroud)
从内存的角度来看,s和s1存储在哪里?无论是在堆内存还是堆栈中。
s 指向“hi”,s1 指向 hi 所在的内存位置?
请帮忙?
考虑以下
String s = "hi";
String s1 = new String("hi");
Run Code Online (Sandbox Code Playgroud)
变量s将引用hi从字符串常量池引用的字符串文字,如果还有更多变量s2 = "hi",例如 ,则s和s2将引用同一个对象。
String s1 = new String("hi");
Run Code Online (Sandbox Code Playgroud)
这将在运行时创建一个新的字符串。
在第一种情况下,所有 strnig 文字都是在 JVM 中加载类时创建的。在秒种情况下,字符串对象是在new String()执行时创建的。您可以在以下链接找到有关字符串常量池的好教程
http://www.thejavageek.com/2013/06/19/the-string-constant-pool/
| 归档时间: |
|
| 查看次数: |
5757 次 |
| 最近记录: |