Java의 메모리 구조

Ajisai·2023년 7월 18일
0

Java

목록 보기
5/17

크게 다음이 있다.

  1. Stack
  2. Heap
  3. Static
  4. Metaspace

Stack

  • 변수(primitive든 reference든)
  • 객체 자체는 Heap에 할당되고, 그 객체에 대한 참조만이 변수에 저장된다.
  • thread 별로 별도의 stack이 존재한다.
  • method 호출 시 method frame이 load된다(대충 C의 스택 프레임으로 생각하면 됨).

Heap

  • 객체

Metaspace

  • 전에는 method area라 했음
  • class, field, method에 대한 metadata
  • class를 메모리에서 unload할 때까지 존재한다.

Static

  • string literal
  • static field
  • static methods
  • static object(static class의 instance)
  • 가장 먼저 메모리에 load돼서 가장 나중에 unload됨
    -> 함부로 쓰지 말자

'static'이라는 것은

  • 변하지 않는 게 아니라 거의 안 변하지만 변할 수 있는(can) 것
profile
Java를 하고 싶었지만 JavaScript를 하게 된 사람

0개의 댓글

관련 채용 정보