情况:女朋友的 Java 老师说以下语句是等价的。同时,一本 Java 书籍推荐后一种形式。
String a = new String("Hi");
String b = "Hi";
然后a.equals(b),世界就好了。
但是,我的 Java 文本和 C 知识严重地告诉我,因为a==b
以及a.equals(b)
, ifa
已更改(不太可能在 a 中String
,但如果它无论如何都会发生突变怎么办,因为它可能以某种方式传递地址,即使 JVM 也不会' t stop) 然后b
也将被更改。因此,假设b.equals("Hi")
.
有什么见解吗?声明是否b
真的安全,或者只是在 RAM 上轻了很多?
我不是在问有什么区别。我知道这b
可能引用了在a
.