[자바] JAVA버전과 JDK 버전

박지운·2023년 8월 5일
0

자바 꽉 자바

목록 보기
4/12

람다와 스트림에서?

람다와 스트림을 공부해보면 자바8 이상부터라는 말을 볼 수 있다. 하지만 java버전을 보면 jre, jdk 1.8과 8 등 자바 8이 무엇을 말하는지 헷갈리는 부분들이 많아 정리한다.

먼저 JVM, JRE, JDK 부터!

  • JVM

    • java virtual machine

      자바 가상머신으로 자바 프로그램 실행환경을 만들어준다. 자바 코드를 컴파일하면 .class 바이트 코드로 만들어지는데 이를 JVM에서 실행하는 것이다. JVM은 밑에 나오는 JRE에 포함되어있다.

      따라서 운영체제에 맞는 JRE가 설치되어있다면 JVM은 설치되어있는 것이다.

      .class 파일은 바이트 코드로 기계어로 가는 단계의 중간이라고 생각하면 된다.
    • 바이트 코드를 읽는 방식
      바이트 코드를 한 줄씩 해석하는 Interpreter방식과 JIT컴파일 방식 두 가지를 혼용한다. Interpreter는 느리고 JIT는 빠른 대신 비용 소모가 있다. 따라서 JVM은 인터프리터를 사용하다가 일정 기준을 넘기면 JIT 컴파일 방식을 사용한다.

      JIT(Just In Time) 컴파일러란 바이트 코드를 실행하는 시점에 각 OS에 맞는  Native Code로 변환하여 실행 속도를 개선한다. 
      컴파일 시 해당 코드를 캐싱한다. 이후 바뀐 부분만 컴파일을 하기 때문에 성능이 좋다.
  • JRE

    • Java Runtime Environment의 약어다.
    • JVM을 동작하는데 필요한 각종 라이브러리를 담고있다.
    • 만약 단순 자바 프로그램을 실행하는 것이면 JRE만 다운받아도 된다.
  • JDK
    - Java Development Kit의 약자어다.

    • JDK = JRE + development tools
    • JRE 외에 개발을 위해 필요한 도구를 갖고 있는 것이다.
    • javac(컴파일러)와 javadocs(자바 문서 생성기) 및 jdb(자바 디버거)와 같은 도구들이 포함되어있다.

그래서 자바 8은 뭐야??

자바 몇 버전이라는 언어 규격이 있고 그 규격을 구현한 것을 JDK로 보면 편하다.
위에서 봤듯이 JDK에는 javac가 있기 때문에 JDK17이라하면 javac 버전도 자바17에 맞추어진다.

따라서 자바8을 사용하기 위해서는 JDK1.8이나 1.8 위 버전을 사용해야한다.
Java 8까지는 해당 버전에 맞는 JDK는 JDK1.8이라 부르고 JAVA 9이상은 JDK 9로 쓴다.

결국 완전히 같지는 않지만 자바 버전과 JDK의 버전을 똑같다 생각해도 좋을 것 같다.

출처:
https://coding-factory.tistory.com/827
https://highright96.tistory.com/70
https://okky.kr/questions/587890

profile
앞길막막 전과생

0개의 댓글