본문 바로가기

Programing/JVM(Java, Kotlin)

[Java] 자바버전 별 주요특징

이미 많은 사람들이 잘 정리를 해서 바퀴의 재 발명을 할 필요가 없다고 생각한다.

가끔 면접을 보러 가면 버전별 특징을 물어보는 경우가 있어서 굵직한 변화와 추가 사항은 상식적으로 알아두면 좋을 것 같아서 정리해둔다.

링크들

자바 코드의 주석

Java 런타임 (rt.jar)에는 @SupportedSourceVersion 라는 이름의 애너테이션이 있다.

용도는 소스가 지원하는 버전 정도로 해석이 가능한데, 인자로 SourceVersion이라는 열거형(enum)을 넣을 수 있다.

바로 이 SourceVersion 의 주석에 주요 특징이 적혀있다.

public enum SourceVersion {
    /*
     * Summary of language evolution
     * 1.1: nested classes
     * 1.2: strictfp
     * 1.3: no changes
     * 1.4: assert
     * 1.5: annotations, generics, autoboxing, var-args...
     * 1.6: no changes
     * 1.7: diamond syntax, try-with-resources, etc.
     * 1.8: lambda expressions and default methods
     *   9: modules, small cleanups to 1.7 and 1.8 changes
     *  10: local-variable type inference (var)
     *  11: to be determined changes
     */

JDK 11이라서 11까지 밖에 안적혀 있는데 12를 설치해보면 뭔가가 보일 테다.

음,, 아직 TBD 이다;;;;

javax.lang.model.SourceVersion