본문 바로가기

Language/Java2

다형성 다형적 참조와 오버라이딩다형적 참조: 상위 타입의 참조 변수가 하위 타입의 인스턴스를 참조하는 형태Pet Pet = new Dog(); ⛔️ 상위 타입의 참조 변수는 하위 타입의 메서드를 직접 호출할 수 없다Pet pet = new Dog();pet.dogMethod(); // 호출 불가​컴파일러는 Pet 타입의 상위 타입에 대해서만 활용 가능한 메서드/변수를 탐색한다+ 다운캐스팅다운캐스팅을 통해 상위 타입을 하위 타입으로 변경하여 하위 타입의 메서드로 접근이 가능하다Pet pet = new Dog();Dog dog = (Dog) pet;dog.dogMethod();// 일시적 다운캐스팅: 타입을 바꾸는 것이 아닌 일시적으로 다운캐스팅 한다((Dog)pet).dogMethod();// 다운캐스팅 불가능:.. 2025. 11. 16.
Java의 메모리 구조와 static Java의 메모리 구조: Java Application은 JVM 위에서 실행되며, JVM은 메모리 영역을 크게 5가지로 나눈다JVM?: Java 바이트코드 파일을 실행시키는 주체이자 Java 프로그램을 실행하는 가상 머신이후 더 자세하게 다뤄 볼 예정이다메모리 영역저장되는 데이터특징메서드 영역클래스 정보, 필드 정보, 메서드 정보, static 변수모든 JVM 스레드가 공유하며 JVM의 시작부터 종료까지 유지된다힙 영역new 키워드로 생성된 인스턴스, 배열모든 JVM 스레드가 공유하며 대부분 크고 긴 수명을 가져 GC의 주 대상이 된다스택 영역메서드 호출 정보, 지역 변수, 매개 변수스레드마다 개별적으로 생성 및 관리되며, 메소드 호출 시 생성되고 메소드 종료 시 제거된다PC 레지스터현재 수행 중인 JV.. 2025. 11. 12.