#자바 #JVM #JDK #Java SE

🔗 자바란?

1991년 썬의 엔지니어들에 의해 고안된 오크(Oak)라는 언어에서 시작되었다. Write Once Run Anywhre(WORA) 한번의 작성으로 모든 곳에서 실행 가능한 언어다. 그렇기 때문에 활용도가 높아 서버 운영, 애플리케이션 등에서 중추적인 언어로 자리매김 하고 있다.

🔗 자바특징

- 장점

  1. 자바는 운영체제와는 독립적으로 실행할 수 있다.
  2. 자바는 자동 메모리 관리 등을 지원하여 다른 언어에 비해 안정성이 높다.
  3. 자바는 연산자 오버로딩을 금지하고 제네릭을 도입함으로써 코드의 가독성을 높였다.
  4. 자바는 오픈소스 언어이기 때문에 라이브러리가 풍부하다.

- 단점

  1. 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
  2. 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.
  3. 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 길다.

🔗 자바 가상 기계 (JVM)

운영체제는 자바를 바로 실행할 수 었는데, 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의 바이트 코드이기 때문이다. 이 코드를 해석하고 실행할 수 있는 가상의 운영체제가 필요한데 그것이 JVM 이다.

- JVM구성요소

  1. 자바 인터프리터(interpreter) : 자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할
  2. 클래스 로더(class loader) : 동적으로 클래스를 로딩해주는 역할
  3. JIT 컴파일러(Just-In-Time compiler) : 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러
  4. 가비지 컬렉터(garbage collector) : 더는 사용하지 않는 메모리를 자동으로 회수

자바 개발 순서

  1. .java 소스 파일 작성
  2. 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
  3. JVM 구동 명령어(java.exe)로 실행

jvm

🔗 자바 개발 도구(JDK)

Java SE - 기본 에디션

Java SE는 JVM을 비롯해 필수적인 개발도구와 라이브러리 API를 정의한다. 자바프로그램을 개발하고 실행하기 위해서는 반드시 Java SE 구현체인 JDK를 설치해야 한다.

JDK(자바 개발 도구) : JVM, 라이브러리 API, 컴파일러

JRE(자바 실행 환경) : JVM, 라이브러리 API