JVM

· JAVA/일반
개요 C, C++과 같은 언어는 운영체제. 즉, 실행환경에 따라 컴파일러가 그에 맞는 기계어 코드로 변환합니다. Java는 이와 같은 환경 종속성을 어느 정도 해결하기 위해 JVM, Java Virtual Machine이라는 구조를 채용했습니다. JVM은 Java를 실행하기 위한 환경을 제공해줄 뿐 아니라, GC, JIT 등과 같은 기능을 제공하고, 주기억장치를 할당받아 사용하는 역할을 맡고 있습니다. 오늘은 JVM이 주기억장치를 할당받으면 이를 어떻게 나누고 사용하는지 알아보도록 하겠습니다. JVM 메모리구조 JVM은 위와 같은 구조를 가지고 있습니다. 여기서, Java가 실행될 때 클래스, 메서드, 객체 등의 정보를 적재하는 부분은 Runtime Data Area입니다. 이러한 메모리구조는 각 Jav..
· JAVA/GC
개요 C언어와 달리, JAVA에서는 메모리를 직접 건드릴 이유가 없습니다. JAVA의 Garbage Collector가 메모리 관리를 하기 때문입니다. 다만, 메모리 주소를 사용하지 않는 것은 아닙니다. public class ReferencePrint { public static void main(String[] args) { String test = "HELLO"; System.out.println(test.hashCode()); } } 위의 코드를 실행해보면 String객체의 해싱된 주소값을 가져올 수 있습니다. 이 값은 실제 메모리 주소가 아닙니다. JAVA에서 객체의 주소는 GC가 직접 관리하고, 해당 값을 바로 출력하지 못하도록 유도하고 있습니다. 이렇게 GC는 객체가 메모리에 실리는 순간부터..
낭만주의 개발자
'JVM' 태그의 글 목록