equals() μ hashcode() λ©μλμ μν κ³Ό κ΄κ³μ λν΄μ μκ°ν΄λ³΄μ.
1οΈβ£ λμΌμ±κ³Ό λλ±μ±
μΌλ°μ μΌλ‘ λμΌμ±μ λ©λͺ¨λ¦¬μ λμΌν μμΉμ μλμ§λ₯Ό νλ¨νκ³ , λλ±μ±μ λ λ°μ΄ν°λ₯Ό λ Όλ¦¬μ μΌλ‘ κ°μ λ°μ΄ν°λ‘ μ·¨κΈν μ μλκ°λ₯Ό νλ¨νλ€.
μλ°μ λ°μ΄ν° νμ μ μμ νμ (Primitive Type)κ³Ό μ°Έμ‘° νμ (Reference Type) λ°μ΄ν° λ μ’ λ₯λ‘ λλ μ μλ€.
JVMμ λ©λͺ¨λ¦¬ ꡬ쑰μλ μ€ν μμκ³Ό ν μμμ΄ μ‘΄μ¬νλλ°,
μμ νμ μ κ²½μ° μ€ν μμμ κ°μΌλ‘μ κ΄λ¦¬λμ§λ§, μ°Έμ‘° νμ μ κ²½μ° ν μμμμ μμ±λκ³ μ€ν μμμμλ ν μμμ μμΉλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ€.
public class Main {
public static void main(String[] args) {
int port = 4000;
String host = "localhost";
}
}
μ λ©μΈ λ©μλκ° μ€νλλ©΄,
μμ κ°μ΄ μμ νμ μΈ port λ 4000μ΄λΌλ μ€μ κ°μ ν λΉνμ§λ§
hostμ μ€μ λ°μ΄ν°λ ν μμμ μμ±λκ³ μ€ν μμμμλ, μ°Έμ‘°κ°μ ν λΉνλ€.
μμ νμ λ°μ΄ν°μ κ²½μ° λΉκ΅ μ '==' λ₯Ό μ¬μ©ν΄λ μ€μ κ°μ μκ³ μκΈ° λλ¬Έμ κ°μ κ°μΈμ§ μλμ§ νμ ν μ μμΌλ©° μ€μ λ‘λ κ°μ κ°μ κ°λμ§ νμΈνμ¬ κ°λ€λ©΄ trueλ₯Ό λ°ννλ€.
μ°Έμ‘° νμ μ κ²½μ°μλ μ νν κ°μ μ€νμ΄ μμ§ λͺ»νκ³ , λ©λͺ¨λ¦¬μ μμΉ κ°λ§ μκ³ μκΈ° λλ¬Έμ `==` λ₯Ό μ¬μ©ν μ μ°Έμ‘°νλ λ©λͺ¨λ¦¬ μμΉ κ°μ λΉκ΅νμ¬ μ¬λ°λ₯Έ λΉκ΅λ₯Ό νκΈ° μ΄λ €μμ§λ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν λ©μλκ° equals() λ©μλμ΄λ€.
2οΈβ£ equals()μ μν
equals()λ μ°Έμ‘° νμ μΈ λ κ°μ²΄μ λλ±μ±μ νλ¨νκΈ° μν κΈ°μ€μ κ²°μ νλ€.
λ§μ½, λ κ°μ²΄κ° μ‘΄μ¬νλ λ©λͺ¨λ¦¬μ μμΉλ λ€λ₯΄μ§λ§, λ κ°μ²΄κ° κ°κ³ μλ λ§΄λ² λ³μμ κ°μ΄ λͺ¨λ λμΌνλ€λ©΄ κ°μ κ°μ²΄λ‘ νλ¨νκ³ μΆμ κ²½μ°κ° μμ κ²μ΄λ€.
κ·Έλ λ€λ©΄, ν΄λμ€ λ΄μμ equals() λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ μλ‘ λ€λ₯Έ μμΉμ μ‘΄μ¬νλλΌλ κ°μ κ°μ²΄λ‘ νλ¨νκ³ μΆμ κΈ°μ€μ λ§μ‘±νλ©΄ trueλ₯Ό λ°ννλλ‘ κ΅¬νν΄μ£Όλ©΄ λλ€.
3οΈβ£ hashcode()μ μν
equals()λ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬μ μ‘΄μ¬ν΄λ κ°μ κ°μ²΄λ‘ νλ¨νκ³ μΆμ κ²½μ° μ€λ²λΌμ΄λ© νλ κ²μ΄λΌ νλ€.
κ·Έλ¬λ©΄ hashcode()λ 무μμΌκΉ?
hashcode()λ Mapμ΄λ Setκ³Ό κ°μ ν΄μ κΈ°λ° μλ£κ΅¬μ‘°μμ μ¬μ©νκΈ° μν ν΄μ μ½λ κ°μ λ°ννλ λ©μλμ΄λ€.
μΌλ°μ μΌλ‘, μ°Έμ‘° νμ μΈ κ°μ²΄λ Heapμ μ‘΄μ¬νλ―λ‘ Heapμ μ‘΄μ¬νλ λ©λͺ¨λ¦¬ μ£Όμλ κ°μ²΄λ§λ€ μ μΌν κ°μ κ°κΈ° λλ¬Έμ κ·Έ κ°μ ν΄μμ½λλ‘ μ¬μ©νλ€.
κ°νΉ, λ©λͺ¨λ¦¬μ μμΉκ° λ€λ₯΄λλΌλ λλ±ν κ°μ²΄κ° ν΄μ κΈ°λ° μλ£κ΅¬μ‘°μ μ€λ³΅μΌλ‘ μ λ ₯λμ§ μκΈ°λ₯Ό μν μ μλ€.
hashcode() λ©μλλ₯Ό λ°λ‘ μ€λ²λΌμ΄λ© νμ§ μμΌλ©΄, λλ±ν λ κ°μ²΄λ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬μ μμΉνκΈ° λλ¬Έμ ν΄μ κΈ°λ° μλ£κ΅¬μ‘°μ μ€λ³΅μΌλ‘ μ μ₯λ μ λ°μ μλ€.
λ°λΌμ, κ°μ²΄κ° κ°μ§ λ§΄λ² λ³μ κ°μ κΈ°μ€μΌλ‘ ν΄μ μ½λλ₯Ό μμ±νλλ‘ μ€λ²λΌμ΄λ© νλ©΄, λλ±ν λ κ°μ²΄λ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬μ μ‘΄μ¬ν΄λ κ°μ ν΄μ μ½λ κ°μ λ°ννμ¬ μλ£κ΅¬μ‘°μ μ€λ³΅μΌλ‘ μ μ₯λλ κ²μ νΌν μ μκ² λλ€.
hashcode λ₯Ό μ€λ²λΌμ΄λ© ν λ, λ¬Έμμ΄λ‘ λ³ν ν ν΄μ μ½λ κ°μ κ³μ°νλ String ν΄λμ€μ hashcode() λ₯Ό μ¬μ©νκ±°λ κ° λ§΄λ² λ³μμ ν΄μ μ½λ κ°μ μ‘°ν©νμ¬ κ°μ²΄μ ν΄μ μ½λ κ°μ κ³μ°νλ Objectsμ hash() ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.