Java 在创建新字符串时确定指向哪个现有字符串

Java 在创建新字符串时确定指向哪个现有字符串,java,string,pointers,Java,String,Pointers,在java中,如果定义一个字符串,其中包含一个已经存在的字符数组,它将与我假设的从下到上扫描内存以进行搜索的引用相同,但进一步检查后,它将是第一个使用该字符串启动的字符串,即使该字符串具有“更高的”所以我想知道java interperter是如何搜索现有字符串的 我使用 System.identityHashCode() 并使用基本字符串进行测试,如 “hello”这里已经回答了:我看不到这个问题的答案。我的问题是假设我在x地址的内存中有一个“hello”字符串,我有一个“hello”在不同

在java中,如果定义一个字符串,其中包含一个已经存在的字符数组,它将与我假设的从下到上扫描内存以进行搜索的引用相同,但进一步检查后,它将是第一个使用该字符串启动的字符串,即使该字符串具有“更高的”所以我想知道java interperter是如何搜索现有字符串的 我使用

System.identityHashCode()
并使用基本字符串进行测试,如
“hello”

这里已经回答了:我看不到这个问题的答案。我的问题是假设我在x地址的内存中有一个“hello”字符串,我有一个“hello”在不同地址的内存中,让我们称之为y如果我创建一个新的hello stirng而没有新的关键字,java将如何决定使用哪一个。这取决于JVM实现,您需要检查您正在使用的JVM规范。