객체에 대해서 String 값으로 나타낼 때 생성되어야 하는 내용이 재정의된다.
toString() = Object의 메서드
s1과 s2의 address가 같음!
equals() : 두 개의 reference 값이 같은 경우 true를 return함
별개의 인스턴스 같다고 정의할 수도 있음.
hashCode() = equals()로 같다고 할 때 항상 반환되는 address
다른 두 객체를 equals()와 hashCode()로 재정의해 같은 객체로 취급
변수의 선언이나 메서드의 매개변수를 여러 자료형으로 변환될 수 있도록 함
프로그램 구현에 필요한 자료구조(Data Structure)를 구현해놓은 라이브러리
java.util 패키지에 구현되어 있음
개발 소요 시간 절약 및 최적화된 알고리즘 사용 가능
여러 인터페이스와 구현 클래스 사용 방법을 이해하려 함
HashSet에 add할 땐 equals()와 hashCode() 둘다 비교
HashSet을 쓸 땐 equals()와 hashCode() 재정의
Tree가 들어간 클래스 특징 -> "정렬"
외부 클래스의 생성자에서 주로 생성되는 내부 클래스
인스턴스 내부 클래스는 주로 외부 클래스가 생성될 때 함께 생성됨
내부클래스의 외부 클래스의 레퍼런스를 가짐
내부클래스는 외부 클래스의 모든 변수 사용 가능
외부에서도 생성은 가능 (new로 생성자)
static 클래스는 외부 클래스의 인스턴스 변수를 가져다 사용 불가
익명 내부 클래스는 하나의 인터페이스나 abstract 클래스 생성시 사용
지역 메서드 안에 선언된 변수는 모두 상수가 됨