자바의 주요 클래스

황희윤·2023년 11월 10일

패키지(package) : 관계가 밀접한 클래스(class)와 인터페이스(interface)를 묶은 단위

equals() 메서드

  • 값이 동일한지를 비교한다.

동등 연산자(==) vs equals()

동등 연산자(==) : 기본형(primitive type) 변수 간에 값을 비교하거나 참조형 변수간에 참조하는 메모리의 주솟값을 비교할 때 사용한다.

String str1 = new String("Hello");
String str2 = new String("Hello");

boolean result = (str1 == str2); // false, 서로 다른 객체를 가리키므로

equals() 메서드 : 매개 변수를 비교하고자 하는 객체의 참조 변수를 받아 비교한다

String str1 = new String("Hello");
String str2 = new String("Hello");

boolean result = str1.equals(str2); // true, 내용이 동일하므로

위의 코드에서처럼 String, Integer, Double 등은 equals() 메서드를 오버라이딩해서 내용을 비교한다.

하지만 일반적인 경우, 서로 다른 객체인 경우 equals() 메서드는 늘 false를 반환한다.

equals 메서드에서는 기본적으로 동등 연산자(==)를 사용해서 객체를 비교한다. 즉, 두 참조 변수가 힙에 있는 같은 객체를 참조하는지를 검사한다.


hashCode() 메서드

  • 객체가 가지고 있는 고유한 값

  • 객체를 구별할 때 사용한다.

  • 해시코드는 객체의 주소와 관련된 정숫값이다.

  • 원시(native) 메서드로 JVM에서 원시 코드로 직접 구현된 메서드

  • 해시코드가 같고 자료형도 같아야 같은 객체라고 본다.


profile
HeeYun's programming study

0개의 댓글