Java 면접 질문 모음(1)

참고 링크

자바 기초 - 개발 환경

[JAVA] 자바 프로그램 실행 과정 및 기본 구조

인프런 - 더 자바, 코드를 조작하는 다양한 방법

Naver D2 - Java Garbage Collection

f-lab - 자바 백엔드 기술 면접 대비하기 - 1편

f-lab - 자바 백엔드 기술 면접 대비하기 - 2편 (고급편)

HotSpot JVM optimizations



📌 Java 구조, JVM

IMG_B167E3C90164-1 IMG_6E7C313D815F-1

❓ JVM, JRE, JDK에 대해 설명해주세요.

IMG_9769BFA1EE41-1

JVM(Java Virtual Machine); 자바 가상 머신

❓❓ ‘플랫폼 종속적’이라는 키워드를 설명해주세요.

JRE(Java Runtime Environment); 자바 실행 환경

JDK(Java Development Kit); 자바 개발 키트


❓ JVM의 구조에 대해 설명해주세요.

JVM

[Class Loader]

Loading

Initialization

[Execution Engine]

[Runtime Data Areas]

Stack Area

PC Register

Native Method Stack

Heap Area

Method Area(Static Area)

[Native Method Interface; JNI(Java Native Interface)]

cf.) Effective Java Item.66: 네이티브 메서드는 신중히 사용하라

[Native Method Library]


❓ JVM의 구조와 함께 Java의 실행방식을 설명해주세요.


❓ 바이트 코드(byte code)란 무엇인가요?


❓ Java 성능에 대한 이슈와 관련지어 JIT에 대해 설명해주세요.

❓❓ AOT 컴파일은 무엇일까요?

❓❓ C1 컴파일러와 C2 컴파일러는 무엇이고 역할이 어떻게 다를까요?

❓❓ 컴파일 과정에서 컴파일러가 최적화해주는 것들은 무엇이 있을까요?


❓ GC가 무엇이고 필요한 이유와 동작 방식에 대해 설명해주세요.

❓❓ 개발자가 메모리에 대해 신경을 덜 쓸 수 있어서 편해지는데, 그에 따른 단점은 없을까요?


GC의 물리적 공간 구분

IMG_69E9CC5F4128-1

Young Generation 영역

Old Generation 영역


❓❓ 개발자가 GC 튜닝을 하는 궁극적인 목표는 무엇일까요?

❓❓❓ G1GC부터는 GC튜닝에 크게 손이 가진 않는데, G1GC는 어떻게 만들었길래 개발자가 튜닝을 이전보다 덜 해도 되는걸까요?




📌 Object 클래스 - equals(), hashCode()

❓ 자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object클래스에는 equals() 와 hashCode() 라는 메소드가 선언되어 있습니다. 이 메소드들은 각각 어떤 역할일까요? 이 둘의 차이점은 무엇일까요?

* 참고 - 잘못 답변할 수 있는 케이스


❓ String은 왜 문자열이 일치하면 == 연산의 결과값이 true로 나올까요?

  String object = new String("literal");
  String literal = "literal";
  System.out.println(literal == object); //false
  System.out.println(literal.equals(object)); //true
  String object = new String("literal");
  String literal = "literal";
  String intern = object.intern();

  System.out.println(literal == object); //false
  System.out.println(literal.equals(object)); //true
  System.out.println(literal == intern); //true
  System.out.println(literal.equals(intern)); //true

equals()hashCode()를 함께 override 해줘야 하는 이유는 무엇인가요?