我有点困惑,我了解到String
s 是对象,因此要比较它们,您应该使用 String#equals
.
我的问题是:如果我有 String
作为一个属性,它是一个对象吗?
澄清我的问题:
Class A {
public String nom;
A(nom) {
this.nom = nom;
}
}
...并在主方法中:
A a = new A("Sara");
A b = new A("Youssef");
A c = new A("Sara");
a.nom == b.nom; ==> false
a.nom == c.nom; ==> true
因此,就是String
的比较s' 的值更像 c++,即与它们的引用无关?
最佳答案
假设您的构造函数将其参数值分配给实例变量nom
...
事实上,a.nom == c.nom
是任意的,并且由于文字 "Sara"
已被保留(或缓存)。
这并不意味着在比较 String
时,除了使用 equals
方法之外,您应该期望得到一致的结果。
关于java - 属性 String 是对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756458/