개발자 기술면접 꼬리물기 질문
  • Welcome
  • 01 Java
    • 01-01. Generic
    • Garbage Collection
    • 자료형과 객체 비교
    • 힙(Heap)과 메모리(Memory)
    • JDK 버전과 JRE
    • 스레드(Thread)
    • 예외(Throwable)
    • Call By Value와 Call By Reference
    • String, equals, StringBuffer
    • Thread와 비동기
  • 02 Spring
    • 02-01. Spring 동작 방식
    • @Autowired, @RequiredArgsConstructor
    • 인증(Authentication)과 인가(Authorization)
    • 트랜잭션(Transaction)
    • QueryDSL과 SQL Injection
    • SecurityContextHolder
    • @EqualsAndHashCode
  • 알고리즘과 자료구조
    • Set 자료구조
    • 정렬 알고리즘
    • 우선순위 큐 (Priority Queue)
    • DFS와 BFS
    • 힙(Heap) 자료구조
    • 스택(Stack)과 큐(Queue)
    • 암호화 알고리즘
    • LinkedList
    • 자료구조 - 해시 테이블(HashTable)
    • 자료구조 - ConcurrentHashMap
  • 데이터베이스
    • 기본
    • 인덱스 (Index)
    • 정규화 (Normalization)
    • 파티셔닝과 샤딩(Partitioning & Sharding)
    • 트랜잭션(Transaction)과 락(Lock)
    • 덤프(Dump)
    • Redis
    • 격리 수준(MySQL)
  • 네트워크
    • 전송 계층 (Transport Layer)
    • 네트워크 계층 (Network Layer)
    • Http와 Https
    • IP(Internet Protocol)
    • 프록시 서버
    • Http Protocol
    • 소켓(Socket)
    • 로드 밸런싱(Load Balancing)
  • 디자인 패턴
    • 전략 패턴 (Strategy Pattern)
    • 싱글톤 패턴 (Singleton Pattern)
    • 템플릿 메서드 패턴과 전략 패턴
    • 데코레이터 패턴 (Decorator pattern)
  • 웹
    • CORS 정책
    • 동시성 제어
    • N+1 문제
    • 웹 브라우저 동작원리
    • URI, URL, URN
    • 채팅 아키텍처 설계
  • 개발자
    • 개발 방법론 TDD
  • 운영체제
    • JIT & AOT 컴파일
    • 컨텍스트 스위칭(Context Switching)
    • 프로세스와 스레드
    • 싱글 스레드와 멀티 스레드
  • 코딩테스트
    • Stack / Queue (스택 / 큐)
    • Heap(우선 순위 큐)
    • DP(동적 계획법)
    • DFS(깊이 우선 탐색)
    • BFS(너비 우선 탐색)
    • Greedy(그리디 알고리즘)
    • 해시(Hash)
    • 투 포인터 알고리즘
    • Shortest path
    • 수학적 사고
Powered by GitBook
On this page
  • Q. 자바 JDK와 JRE의 차이점은 무엇인가요?
  • Q. JDK 1.8과 11, 17의 차이점은 무엇인가요?
  • Q. 그렇다면 JDK 21은 어떠한 점이 달라져있나요?
  1. 01 Java

JDK 버전과 JRE

Q. 자바 JDK와 JRE의 차이점은 무엇인가요?

  • JDK(Java Development Kit): 자바 애플리케이션을 개발하기 위한 도구 모음입니다. 컴파일러(javac), 디버거, 자바 API 등 개발에 필요한 모든 도구가 포함되어 있습니다. 개발자들은 JDK를 사용하여 소스 코드를 작성하고, 컴파일하고, 실행할 수 있습니다.

  • JRE(Java Runtime Environment): 자바 애플리케이션을 실행하는 데 필요한 환경입니다. JRE에는 자바 가상 머신(JVM), 자바 API, 자바 클래스 라이브러리가 포함되어 있어, JDK가 없더라도 자바 프로그램을 실행 할 수 있습니다. 즉, JRE는 JDK의 일부이며, JDK는 JRE를 포함하는 개발 도구입니다.


Q. JDK 1.8과 11, 17의 차이점은 무엇인가요?

  • JDK 1.8 (Java 8): 람다 표현식, 스트림 API, 새로운 날짜와 시간 API(java.time) 등이 도입되었습니다. 이러한 기능들은 코드의 가독성을 높이고, 함수형 프로그래밍 패러다임을 지원하여 더 간결한 코드를 작성할 수 있게 해줍니다.

  • JDK 11 (Java 11): JDK 8에서 도입된 기능의 확장을 포함하며, 여러 기능이 삭제되고 간소화되었습니다. HTTP 클라이언트 API가 표쥰으로 추가되고, 장기 지원(LTS) 버전으로 안정성과 성능 개선이 이루어졌습니다. 또한, var를 사용한 지역 변수 타입 추론도 지원됩니다.

  • JDK 17 (Java 17): JDK 11의 다음 LTS 버전으로, 새로운 기능으로는 패턴 매칭을 지원하는 instanceof, Sealed Classes, Enhanced switch 문 등이 도입되었습니다. 이러한 기능들은 코드의 안전성과 가독성을 높이는 데 도움을 줍니다.


Q. 그렇다면 JDK 21은 어떠한 점이 달라져있나요?

JDK 21은 최근의 LTS 버전으로, Record Patterns와 Pattern Matching for Switch 등 패턴 매칭 기능이 더욱 강화되었습니다. 또한 Virtual Threads(가상 스레드) 기능이 추가되어 스레드 생성과 관리를 더 효율적으로 처리할 수 있게 되었으며, 이는 비동기 프로그래밍을 더 간단하게 만듭니다. Foreign Function & Memory API(외부 함수 및 메모리 API)도 실험적으로 추가되어 자바에서 C, C++와 같은 다른 언어의 기능을 쉽게 사용할 수 있게 해줍니다.

Previous힙(Heap)과 메모리(Memory)Next스레드(Thread)

Last updated 7 months ago