CS/Java

[CS/JAVA] Java의 특징 / JVM의 역할 / JVM의 클래스

dbfl9911 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)

 

 

반응형