JAVA 버전에 대하여..( JAVA 1.8 JAVA 8 ... )
JAVA 를 쓰다보면, 버전이 급격하게 다른걸 한번씩 보게 되는데
뭐지? 라고 생각은 했으나 그냥 별 생각없이 써왔었습니다.
그러다 문득 sourceCompatibility 를 설정 하다가 버전이 너무 낮은 것 같아( 1.8 )
로컬에 설치된 JAVA 버전을 확인하니 "11.0.1" !!!
음?? 너무 버전차이가 심한것 아닌가 싶어서 알아보게 되었습니다.
먼저 gradle에 sourceCompatibility 설정 값을 찾아보니, 아래와 같이 JavaVersion.class에 enum type으로 정의가 되어있습니다.
VERSION_1_1
VERSION_1_2
VERSION_1_3
VERSION_1_4
VERSION_1_5
VERSION_1_6
VERSION_1_7
VERSION_1_8
VERSION_1_9
VERSION_1_10
VERSION_11
VERSION_12
VERSION_13
VERSION_14
VERSION_15
VERSION_16
VERSION_17
그리고 wiki의 Java Version History 에는 아래와 같이 버전 명이 나와있습니다.
JDK 1.0
JDK 1.1
J2SE 1.2
J2SE 1.3
J2SE 1.4
J2SE 5.0
Java SE 6
Java SE 7
Java SE 8
Java SE 9
Java SE 10
Java SE 11
Java SE 12
Java SE 13
Java SE 14
Java SE 15
Java SE 16
Java SE 17
자바 11 부터는 버전을 11로 그냥 쓰고 있고,
그 이전에는 JAVA 8 을 버전 1.8, JAVA 9는 버전 1.9, JAVA 10은 버전 1.10 으로 사용을 한다는 것을 알수 있습니다.
정확한 이유는 모르겠지만, 개발을 하다보면 major 버전의 변경은 엄청난 변화를 의미를 하는데
JAVA 8에서 JAVA 9로의 변화가 그정도의 변경이 있는 것이 아니여서
개발자들이 내부에서 사용 하는 버전명은 1.x 형태로 계속 사용을 해왔지 않을까 하는 생각입니다.
JAVA 8 네이밍 에 대한 글을 보면, Java SE 8( Java Platform, Standard Edition 8 )은 Version Number이고,
이 버전에 대한 Version String은 1.8.0( java -version ) 이라고 되어있습니다.
그래서, 개발할 때는 Java Version을 Version String으로 사용을 하고 있다 정도로 이해를 하고 있으면 될 것 같습니다.