본문 바로가기
반응형

28

JAVA의 4가지 기술 "Write Once Run Anywhere!" (한번 쓰고 어느 곳에서도 실행) 이것은 자바의 가장 큰 특징이며, 그들이 만들고자한 목적이 담긴 슬로건이다. 이를 위해 필요한 기술은 크게 4가지이다. Java Programming Language Java Class File Format Java API JVM(Java Virtual Machine) 자바 프로그램을 만들기 위해 Java Programming Language를 사용하여 .java라는 파일이 생성한다. 이 파일은 단순히 소스코드만 갖고 있기 때문에 프로그램 실행을 위한 Compile과정을 거쳐 Class파일로 변환시킨다. (Java Compiler) 변환된 Java Class File Format을 실행시키기 위해 JVM(Java Virtu.. 2022. 8. 30.
JVM(Java Virtual Machine)의 정의와 특징, 구조 정의 Java기반의 프로그램들을 실행환경에 구별하지 않고 모든 것들을 실행시키는 역할 특징 플랫폼에 독립적 GC(Garbage Collection) : C에서 malloc(), free()통해 메모리를 수동적으로 관리했지만, Java에서는 자동으로 메모리를 관리 Stack기반의 가상머신 - JVM 구조 - 구성 Java Compiler에 의해 .java파일은 Byte Code인 .class파일로 변환 Class Loader는 JVM에서 실행할 클래스 파일의 내부 구조를 분석 Excution Engine은 클래스 로더를 통해 JVM내의 Runtime Data Area에 배치된 Byte code들을 명령어 단위로 실행 -클래스로드가 끝난 후 JVM은 main 메소드를 찾아 지역변수, 객체변수, 참조변수를 스.. 2022. 8. 30.
네이티브 메소드 스택(Native Method Stack) 동작 방식 Native Method Stack : Native Method를 호출하는 코드를 수행하기 위한 스택. * (자바가 아닌 언어에서 제공되는 메소드,C,C++) Java Stack과 Native stack이 나뉘어져 있다 하더라도 Java Code를 수행하다 JNI(Java Naming Interface)를 호출하게 되면 Java Stack에서 Native Stack으로 dynamic linking을 통해 확장할 뿐이다. 실제 메모리 예제 public class MemoryExam{ public static void main(String[] args) { int sum, multi; int x, y; x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1].. 2022. 8. 30.
(~JDK1.7)Heap 메모리 구조와 특징, (JDK1.8)변화된 Heap 구조(Meta Space) Heap 구조 Eden 객체들이 최초로 생성되는 공간입니다. Survivor Eden에서 참조되는 객체들이 저장되는 공간입니다. *object의 age는 살아남은 횟수를 의미. minor GC 때 garbage가 되어 사라지지 않고 survivor area로 이동한 횟수를 의미한다. age를 object header에 기록. 32번째 promotion이 일어난다. Object Layout 때문에 object header 중 첫 번째에 age를 기록하는 부분이 있고, 6bit로 되어있다. 이 수치는 32개밖에 표현하지 못한다. 그렇기 때문에 0부터 카운트를 시작하는 age는 31까지만 기록이 가능한 것이다. Old Eden 과 Survivor에서 마저 지워지지 않고, 살아남은 객체들이 저장되는 공간입니다... 2022. 8. 30.
반응형