본문 바로가기
Java & 스프링/Java

Java의 특징과 JVM, JDK, JRE

by hjhello423 2019. 4. 18.

 

자바(JAVA)의 역사

자바는 과거 Oak라는 언어에서 시작된 언어이다.

제임스 고슬링과 동료들이 가전제품에 탑재될 소프트웨어를 만드는 목적으로 고안되었다.

C++의 장점을 수용하고 단점을 보안한 언어를 개발하게 되었는데 1996년에 정식 버전을 발표하였다.

 


자바(Java)의 특징

1. 운영체제에 독립적

자바는 JVM(JAVA Virtual Machine)을 이용하여 OS에 독립적인 특징을 가지고 있다.

자바로 작성된 프로그램은 JVM이 이해할 수 있도록 컴파일되어 실행된다.

JVM은 OS에 종속적이지만 자바언어로 개발된 프로그램은 JVM위에서 동작하기 때문에 OS에 독립적인 특징을 지닌다.

 

2. OOP언어(객체지향 언어)이다

OOP(Object-Oriented-Programming) 언어로써 객체 지향의 대표적 특징인 '상속', '캡슐화', '다형성'의 특징을 가진다.

 

3. 가비지 컬렉터(garbage collector)의 자동 메모리 관리

자바로 작성된 프로그램은 가비지 컬렉터에 의해서 자동적으로 메모리를 관리한다.

 

4. 동적 로딩(Dynamic Loading)

자바는 동적 로딩을 지원하여 필요한 시점에 클래스를 로딩하여 사용할 수 있다.

 

5. 유니코드 문자 체계

자바는 기본적으로 유니코드 문자 체계를 사용한다.

 


JVM(Java Virtual Machine)

java virtual machine의 약자로 자바를 실행하기 위한 가상 머신이다.

자바 바이트코드를 실행할 수 있는 주체로서 자바로 작성된 프로그램은 모두 JVM에서만 실행된다.

자바 소스로부터 만들어지는 바이너리 파일(.class)을 실행할 수 있다.

 

JVM이 자바 언어가 OS에 독립적인 특징을 지닐 수 있게 해 주지만 JVM은 OS에 종속적인 특징을 지닌다.

자바가 지향하는 'Wirte onece, run anywhere"를 가능하게 해 준다.

 


JRE(Java Runtime Enviroment)

Java Runtime Enviroment의 약자이다.

런타임 환경을 제공하며 JVM 이 자바 프로그램을 실행할 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다. JRE는 JVM의 실행환경을 구현했다고 할 수 있다.

JRE = JVM + Java AIP

 



JDK(Java Development Kit)

Java Development Kit의 약자로 자바 프로그램을 개발하는데 필요한 모듈을 모아놓은 소프트웨어 패키지이다.

JRE(Java Runtime Enviroment), Java 바이트코드 컴파일러, Java 디버거, JVM, Java API 등이 포함되어 있다.

썬 마이크로시스템에서 배포하는 Java SE와 오픈소스인 OpenJDK 등이 있다.

JDK는 아래의 2가지 주요 실행파일을 가지고 있다.

1. java.exe : 자바 인터프리터로써 컴파일러가 생성한 바이트 코드를 해석하고 실행한다.

2. javac.exe : 자바 컴파일러로써 자바 소스코드를 바이트 코드로 컴파일한다.

 

JDK = JRE + 개발에 필요한 실행파일(javac.exe 등)

 

반응형

댓글