我有点困惑,我了解到String
是对象,因此要比较它们,你应该使用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 ++,即不是关于它们的引用?
答案 0 :(得分:3)
假设您的构造函数将其参数值分配给实例变量3
...
事件nom
是任意的,并且由于文字a.nom == c.nom
已被实习(或缓存)。
这并不意味着在比较除"Sara"
方法之外的String
时,您应该期待一致的结果。