Java CS 지식백과

Java 관련 핵심 개념을 개발자 기술 면접에서 설명할 수 있도록 문서 16편으로 정리했습니다. 각 문서는 개념, 동작 원리, 시간 복잡도와 실무 선택 기준을 함께 다룹니다.

최종 업데이트 2026.09.17
  1. 오토 박싱과 오토 언박싱 (Auto Boxing and Unboxing)

    오토 박싱은 기본형 값을 래퍼 클래스 객체로, 오토 언박싱은 그 반대로 자동 변환하는 기능이다. Integer 캐시, == 비교 함정, NullPointerException 위험과 성능 비용을 JVM 메모리 관점에서 정리한다.

  2. Call by Value와 Call by Reference

    자바는 기본형이든 참조형이든 언제나 값에 의한 호출만 사용하며, 참조형은 객체가 아니라 참조값이 복사되어 전달된다. swap 실패 예제와 스택 프레임 관점으로 그 근거를 설명한다.

  3. 캐스팅 (Casting), 업캐스팅과 다운캐스팅

    캐스팅은 값이나 참조를 다른 타입으로 취급하는 변환이다. 기본형 확대와 축소 변환, 업캐스팅과 다형성, 다운캐스팅과 instanceof 패턴 매칭, ClassCastException 예방법을 다룬다.

  4. 자바 컴파일 과정 (Java Compile Process)

    javac가 소스를 바이트코드로 바꾸고 JVM이 로딩, 링킹, 초기화 후 인터프리터와 JIT로 실행하는 전체 흐름을 정리한다. 클래스 파일 구조와 부모 위임 모델, 계층형 컴파일까지 다룬다.

  5. 컴포지션과 상속 (Composition vs Inheritance)

    컴포지션은 객체를 필드로 소유하고 위임해 재사용하는 기법이고 상속은 구현을 물려받는 기법이다. 취약한 기반 클래스 문제와 is-a, has-a 판단 기준으로 컴포지션 우선 원칙을 설명한다.

  6. 문자열 인터닝 (String Interning)

    문자열 인터닝은 같은 내용의 문자열을 문자열 풀에 하나만 두고 공유하는 JVM 메커니즘이다. 리터럴과 new의 차이, intern() 동작, 상수 접기와 == 비교 함정을 코드로 확인한다.

  7. 고유 락 (Intrinsic Lock)과 synchronized

    고유 락은 모든 자바 객체가 내장한 모니터 락으로 synchronized가 이를 사용해 임계 영역을 보호한다. 재진입성, happens-before 가시성 보장, ReentrantLock과의 비교를 정리한다.

  8. Java 8 핵심 정리

    Java 8은 람다와 스트림 API로 함수형 스타일을 정착시킨 자바 최대의 전환점이다. Optional, 디폴트 메서드, java.time, 메타스페이스 도입까지 핵심 변화를 면접 관점에서 정리한다.

  9. Java 주요 버전별 변화 (9~21)

    Java 9부터 21까지 모듈 시스템, var, 레코드, sealed, 패턴 매칭, 가상 스레드로 이어지는 진화를 LTS 버전 중심으로 정리하고 세 갈래 흐름으로 읽는 법을 제시한다.

  10. 레코드 (Record)

    레코드는 불변 데이터 클래스를 한 줄로 선언하게 해 주는 자바의 특수 클래스로 Java 16에서 정식화되었다. 자동 생성 요소, 컴팩트 생성자, 제약의 이유, 패턴 매칭과의 결합을 다룬다.

  11. 직렬화 (Serialization)

    직렬화는 객체를 바이트 스트림으로 변환해 저장과 전송을 가능하게 하는 기술이다. serialVersionUID와 transient, 역직렬화 보안 취약점, JSON 등 대안 포맷과의 비교를 정리한다.

  12. 스트림 API (Stream API)

    스트림 API는 데이터 처리를 중간 연산과 최종 연산의 파이프라인으로 선언적으로 기술하는 Java 8의 추상화다. 지연 평가와 단락 연산, Collectors, 병렬 스트림의 함정을 다룬다.

  13. String, StringBuilder, StringBuffer 차이

    String은 불변 문자열이고 StringBuilder와 StringBuffer는 버퍼를 수정하는 가변 클래스다. 불변 설계의 이유, 루프 연결이 느린 원리, 동기화 유무에 따른 선택 기준을 정리한다.

  14. 자바의 스레드 (Thread)

    스레드는 프로세스 안의 실행 흐름 단위로 힙을 공유하고 스택을 독립적으로 갖는다. 생성 방법과 생명주기 여섯 상태, 동기화 문제, Java 21 가상 스레드까지 정리한다.

  15. wait, notify, notifyAll

    wait, notify, notifyAll은 Object에 정의된 스레드 협력 메서드로 고유 락과 대기 집합 위에서 동작한다. while 루프 검사가 필수인 이유와 notifyAll이 안전한 기본값인 이유를 설명한다.

  16. 자바 가상 머신 (JVM)

    JVM은 바이트코드를 로딩하고 검증한 뒤 실행하는 가상 컴퓨터로 클래스 로더, 런타임 데이터 영역, 실행 엔진으로 구성된다. 힙과 스택과 메타스페이스, JIT와 가비지 컬렉션을 정리한다.

Java를 특히 많이 묻는 직군

같은 개념이라도 직군에 따라 파고드는 각도가 다릅니다. 직군별 가이드에서 어떤 질문으로 이어지는지 확인해 보세요.

다른 CS 토픽도 이어서 보기

한 주제의 원리를 익혔다면 인접한 자료구조와 운영체제, 네트워크 개념을 함께 읽어 전체 동작을 연결해 보세요.

CS 지식백과 전체 보기