jvm

JVM 가상머신, JVM 구조 JAVA와 OS 사이에서 중개자 역할을 수행하여 JAVA가 OS에 구애받지 않고 재사용을 가능하게 해준다. 메모리 관리, Garbage collection을 수행한다. 실행과정 JVM은 OS로부터 프로그램이 필요로 하는 메모리를 할당 받는다. (메모리를 여러 영역으로 나누어 관리) 자바 컴파일러(javac)가 자바 소스코드(.java)를 바이트코드(.class)로 변환시킨다. Class Loader를 통해 class 파일들을 JVM으로 로딩한다. 로딩된 클래스는 Runtime Data Area에 배치됟나. Execution Engine이 class 파일들을 해석(interpret)한다. 해석된 바이트코드는 Runtime Data Areas에 배치되어 실질적인 수행이 이루어지..
컴파일 컴파일러는 맨 처음 문법에 맞게 프로그램을 작성했는지, 적합한 타입을 사용했는지 등의 규칙을 확인한다. 컴파일 결과로 .class 확장자를 가진 파일인 바이트코드가 생성되는데, 실행파일과 유사한 바이너리 형식이며 JVM용이다. 클래스 로딩 클래스 정의의 바이트코드를 실행 중인 JVM의 메모리로 가져오는걸 클래스 로딩이라고 한다. JVM은 .class 바이너리 파일을 가져와서 메모리에 저장할 수 있는 클래스 로더가 있다. 검증 일단 클래스가 로드되면 JVM은 바이트코드가 유효한지 검증한다. 바이트코드 검증을 포함한 일부 검증들은 자신의 클래스 바이트가 있는 메모리 외부로 메모리 위치를 확장하지 않는지 확인하고, 코드 상의 명령어가 완벽한지 확인한다. 해석 코드가 검증되면 JVM은 코드가 실행되는 아..
자바 가상머신(JVM)은 프로그램이 실행되는 플랫폼이다. 각각의 운영체제와 아키텍쳐용으로 만들어져 있고, 운영체제와 애플리케이션 사이에 위치하면서 플랫폼에 상관없이 독립적으로 실행될 수 있도록 만들어 준다. javac를 이용해 .java파일을 바이트코드(bytecode)로 컴파일 할 수 있다. 이 바이트코드는 JVM에서 명령어들을 아키텍처와 운영체제용으로 해석한다. 메모리는 어떻게 할당하는가? new 키워드는 자바 힙(heap) 영역에 메모리를 할당한다. 객체를 할당할 때 메모리가 충분하지 않으면 JVM은 가비지 켈럭션(Garbage Collection)을 이용해 힙에서 메모리를 재사용하려고 시도한다. 충분한 메모리가 존재하지 않는다면 OutOfMemoryError가 발생하여 JVM이 종료된다. 힙은 제..
JVM 메모리 구조 참조 2018/06/29 - [프로그래밍 노트/JAVA] - [JAVA] JVM 메모리구조 2020/12/19 - [프로그래밍 노트/JAVA] - [JAVA] JVM 가상머신 메모리 구조 2021/01/22 - [프로그래밍 노트/JAVA] - [JAVA] 가비지 컬렉터(GarabageCollector,GC) 애플리케이션을 실행하다가, outOfMemoryError 가 발생하였다면 우리는 JVM의 메모리 설정을 다시해 줄 필요가 있다. java.lang.OutOfMemoryError : Java heap space Heap size의 부족으로 Java Object를 Heap에 할당하지 못한 경우 발생하는 에러 java.lang.OutOfMemoryError : PermGen space ..
일반프로그램 : OS에서 실행 (Program OS Hardware)Java 프로그램 : JVM에서 실행(JVM은 OS에 종속적) (Java Program JVM OS Hardware) JVM이란?Java Virtual MachineJava와 OS 사이에서 중계자 역할Java Program이 OS에 구애받지 않고 실행될 수 있게 해줌메모리 관리 기능(Garbage Collection) JVM 메모리 구조Java Source : 사용자가 작성한 Java 코드(.java) Java Compiler : Java 코드를 Byte Code(.calss)로 변환시켜주는 기능을 함Class Loader : Class 파일을 메모리(Runtime Data Area)에 적재시켜주는 기능을 함Byte Code(.class..
깡냉쓰
'jvm' 태그의 글 목록