패키지(package) : 관계가 밀접한 클래스(class)와 인터페이스(interface)를 묶은 단위
동등 연산자(==) : 기본형(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 메서드에서는 기본적으로 동등 연산자(==)를 사용해서 객체를 비교한다. 즉, 두 참조 변수가 힙에 있는 같은 객체를 참조하는지를 검사한다.
객체가 가지고 있는 고유한 값
객체를 구별할 때 사용한다.
해시코드는 객체의 주소와 관련된 정숫값이다.
원시(native) 메서드로 JVM에서 원시 코드로 직접 구현된 메서드
해시코드가 같고 자료형도 같아야 같은 객체라고 본다.