본문 바로가기

Java 메모리

(2)
Java 메모리 - (2) JVM JVM(Java Virtual Machine) JVM을 이해하기 위해서는 JVM, JRE, JDK, Java를 구분해서 알아야 할 필요가 있습니다. JVM (Java Virtual Machine) Java Byte Code를 OS에 맞게 해석해주는 역할을 합니다. Java Compiler는 .java 파일을 .class 라는 Java Byte Code로 변환시켜 줍니다. Byte Code는 기계어가 아니기 때문에 OS에서 바로 실행되지 않습니다. 이때, JVM은 OS가 Byte Code를 이해할 수 있도록 해석해줍니다. 이러한 JVM의 해석을 거치기 때문에 C언어 같은 네이티브 언어에 비해 속도가 느렸지만, JIT(Just In Time) 컴파일러를 구현해 이점을 극복했습니다. 따라서, Byte Code..
Java 메모리 - (1) Java 메모리 구조 Java 메모리 구조 Java 애플리케이션을 개발할 때, 메모리를 잘 아는 것은 중요합니다. 메모리에 어떻게 코드가 적재되는지 이해해야 코드를 최적화할 수 있고 코드 에러를 피할 수 있습니다. 메모리 관리가 잘 되지 않는 프로그램은 서비스 속도 저하에서부터 심하게는 서버 불능 상태에 이르기도 합니다. 한정된 자원에서 효율적으로 메모리를 사용하여 성능 향상도 가능합니다. Method Area(Static Area) JVM이 구동될 때 생성되며 모든 스레드가 공유하는 영역 JVM 구동 중 사용될 클래스 파일을 읽고 클래스 별로 runtime constant pool(런타임 상수 풀), field data(필드 데이터), method data(메서드 데이터), constructor(생성자) 등을 저장 필드 정..