Java 언어 명세서(JLS)

자바는 각 Vendor사 자바 표준을 준수하여 자바를 구현한 Java 프로그램이 있다.

즉, 자바는 표준 스펙과 구현으로 나누고 있다.


자바 표준 스펙에는 다음과 같이 기재되어있다.

  • 자바 컴파일러 - 스펙
  • 자바 실행 라이브러리 - 스펙
  • 자바 가상 머신(JVM)- 스펙

이 자바 표준 스펙을 보고 각 Vendor사들은 스펙을 맞추어 자바 구현을 해야한다.

  • 자바 컴파일러 - 구현
  • 자바 실행 라이브러리 - 구현
  • 자바 가상머신(JVM) - 구현

대표적으로 구현 업체들은 오라클 Open JDK, Adoptium Eclipse Temurin, Amazon Corretto 등이 있다.

참고사이트: https://whichjdk.com/ko

JLS 정리

  • 자바 표준 스펙
    • 자바는 이렇게 설계해야한다는 설계서와 문서가 있다.
    • 표준 스펙 기반으로 여러 Vendor사들이 실제 동작하는 자바를 개발한다.
    • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리한다.
  • 다양한 자바 구현
    • 회사는 자바 표준 설계에 따라 실제 동작하는 Runtime 자바 프로그램을 개발한다.
    • 자바 커뮤니티 프로세스(JCP)를 통해 버전을 맞추지만, 일부 기능들은 각 Vendor사마다 다를 수 있다. 예를들면 Amazon은 자신의 aws 서비스 위주로 최적화 되어있다.

JLS 장점

  • Vendor 자사 솔루션에 잘 동작해야만할 때, 자바 최적화가 가능하다.
  • 각 Vendor 자바 변경에 용이하다.
    • 예를 들어, 신규 요구사항으로 aws 이전하게 되어서 Amazon Corretto 자바로 옮겨야만 한다면, 자바 코드를 옮겨서 바로 실행 가능하다.