상속한 클래스가 다른 클래스의 속성과 메소드를 획득하는 과정정보를 계층적 순서로 관리할 수 있음코드 재사용성을 높이는 핵심 메커니즘용어 정리부모 클래스 : 상속되는 클래스 (super 클래스, 기본 클래스)자식 클래스 : 상속받는 클래스 (sub 클래스, 파생 클래스) 상속의 필요성🔹 코드 재사용성기능을 한 번 정의하면 다른 클래스에서 쉽게 사용중복 코드 감소🔹 확장성기존 클래스 기능을 자식 클래스에서 확장기본 기능은 유지하면서 새 기능 추가🔹 메소드 오버라이딩 구현다형성의 핵심 개념 중 하나인 메소드 오버라이딩 구현부모 메소드 재정의를 통한 특화된 동작 구현🔹 추상화 달성객체 지향의 추상화 개념 구현에 필요공통 특성을 상위 클래스로 일반화 상속 구현 방법// 부모 클래스class Super ..
다형성객체가 여러 형태로 참조될 수 있는 능력하나의 객체를 여러 타입의 참조 변수로 참조 가능“많은 형태를 가진다”는 의미객체지향 프로그래밍의 중요한 특성유연하고 확장성 있는 코드 설계 가능코드 재사용성과 유지보수성 향상public interface Vegetarian{} // 채식 객체public class Animal{} // 동물 객체public class Deer extends Animal implements Vegetarian{} // 사슴 객체Deer d= new Deer(); // 사슴으로서의 사슴Animal a = d; // 동물로서의 사슴Vegetarian v =d; // 채식동물로서의 사슴Object o =d; // 객체로서의 사슴사슴 객체는 다양한 형태로 ..
public interface Map { interface Entry { K getKey(); V getValue(); V setValue(V value); boolean equals(Object o); int hashCode(); // ... }}Map.Entry는 Map 내부에서 key-value 쌍을 나타내는 인터페이스Map은 단순히 key와 value의 매핑 구조이므로 하나의 단위로 다루기 위한 구조체가 Entry정렬된 Map (TreeMap), 변경 가능한 Map 탐색에서 자주 사용됨 주요 메서드K getKey()key 반환 V getValue()value 반환 V setValue(V value)value 변경..
컬렉션 프레임워크객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 놓은 java.util 패키지 컬렉션(collection)데이터를 한곳에 모아 저장 및 관리하는 가변 크기의 오브젝트 컨테이너 오브젝트를 여러 개 저장할 때배열을 사용하는 경우→모든 원소의 위치 조정 필요연결 리스트를 사용하는 경우→링크만 재조정 하면 됨 컬렉션 프레임워크 특징고성능연결 리스트, 트리, 해쉬 맵 등의 자료구조를 고성능으로 최적화편의성개발자가 자료구조를 구현할 필요 없음인터페이스와 메서드만 잘 익히면 됨범용성제네릭을 이용해 다양한 오브젝트와 호환되도록 구현 컬렉션 프레임워크 구조인터페이스와 클래스로 구성인터페이스: 제네릭으로 여러 타입과 호환되게 구성클래스: 인터페이스를 구현한 클래스..
JDK (Java Development Kit)JRE + 컴파일러(javac) + 개발 도구(javadoc, jshell 등)Java 소프트웨어를 개발하기 위한 도구 JRE (Java Runtime Environment)JVM + 라이브러리 + 제한된 도구개발 오버헤드 없이 실행환경만 제공Java 실행환경 구성과 Java 애플리케이션을 실행할 수 있도록 구성,JRE만 있으면 어느 프로그램이든 실행가능(이식성)컴파일해 생성된 클래스 파일을 JRE에 클래스 로더에서 로드하고, 필수 라이브러리를 결합해 JVM에 올리는 역할 JVM (Java Virtual Machine)애플리케이션 실행 환경스레드 생성, 실행, 스케줄링 담당스레드 간 상호작용 관리동기화 메커니즘 제공자바 가상 머신(Java Virtual Ma..