通过比较参考和比较价值意味着什么?

时间:2015-03-17 16:59:27

标签: string

有人能告诉我何时使用equals()和“==”运算符? 我知道equals()方法用于比较字符串的值。另外我知道“==”用于检查引用。它究竟意味着什么?

1 个答案:

答案 0 :(得分:1)

想象一下两辆车。让他们说他们是绿色丰田卡罗拉和橙色法拉利。你想比较它们 - 它们是相似的吗?是;他们是两辆车。但是,他们有不同的属性。他们的价值观(字面上和比喻上)并不相同,当我谈到卡罗拉时,我绝对不会谈论法拉利。当我提到一个时,我不是指另一个。

现在,想象一下,我和你谈论一个红色卡罗拉。你还有一个红色的卡罗拉。整齐!我们有同样的车!除此之外,他们并非完全同一辆车,因为他们是两辆不同的车。它们碰巧具有相同的价值。我可以画我的画,它不会改变你的,或者我可能会崩溃,他们不会有同样的价值。比较我们的两辆车就像使用equals()方法。我们可以说它们具有相同的价值(直到我崩溃,或以其他方式改变它)。

但是,如果我们每个人都在谈论一辆红色花冠,结果我从你卖给你的人那里买了花冠 - 嘿,我们正在谈论相同的卡罗拉!我们实际上指的是同样的事情。如果我撞上我的卡罗拉,我也撞毁了你的(前)卡罗拉。如果我画它,它仍然是同一辆车。检查我们是否正在谈论完全相同的事情是引用相等。