天天看點

在java中“==”和equals的問題

前幾天在寫一個小程式的時候,有一段代碼需要進行判斷,由于當時一時大意在判斷的if語句中使用了“==”進行了兩個字元串判斷,進而導緻程式不能正常運作,雖然不抱任何錯誤,但是達不到預期的目的,最後才發現是"=="這裡出了問題。因為在比較兩個字元串的時候“==”比較的是兩個字元串的位址而不是他們的值,雖然我們在比較像int ,char這類的值的時候“==”和equals方法是一樣的,因為他們都是基本類型,而String則不可以,因為String是引用類型,雖然他們都是繼承自Object類都繼承了“==”和equals方法,但不同的繼承不同的重寫這兩個方法,是以就導緻了把用于比較數值的“==”用到比較字元串中去這種錯誤,最後把“==”全部換成equals,程式就能正常運作啦。

2013/07/17下午