본문 바로가기

Plo Hanghae99

항해 99 2주차 회고(1) JDK!

출처 : 출처:  https://choicode.tistory.com/17  [드럼치는 코린이의 개발 공간]


 - Java Develoment Kit -

개발자들이 jav로 프로그램을 만들 수 있도록

다양한 기능을 제공하는 java개발 kit이다.

 

- Java Compiler -

.java file을 작성 후 Compile 하게되면

JavaC

.java 파일 -> .class 파일(JavaByteCode)로 변환시켜준다.

 

- Java Runtime Enviroment-

자바 런타임 환경 (JRE)는

자바 클래스 라이브러리 , JVM , 자바 클래스 로더 등을 가지고 있으며

JavaC가 변환한 .class파일을 JVM에게 전달

원할하게 작동할 수 있도록 환경을 구성해준다.

 

- J V M -

Java Byte Code를 다양한 OS에 맞게 해석해주는 역할을한다.

JavaByteCode는 기계어가 아니기 때문에 OS에서 바로 실행되지 못하고

바이트코드를 실행하는 시점에서 JVM이 OS 맞는 ByteCode로 변환을 시켜준다.

초기에는 Interpreter방식으로 위와 같이 JVM의 변환 과정을 거쳤기 때문에

c언어 , c++ 등의 네이티브 언어보다 속도가 많이 느려졌다.

후의 JVM은 느려지는 속도를 극복하기 JustInTimeCompile 방식을 도입

Interpreter형식으로 변환을 진행하다. 코드가 일정 길이 이상이 되면

JIT형식으로 코드를 변환한다.

 

-Garbage Collector-

java로 프로그래밍을 할 때

객체에 값을 할당하고 그 값을 활용해 프로그램을 만들어낸다.

객체에 할당된 값들은 메모리의 Heap이라고 불리는 영역에 저장된다.

메모리에 할당된 값들을 지워주지 않는다면 메모리 공간을 효율적으로 사용할 수 없게된다.

GC는 주기적으로 사용하지 않는 객체를 청소하는 기능을한다.