equals(), hashCode()
- 객체의 동등성을 비교하는 데 사용되는 메소드들
- equals()는 두 객체의 내용이 같은지 비교하고, hashCode()는 객체의 해시 코드 값을 반환
- 이 두 메소드는 함께 오버라이드되어야 하며, 컬렉션에서 객체를 효율적으로 저장하고 검색하는 데 중요
Generics
- 컴파일 시점에 타입 안정성을 제공하는 기능
- 클래스나 메소드에서 사용할 데이터 타입을 파라미터화할 수 있게 함
- 코드 재사용성을 높이고 런타임 오류를 줄이는 데 도움을 줌
Upper Bounded, Lower Bounded Wildcards
- 제네릭 프로그래밍에서 타입 파라미터의 범위를 제한하는 기능
- Upper Bounded: 특정 타입이나 그 하위 타입만 허용 (예: <? extends T>)
- Lower Bounded: 특정 타입이나 그 상위 타입만 허용 (예: <? super T>)
Collections
- Java에서 객체들의 그룹을 다루기 위한 프레임워크
- List, Set, Queue, Map 등 다양한 인터페이스와 구현 클래스를 제공
- 데이터의 저장, 검색, 조작을 위한 표준화된 방법을 제공함
ArrayList, Vector, LinkedList
- List 인터페이스를 구현한 클래스들로, 순서가 있는 데이터 집합을 다룸
- ArrayList: 동적 배열 기반, 빠른 랜덤 접근이 가능
- Vector: ArrayList와 유사하지만 동기화되어 있어 스레드 안전
- LinkedList: 이중 연결 리스트 구조, 삽입과 삭제가 빠름
Iterator, Enumeration
- 컬렉션의 요소를 순회하기 위한 인터페이스
- Iterator: 모든 컬렉션에서 사용 가능하며, 요소 제거 기능 제공
- Enumeration: Vector, Hashtable과 같은 레거시 클래스에서 주로 사용되는 구식 인터페이스
HashMap, HashTable
- Map 인터페이스를 구현한 클래스들로, 키-값 쌍으로 데이터를 저장
- HashMap: 동기화되지 않아 빠르며, null 키와 값 허용
- HashTable: 동기화되어 스레드 안전하지만 상대적으로 느리며, null을 허용하지 않음
Properties
- HashTable의 하위 클래스로, 문자열 키와 값만을 가짐
- 주로 애플리케이션의 설정 정보를 저장하고 로드하는 데 사용
- 파일로부터 속성을 쉽게 로드하고 저장할 수 있는 메소드 제공