-
[CS/JAVA] Java의 특징 / JVM의 역할 / JVM의 클래스CS/Java 2024. 10. 29. 21:55반응형
• Java의 특징을 설명해주세요.
- 자바는 객체 지향 프로그래밍 언어입니다.
- 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화 / 상속 / 다형성이 잘 적용된 언어입니다.
- 장점
⸰ JVM(자바 가상 머신) 위에서 동작하기 때문에 운영체제에 독립적입니다.
⸰ 가비지컬렉터를 통한 자동적인 메모리 관리가 가능합니다.
- 단점
⸰ JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느립니다.
⸰ 다중 상속이나 타입에 엄격하며 제약이 많습니다.
• JVM의 역할에 대해 설명해주세요.
JVM은 스택 기반으로 동작하며, 자바 바이트 코드를 운영체제에 맞게 해석해주는 역할을 하고, 가비지 컬렉터를 통해 자동적인 메모리 관리를 해줍니다.
• JVM의 클래스는 언제 로딩되는지 설명해주세요.
JVM은 Lazy Loading 메커니즘을 사용하여 클래스가 실제로 필요할 때 메모리에 로드합니다. 이를 통해 메모리 사용을 효율적으로 관리합니다.
➀ static변수와 메서드
인스턴스화 하지 않아도 사용가능하며, 접근 시 클래스가 로드됩니다.
➁ inner클래스와 static inner클래스
- inner 클래스 : outer 클래스와 함께 로드됩니다.
- static inner 클래스 : outer 클래스 없이 독립적으로 로드 가능합니다.
➂ static final키워드의 상수
컴파일 시점에 값이 확정 되기 때문에(JVM의 Method Area의 Constant Pool에 따로 저장되어 관리) , 클래스 로딩없이도 사용 가능합니다.
➃ final키워드의 상수
런타임 시점에 초기화되며, 클래스 로드가 반드시 필요합니다. 인스턴스 변수일 경우 Heap, 지역 변수일 경우 Stack에 저장되며 객체 생성 시 초기화됩니다.
• JVM의 클래스는 언제 초기화 되는지 설명해주세요.
- 클래스 초기화 시점
- 클래스의 인스턴스 생성
- 클래스의 정적 메소드 호출
- 클래스의 정적 변수 값 할당 및 사용
- 클래스 인스턴스 초기화 순서
➀ 정적 변수 초기화
➁ 정적 블록 실행
➂ 인스턴스 생성
➃ 생성자 실행
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/153
신입 개발자 기술면접 질문 정리 - 자바
💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
dev-coco.tistory.com
review 1회독 2회독 3회독 4회독 5회독 date ✅(1/20) ✅(1/22) ✅(1/23) ✅(1/25) ✅(2/10) 반응형'CS > Java' 카테고리의 다른 글
[CS/JAVA] 가비지 컬렉션 / 객체지향 설계의 원칙 (0) 2024.11.26 [CS/JAVA] 추상 클래스 / 인터페이스 / 싱글톤 패턴 (0) 2024.11.24 [CS/JAVA] 객체지향 프로그래밍 / try-with-resources / 불변 객체 / 참조 타입 / final (0) 2024.11.24 [CS/JAVA] Java의 컴파일 과정 / Java의 원시 타입 / 오버라이딩 vs 오버로딩 (0) 2024.11.22 [JAVA] Class / Constructor / 객체지향프로그래밍 (0) 2024.06.15