memostack
article thumbnail
JVM 메모리 (Runtime Data Area)
Language/JAVA 2021. 3. 7. 01:36

Runtime Data Area JVM 메모리를 뜻함 Runtime Data Area는 5개 영역으로 나눠짐 Method Area, Heap, Stack, PC Register, Native Method Area Method Area와 Heap은 모든 스레드가 공유하는 공간 Stack, PC Register, Native Method Area는 각각의 스레드가 하나씩 가지는 공간 Method Area (메소드 영역) class data와 static 변수가 저장되는 공간 모든 스레드(Thread)가 공유하는 공간 JVM이 실행될때 생성됨 Heap (힙 영역) new 를 통해 동적으로 생성되는 객체가 저장되는 공간 (또는 배열) Heap에 저장된 데이터는 메모리 관리가 필요한 GC 대상 만약 참조하지 않는..

article thumbnail
JVM과 JVM 아키텍처 (Class Loader, Runtime Data Area, Execution Engine)
Language/JAVA 2021. 3. 7. 00:51

JVM Java Virtual Machine의 약자. Java 프로그램이 플랫폼에 의존하지 않고, 어디서든 동작 가능하도록 하기 위한 Java 가상 머신이다. 단, Java 프로그램은 JVM 위에서 동작하기 때문에, JVM에 의존성을 가짐 C/C++ 언어는 CPU 아키텍처, 운영체제 등 플랫폼 환경에 의존성을 가지기 때문에, 플랫폼이 바뀌면 제대로 동작하지 않는 문제가 있음 (크로스 컴파일을 통해, 타겟 플랫폼에 맞춰서 컴파일을 해줘야 함) Java의 경우 이러한 문제를 해결하기 위해 JVM을 만들었음 JVM 아키텍처 JVM은 아래와 같이 크게 Class Loader, Runtime Data Area(JVM 메모리), Execution Engine 으로 나눠짐 Class Loader Java 바이트 코드..