==, 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