一個面試的時候經常會遇到的java基礎題目,equals()方法和“==”的區別。想順着這個題目好好的捋一捋其中的關係。結論是如果”==”比較的是對象的地址,只要是new出來兩個對象,比較兩個對象的引用,肯定永遠都不一樣 。只要畫一畫其內存分析,肯定是指向不同的地址。
再去重新理解static的時候我想從最簡單的開始,修飾類的屬性。
目錄
(1) java基類Object類
在類中,static修飾的成員變量稱爲靜態成員變量,它爲該類的公有變量,只有在第一次使用時被初始化,對於該類所有對象來說,static成員變量只有一份。
(2) hashCode()方法
試着站在java虛擬機的角度來看內存中的佈局。一個程序運行時可能會有很多很多個對象在堆內存中分配,對於java虛擬機來說需要找到這些對象,會用一張表記錄着每一個對象在什麼位置上,而這張表一般是又哈希編碼來記錄,每個對象都有自己獨一無二的hash編碼, 根據這個編碼就能找到相關的對象。
equals()方法、hashCode()方法以及HashMap之間聯繫密不可分的。