情况:女朋友的 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.