πŸ’» 곡뢀 기둝/β˜• Java

Java | equals

  • -

λ¬Έμžμ—΄μ„ λŒ€μƒμœΌλ‘œ equals 와 == 의 차이점에 λŒ€ν•΄μ„œ κ³΅λΆ€ν–ˆλ‹€.

 

κΈ°λ³Έμ μœΌλ‘œλŠ” 두가지 λͺ¨λ‘ μ–‘ μͺ½μ˜ λ‚΄μš©μ„ λΉ„κ΅ν•œ 값을 boolean type 으둜 λ°˜ν™˜ν•œλ‹€.

κ·Έλ ‡λ‹€λ©΄ λͺ…ν™•ν•œ 차이점에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

 

ν˜•νƒœ

equals() λŠ” λ©”μ†Œλ“œ

== λŠ” 비ꡐλ₯Ό μœ„ν•œ μ—°μ‚°μž

 

μ£Όμ†Œκ°’ 비ꡐ, λ‚΄μš© 비ꡐ

비ꡐ λŒ€μƒμ— λŒ€ν•œ 차이점으둜,

equals λ©”μ†Œλ“œλŠ” λΉ„κ΅ν•˜κ³ μž ν•˜λŠ” λŒ€μƒμ˜ λ‚΄μš© 자체λ₯Ό λΉ„κ΅ν•œλ‹€.

== μ—°μ‚°μžλŠ” λΉ„κ΅ν•˜κ³ μž ν•˜λŠ” λŒ€μƒμ˜ μ£Όμ†Œκ°’μ„ λΉ„κ΅ν•œλ‹€.

 

μ£Όμ†Œκ°’μ„ κ°„λ‹¨ν•˜κ²Œ μ΄ν•΄ν•˜μžλ©΄, λŒ€μƒμ„ ꡬ별할 수 있게 ν•˜λŠ” κ°’.

CBV(Call By Value) λŠ” 기본적으둜 λŒ€μƒμ— μ£Όμ†Œκ°’μ„ 가지지 μ•ŠλŠ” κ²ƒμœΌλ‘œ 값을 ν• λ‹Ήλ°›λŠ” ν˜•νƒœλ‘œ μ‚¬μš©λ¨.
예) int, float, double, byte λ“± primitive type 에 ν•΄λ‹Ή
CBR(Call By Reference) λŠ” λŒ€μƒμ„ μ„ μ–Έν–ˆμ„ λ•Œ, μ£Όμ†Œκ°’μ΄ 뢀여됨.
Class, Object(객체) κ°€ ν•΄λ‹Ή

 

예λ₯Ό λ“€μ–΄ μ•„λž˜μ™€ 같이 λͺ¨λ‘ "aaa" λΌλŠ” λ‚΄μš©μ„ 가지고 μžˆλ‹€. μ£Όμ†Œκ°’μ— λŒ€ν•΄μ„œλŠ” λ‹€λ₯Έ 값을 κ°€μ§€λŠ” λ³€μˆ˜κ°€ μ‘΄μž¬ν•œλ‹€.

String a = "aaa";
String b = a;
String c = new String("aaa");

b λŠ” a μ΄λ―€λ‘œ String a 와 String b λŠ” μ£Όμ†Œκ°’μ΄ κ°™λ‹€.

ν•˜μ§€λ§Œ μƒˆλ‘œμš΄ 객체λ₯Ό μƒμ„±ν•œ String c λŠ” a, b 와 λ‹€λ₯Έ μ£Όμ†Œκ°’μœΌλ‘œ μ„ μ–Έλ˜μ–΄ μƒμ„±λœλ‹€.

λ”°λΌμ„œ a, b 와 κ°™μ§€λ§Œ c λŠ” λ‹€λ₯΄λ‹€.

 

μœ„ λ‚΄μš©μ„ κ·Όκ±°ν•˜μ—¬ μ˜ˆμ‹œλ₯Ό λ“€μ–΄λ³΄μž.

System.out.println(a.equals(b));
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a.equals(c));

// μ²«λ²ˆμ§ΈλŠ” a와 bκ°€ 가지고 μžˆλŠ” λ‚΄μš©μ„ λΉ„κ΅ν•˜μ˜€μœΌλ―€λ‘œ true
// λ‘λ²ˆμ§ΈλŠ” a와 bκ°€ 가지고 μžˆλŠ” μ£Όμ†Œκ°’μ„ λΉ„κ΅ν•˜κ³  μžˆμœΌλ―€λ‘œ true
// μ„Έλ²ˆμ§ΈλŠ” a와 cκ°€ 가지고 μžˆλŠ” μ£Όμ†Œκ°’μ„ λΉ„κ΅ν•˜κ³  μžˆμœΌλ―€λ‘œ false
// λ„€λ²ˆμ§ΈλŠ” a와 cκ°€ 가지고 μžˆλŠ” λ‚΄μš©μ„ λΉ„κ΅ν•˜μ˜€μœΌλ―€λ‘œ true

좜처 | http://ojava.tistory.com/category/Program/JAVA

 


 

μ½”λ”© 쀑에 '==' μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λ‹€κ°€, μœ„μ™€ 같은 μƒν™©μœΌλ‘œ μ£Όμ†Œκ°’μ΄ λ‹€λ₯Έ 원인을 μ œλŒ€λ‘œ νŒŒμ•…ν•˜μ§€ λͺ»ν•΄μ„œ λͺ‡μ‹œκ°„을 λ‚ λ Έλ‹€.

λ©‹μŸμ΄ μŠ€ν…ν”Œλ‘œμš° κ°œλ°œμžλ‹˜λ“€ 덕뢄에 equals λ₯Ό μΆ”μ²œν•΄μ€˜μ„œ ν•΄κ²°ν–ˆμ§€λ§Œ, μ œλŒ€λ‘œ μ•Œκ³  λ„˜μ–΄κ°€κΈ° μœ„ν•΄ 글을 남긴닀.

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.