반응형
클래스정보의 등록
Java Heap은 JVM이 관리하는 메모리, native memory는 운영체제에서 관리하는 메모리이다.
이 메모리에는 처음 프로그램이 실행될 때 클래스 정보들이 올라가게 된다.
소스 코드, 클래스 파일 자체는 정적이다.
HDD나 SSD의 경우 RAM보다 속도가 느리기때문에 매번 보조기억장치에서 이를 읽어들이는 것은 성능을 저하시킨다. 따라서 클래스 정보는 처음 사용될 때 메모리에 그 정보를 올리고 필요할 때마다 가져오는 것이다.
→ 이미 클래스에 대한 정보를 PERM 혹은 Metaspace에 올려두고, 객체가 생성될 때마다 사용하는 것이다.
Static 정보의 생성
Java 7까지는 non-heap영역, 8 이상부터는 heap에 저장한다.
클래스가 로딩될 때 한 번 메모리에 올라가 초기화된다.
객체의 생성
- new 연산자를 사용할 때마다 이미 메모리에 올라가 있는 클래스 정보를 이용해 Java heap에 인스턴스를 생성한다.
- 이후 참조 변수를 사용해 계속해서 이를 참조하는 식으로 데이터를 다루게된다: 참조 변수는 Java의 stack메모리에 생성된다.
- 인스턴스가 더이상 참조되지 않을때, GC가 메모리를 관리한다.
시리즈
참고 자료
반응형
'Programming > Java' 카테고리의 다른 글
상속 (0) | 2023.11.28 |
---|---|
패키지 | 토막글 (1) | 2023.11.28 |
Main 메서드보다 먼저 실행되는 static 블록 | 토막글 (0) | 2023.11.27 |
Static 메서드에서 인스턴스 필드를 사용할 수 없는 이유는? | 토막글 (1) | 2023.11.24 |
자바 파일의 실행과정 - 초급 (1) | 2023.11.24 |