属性String是一个对象吗?

时间:2016-01-13 00:37:43

标签: java string

我有点困惑,我了解到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 ++,即不是关于它们的引用?

1 个答案:

答案 0 :(得分:3)

假设您的构造函数将其参数值分配给实例变量3 ...

事件nom是任意的,并且由于文字a.nom == c.nom已被实习(或缓存)。

这并不意味着在比较除"Sara"方法之外的String时,您应该期待一致的结果。