java - Java中字符串初始化

标签 java string

考虑下面的代码:

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

String str1 = "hello";
String str2 = "hello";

最佳答案

java语言规范中都有描述。

参见3.10.5 String Literals :

Each string literal is a reference (§4.3) to an instance (§4.3.1, §12.5) of class String (§4.3.3). String objects have a constant value. String literals-or, more generally, strings that are the values of constant expressions (§15.28)-are "interned" so as to share unique instances, using the method String.intern.

关于java - Java中字符串初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903753/

相关文章:

java - 如何读取文件并转换为字节

java - 使用外部变量更改数组的内容

java - ubuntu 14.04 上的 JNI4Net

java - Spring webservicetemplate jar 与 Axis2 冲突问题

c# - 从 C# 字符串中提取模式并使用它创建变量的最佳做法是什么

Java Encode file to Base64 string 以匹配其他编码的字符串

string - 是否有一个Lua string.find没有模式

Java - 我应该为日志消息使用常量吗?

java - 通知 MySQL 的变化

java - 有状态 session bean 是否应该实现 Serializable