0
在Java中使用new操作符将被存储在堆 内存是什么堆内存和字符串常量池之间的Java
- 对象创建的差异。
- 对象使用字符串文字存储在 的字符串常量池的
我运行下面的代码来检查的哈希码创建。代码的
String nameOne = "Deepak";
String nameTwo = new String("Deepak");
System.out.println("nameOne address -- "+nameOne.hashCode());
System.out.println("nameTwo address -- "+nameTwo.hashCode());
输出是
nameOne address -- 2043177526
nameTwo address -- 2043177526
这两个对象正在使用新的运营商和字符串创建文字,并存储在不同的地方相应堆存储器和字符串常量池。那么内存地址是如何相同的。
请有关概念的解释,如果我错了
一个'String'的哈希码是无关的内存地址。哈希码基于字符串的*值*。两个具有相同值*的字符串*必须具有相同的哈希码。 – khelwood
http://www.journaldev。com/797/what-is-java-string-pool这可能会帮助 –
@khelwood:谢谢兄弟,知道我明白了 –