在Java平常編程中常用==或者equals來比較兩個變量,那麼這兩種方式有什麼區別呢。編程
堆棧:首先咱們要明確堆和棧的概念,在系統內存中將局部變量存放在棧中,將new出來的對象以及一些方法(類的代碼信息,static變量以及常量池)放在堆中。spa
如今就說一下==和equals的比較的實質:==比較的是變量的地址而equals比較的是變量的內容,那麼根據上面所說的能夠獲得==比較的是變量存儲在棧中的內容,equals比較的是變量存儲在堆中的內容。對象
附上內存分析圖:內存