728x90

자바의 하위 호환성

자바는 이전 버전이 상위 버전의 JVM에서 동작이 보장되지만

상위 버전의 기능을 하위 버전의 JVM에서 컴파일 할 수는 없다.

 

즉, 8버전의 기능을 17버전에서 구동할 수는 있어도

17버전에만 있는 기능을 8버전에서 구동할 수는 없다.

 

JDK 1.1

  • Inner Class
  • JavaBeans (자바로 작성된 소프트웨어 컴포넌트)
  • Remote Method Invocation (분산 애플리케이션 구축 시 사용되며 java.rmi 패키지에 제공된다)
  • Reflection

 

J2SE 1.2

  • Swing GUI
  • JIT
  • Collection Framework

 

J2SE 1.3

  • Hotspot JVM
  • Java Naming and Directory Interface (데이터 및 객체를 발견하고 참고하기 위해 사용)
  • Java Platform Debugger Architecture
  • JavaSound (오디오 재생 지원)

 

J2SE 1.4

  • assert (단언문)
  • 정규표현식
  • IPv6
  • Non-Blocking IO (nio)
  • XML API
  • JCE
  • JSSE
  • JAAS
  • Java Web Start

 

J2SE 5

  • Generics
  • Annotation
  • Concurrency API
  • Enumeration
  • Auto Boxing / Unboxing
  • 가변 길이 파라미터
  • Static import
  • java.util.Scanner

 

Java SE 6

  • 가비지 컬렉터 G1 GC를 테스트용으로만 사용하도록 추가
  • Scripting Language 지원
  • JDBC 4.0

 

Java SE 7

  • Diamond Oeprator <>
  • try 문에 선언된 자원들을 자동으로 관리
  • Switch 문에서 String 사용 가능해짐
  • Dynamic Language 지원
  • 이진수 리터럴, 숫자 리터럴에 _ 지원

 

Java SE 8 (LTS)

  • 람다 표현식
  • 메서드 참조
  • 인터페이스에 디폴트 메서드 구현 가능
  • Optional
  • Clock, ZoneId, LocalDate 등과 같은 날짜 API 추가
  • 스트림 API
  • Heap 영역의 PermGen 영역 제거

 

Java SE 9

  • Jigsaw (런타임의 모듈화 지원, 애플리케이션의 경량화, 성능 향상, 유지보수 용이)
  • java.net.http 패키지 추가
  • JShell (테스트 프로젝트나 main 메서드 없이 신속한 테스트를 가능하게 대화식 REPL 도구 제공)
  • <> 연산자를 익명 클래스에서도 사용 가능해짐
  • try-with-resources 개선
  • 인터페이스에서 Private 메서드 지원
  • Optional의 스트림 지원

 

Java SE 10

  • var 키워드로 지역 변수 타입 추론 가능
  • 병렬 처리 GC
  • 개별 쓰레드로 분리된 Stop-The-World

 

Java SE 11

  • HTTP 클라이언트 API를 정식으로 포함
  • String 클래스에 신규 메서드 추가
  • 람다의 파라미터로 타입 추론 사용 가능

 

Java SE 12

  • Switch 문의 문법 확장
  • GC 개선
  • 성능 개선

 

Java SE 13

  • yield 예약어 추가
  • Text-Block

 

Java SE 14

  • instanceof의 패턴 매칭
  • record 추가

 

Java SE 15

  • Sealed 클래스 추가 (상속 가능한 클래스를 지정할 수 있는 봉인 클래스)

 

Java SE 16

  • Unix 도메인 소켓에 연결 가능해짐

 

Java SE 17

  • Random Generator (예측하기 어려운 난수 생성 API)

'Java > Notion' 카테고리의 다른 글

JVM Warm Up  (0) 2024.03.04
Garbage Collection 파헤치기  (0) 2024.03.03
JVM 뜯어보기 (컴파일, 인터프리팅, JIT, GC, 메모리)  (0) 2024.03.02
자바의 컴파일 과정  (0) 2023.10.25
BigInteger  (0) 2023.05.08

+ Recent posts