본문 바로가기


Java

[Java] Java 와 JVM

1.JAVA


활용 : 웹, 모바일 애플리케이션 개발, 로봇, 게임 등

 

특징

1. 플랫폼 독립적

(*플랫폼 : 소프트웨어 응용 프로그램들을 돌리는데 쓰는 하드웨어와 소프트웨어의 결합, 소프트웨어를 실행할 수 있는 기반 => 독립적이라는 말은 플랫폼에 비의존적 이라는 말로서 어느 플랫폼이든 다 동작할 수 있다.)

자바컴파일러는 바이트 코드라는 특수한 바이너리 형태로 변환

이때 이 바이트코드를 실행하기 위해 필요한 것이 JVM(Java Virtual Machine : 자바 가상 머신)

2. 객체 지향 언어

3. 대체로 쉽다

4. 유형정의가 시스템에 무관하기 때문에 이식성이 좋음.


2.JVM(자바 가상 머신)

 

자바 바이트코드를 실행하는 주체

독립 적인 Java언어를 다른 플랫폼(다른 CPU혹은 OS)에서도 실행시킬 수 있도록 한다.

 

특징

1.스택 기반의 가상머신

2.포인터를 지원하시만 C와 같이 주소값 임의 조정이 불가능

3.가비지 컬렉션 사용

(*가비지 컬렉션(쓰레기수집) : 메모리 관리 기법중에 하나로 프로그램이 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능)

4.Java를 실행시킬 OS에 맞는 JVM이 필요

 

JDK와 JRE

JDK : Java Development Kit

자바 개발을 위한 키트 자바 컴파일러(Javac), 자바가상머신(JVM), 각종 Java Libary , JRE 등을 포함 자바 개발시 꼭 필요

JRE : Java Run Environment

Java 파일 실행을 위한 환경이며 개발이 아닌 자바파일의 실행만을 원한다면 JRE만 설치하면 됨