전체 글80 다형성과 캐스팅 다형적 참조public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); } }public class Child extends Parent { public void childMethod() { System.out.println("Child.childMethod"); } } public class PolyMain { public static void main(String[] args) { Parent poly = new Child(); // 다형적 참조 poly.parentMethod(); }}부모 타.. 2024. 12. 30. 상속 상속관계public class Child extends Parents { ...}상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해주는 기능상속을 사용하려면 extends 키워드를 사용상속의 대상은 오직 하나부모 클래스(슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스(서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스상속과 메모리 구조객체 생성 시 ElectricCar 뿐만 아니라 상속 관계에 있는 Car까지 함께 포함해서 인스턴스를 생성참조값은 x001로 하나이지만 실제로 그 안에서는 Car, ElectricCar라는 두가지 클래스 정보가 공존상속 관계를 사용하면 부모의 필드와.. 2024. 12. 12. static 멤버 변수(필드)의 종류public class TempData { public String name; // 인스턴스 변수 public static int count; // 클래스 변수 = static 변수 = 정적 변수}인스턴스 변수 : static이 붙지 않은 멤버 변수 static이 붙지 않은 멤버 변수는 인스턴스를 생성해야 사용 가능인스턴스 변수는 인스턴스를 만들 때 마다 새로 만들어짐클래스 변수 : static이 붙은 멤버 변수클래스 변수, 정적 변수, static 변수등으로 부름static이 붙은 멤버 변수는 인스턴스와 무관하게 클래스에 바로 접근하여 사용 가능인스턴스 영역에 생성되지 않으며 메서드 영역에서 관리클래스 변수는 자바 프로그램을 시작할 때 딱 1개만 생성인스턴스와는.. 2024. 12. 8. 메모리 구조 자바 메모리 구조메서드 영역 : 프로그램을 실행하는데 필요한 공통 데이터를 관리. 이 영역은 프로그램의 모든 영역에서 공유클래스 정보 : 클래스의 실행 코드, 필드, 메서드, 생성자 등 모든 실행 코드가 존재static 영역 : static 변수들을 보관런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관메서드는 공통된 코드를 공유하므로 객체 생성 시 메서드에 대한 새로운 메모리 할당은 없음스택 영역 : 자바 실행 시 하나의 실행 스택이 생성. 각 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보 등을 포함스택 프레임 : 스택 영역에 쌓이는 네모 박스가 하나의 스택 프레임각 쓰레드별로 하나의 실행 스택이 생성힙 영역 : 객체(인스턴스)와 배열이 생성되는 영역. 가바지 컬렉.. 2024. 12. 8. Exception 예외 계층Object : 예외도 객체. 모든 객체의 최상위 부모는 Object이므로 예외의 최상위 부모도 ObjectThrowable : 최상위 예외Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외개발자는 이 예외를 잡으려고 해서는 안됨상위 예외를 catch로 잡으면 그 하위 예외까지 함께 잡음애플리케이션 로직에서는 Throwable 예외를 잡으면 Error 예외도 함께 잡을 수 있기 때문에 해당 예외를 잡으면 안됨언체크 예외Exception : 체크 예외애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외Exception과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외단 RuntimeException은 예외RuntimeException : 언.. 2024. 11. 27. 예약 리스트 조회 API 최적화 엔티티를 DTO로 변환@GetMapping("/api/v2/reserves")public List reserveV2(){ List reserves = reserveRepository.findAllByString(new ReserveSearch()); List collect = reserves.stream() .map(r -> new ReserveDto(r)) .collect(Collectors.toList()); return collect;}...@Datastatic class ReserveDto{ private Long reserveId; private String name; private LocalDateTime reserveDa.. 2024. 11. 3. 이전 1 2 3 4 5 6 7 8 ··· 14 다음