자바의 등장
자바가 등장하기 전 프로그램은 운영체제(플랫폼)에 종속적이었다. 사용자들은 각기 다른 운영체제를 사용했기에 개발자는 각 운영체제에 맞춰 프로그램을 빌드하고 운영체제가 지원하지 않는 코드가 있다면 코드를 다시 짜야했다. 이런 상황속에서 운영체제에 독립적인 프로그램을 만들 수 있는 언어인 자바가 등장했다.
자바의 특징
- 운영체제에 독립적
JVM을 통해 자바 응용프로그램은 운영체제에 독립적으로 실행된다. 자바 이전의 언어인 C/C++로 만들어진 실행 파일이(.exe)나 목적 파일(.obj)은 운영체제에 종속적이다. - 객체지향언어
- Garbage collector를 통한 자동 메모리 관리
- 멀티쓰레드 지원
- 동적 로딩 (Dynamic Loading) 지원
JVM
Java Virtual Machine의 약자로 클래스 파일을 입력으로 받아 운영체제에 맞춰 자바 바이트 코드를 실행하는 프로그램이다. 자바 소스 코드를 컴파일하면 C와 C++ 처럼 실행 파일로 컴파일 되는 것이 아닌 클래스 파일(.class)로 변환 된다. 클래스 파일을 자바 바이트 코드로 구성된다. 그 후 java 명령어로 JVM을 실행시켜면 JVM이 classpath에 있는 클래스 파일의 바이트 코드를 운영체제에 맞춰 실행한다. 결국 하나의 JVM이 하나의 자바 프로그램이 된다. JVM을 통한 프로그램 실행은 운영체제에 독립적이라는 장점이 있지만 런타임 시 자바 바이트 코드를 기계어로 해석하는 과정이 필요하기에 동작 속도가 느려진다는 단점이 있다.
JRE
Java Runtime Environment의 약자로 자바 실행 환경이다. JRE를 설치하면 자바 프로그램을 실행할 수 있다. JRE는 크게 JVM, Java Class Libraries, Java Class Loader로 구성된다. Java Class Libraries는 자바의 필수 라이브러리이다. java.io, java.util, java.thread 등의 필수 라이브러리가 들어 있다. Java Class Loader는 필요한 클래스를 JVM 위에 올려주는 역할을 수행한다.
JDK
Java Development Kit의 약자로 자바 개발 도구이다. JDK를 설치하면 자바 프로그램을 개발할 수 있다. JDK는 JRE + 개발 도구(javac, java, jdb ···)로 구성된다. javac는 자바 소스 코드(.java)를 자바 바이트 코드(.class)로 컴파일시키는 도구이며 java는 javac로 컴파일된 클래스 파일(.class)을 실행시키는 도구이다. 이외에도 여러 개발 도구가 있다.
Java 버전
자바는 언어이지만 동시에 JVM으로 프로그램을 동작시키는 플랫폼이다. 자바는 JVM과 자바 API로 구성된다.
자바는 Java Standard Edition 이라는 명칭으로 새로운 버전을 발표하고 해당 버전의 JDK와 JRE를 배포한다. 2014년 Java Standard Edtion 8.0 (JAVA SE 8)이 발표되었으며 2017년 Java Standard Edition 9이 발표 된 후 계속해서 새 버전이 발표되고 있다. 자바 버전을 말할때 jdk 버전으로 말하기도 하는데 java 8(JAVA SE 8)이나 jdk 1.8이나 같은 자바 버전을 말한다.
'Java > Basic' 카테고리의 다른 글
Java 람다식 (0) | 2023.04.05 |
---|---|
Java 익명 클래스 (0) | 2023.04.04 |
Regex (0) | 2023.01.23 |
[JVM - 2] ClassLoader (0) | 2022.10.25 |
Java 정렬 (0) | 2022.09.07 |