用Java初始化字符串

inv*_*ant 0 java string

考虑以下代码:

  1. 如何str1在不使用的情况下创建对象new String()?
  2. 为什么str1和str2对象引用相同的内存位置?

String str1 = "hello";
String str2 = "hello";
Run Code Online (Sandbox Code Playgroud)

Mis*_*ble 5

它都在java语言规范中描述.

请参见3.10.5字符串文字:

每个字符串文字都是类String(第4.3.3节)的实例(第4.3.1节,第12.5节)的引用(第4.3节).String对象具有常量值.字符串文字 - 或者更一般地说,作为常量表达式(第15.28节)的值的字符串 - 是"实例化"以便使用String.intern方法共享唯一实例.