[JAVA] static과 heap
Dec 13, 2023
stack
- 정적으로 할당된 메모리 영역이다. static을 통해 할당
heap
- 동적으로 할당된 메모리 영역이다.
1. Static (Stack)
static 예제
class Person1{
static int age = 20;
static char gender = '여';
}
public class MemEx01 { // *memory 약자
public static void main(String[] args) {
System.out.println(Person1.age);
System.out.println(Person1.gender);
}
}
main이 실행되기 이전에 변수나 메서드를 메모리에 적재시킬 수 있다. (정적)
static이라는 키워드를 사용하여 stack 메모리 영역에 데이터를 할당 시킨다.
2. Heap
heap 영역을 찾을 때는 class로 찾지 못한다. 변수를 선언해야 한다.
class Person2{
int age = 10;
char gender = '남';
}
public class MemEx02 {
public static void main(String[] args) {
System.out.println("1 year later");
System.out.println("2 years later");
System.out.println("3 years later");
Person2 p2 = new Person2(); // p2 변수 선언
System.out.println(p2.age); // p2 사용
System.out.println(p2.gender);
System.out.println("메인 종료");
}
}
Share article