[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