我有一个字符串变量和另一个分配给同一个变量的字符串.那怎么老字符串?

uve*_*eng 4 java string

假设我有一个字符串

msg = "hello"
Run Code Online (Sandbox Code Playgroud)

现在我得到来自字符串的子串msgmsg.substring(1,msg.length())

并将子字符串存储到msg.

所以msg指的是新的字符串.如果旧字符串也保留在java的缓冲区中,那么如何访问它?

Bri*_*new 8

请注意,Java 7(第6版,IIRC)的String.substring()实现和实际实现String已发生变化

所以取决于你的Java版本:

  1. 如果它是发布Java 7u6,你不能这样做.String.substring()会给你一个全新的字符串
  2. 如果它是Java的旧版本,您可以访问新的私有底层char数组String,这实际上是旧字符串的完整 char数组

第2项特别令人讨厌,我怀疑你想要实现的目标.

有关substring()实现及其更改方式的更多详细信息,请参见此处.