==, equals(), hashCode
equals์ hashCode๋ ๋ชจ๋ Java ๊ฐ์ฒด์ ๋ถ๋ชจ ๊ฐ์ฒด์ธ Object class์ ์ ์๋์ด ์๋ค
โ ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Java์ ๋ชจ๋ ๊ฐ์ฒด๋ Object class์ ์ ์๋ equals์ hashCode ํจ์๋ฅผ ์์๋ฐ๊ณ ์๋ค
== ์ฐ์ฐ์
ํผ ์ฐ์ฐ์๊ฐ
primitive type
(int, byte, short, long, float, double, boolean, char) ์ผ ๋๋๊ฐ์ ๋น๊ต
ํ๊ณ ,ํผ ์ฐ์ฐ์๊ฐ ๊ทธ ์ธ
reference type
์ผ ๋๋๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ ๋น๊ต
ํ๋ค
equals()
public boolean equals(Object obj) {
return (this == obj);
}
2๊ฐ์ ๊ฐ์ฒด๊ฐ ๋์ผํ์ง ๊ฒ์ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค
2๊ฐ์ ๊ฐ์ฒด๊ฐ ์ฐธ์กฐํ๋ ๊ฒ์ด ๋์ผํ์ง ํ์ธํ์ฌ ๊ฒ์ฌํ๋ค
์ฆ, 2๊ฐ์ ๊ฐ์ฒด๊ฐ ๊ฐ๋ฆฌํค๋ ๊ณณ์ด
๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์
์ผ ๊ฒฝ์ฐ์๋ง ๋์ผํ ๊ฐ์ฒด๊ฐ ๋๋ค
์ฐ๋ฆฌ๊ฐ ๋์ผํ ๋ฌธ์์ด 2๊ฐ๋ฅผ ์์ฑํ๋ฉด, 2๊ฐ์ ๋ฌธ์์ด์ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์์ ํ ๋น๋๋ค
but, equals๋ฅผ ์ฌ์ฉํ๋ฉด true์ธ ์ด์ ๋ String class์์ equals method๋ฅผ
override
ํ์ฌ ๋ฌธ์์ด ๋ด์ฉ์ด ๊ฐ์ผ๋ฉด true๋ฅผ return ํ๋๋ก ์ฌ์ ์ํ๊ธฐ ๋๋ฌธ์ด๋ค๋ฌธ์์ด์ char ๋จ์๋ก ํ ๊ธ์์ฉ ๋ชจ๋ ๋น๊ตํ์ฌ ๋์ผํ๋ฉด true๋ฅผ returnํ๋ค
๋ฐ๋ผ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ผ๋ ๊ฐ์ ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ผ๋ฉด ๋์ผํ๋ค๊ณ ํ๋จํ๋ ๊ฒ์ด๋ค
hashCode()
public native int hashCode();
๊ฐ์ฒด๋ฅผ ์๋ณํ ์ ์๋ ํ๋์ uniqueํ ์ ์๊ฐ์ ๋งํ๋ค
Object class์์๋
heap ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์
๋ฅผ ๋ฐํํ๋๋ก ๋์ด ์๋ค
native
ํค์๋๋ method๊ฐJNI (Java Native Interface)
๋ผ๋ native code๋ฅผ ์ด์ฉํด ๊ตฌํ๋์์์ ์๋ฏธํ๋คnative๋ method์๋ง ์ ์ฉ ๊ฐ๋ฅํ ํค์๋๋ก, Java๊ฐ ์๋ ์ธ์ด๋ก ๊ตฌํ๋ ๋ถ๋ถ์ JNI๋ฅผ ํตํด Java์์ ์ด์ฉํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค
Java์์ ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ํค์๋๋ค!
hashCode๋
HashTable
๊ณผ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ๋,๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์์น๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ
๋๋ค
Last updated
Was this helpful?