inblog logo
|
chodong
    java

    009_Static, Heap

    Dec 13, 2023
    009_Static, Heap
    Contents
    Static (정적 할당)Heap (동적 할당)커스텀 변수예제

    Static (정적 할당)

    • 생명 주기가 가장 길다. (main이 종료되면 끝이 난다.)
    • 프로그램 실행과 동시에 공간을 할당하여 저장한다.
    💡
    JVM 실행 (JVM의 할당 메모리 공간이 3개의 공간으로 쪼개진다) 1. class를 찾는다. 2. static을 찾는다. (static이 있어야 메모리에 공간을 추가한다) - 특징 : main이 실행되기 전에 찾는다. 3. static class별로 나눈다.

    Heap (동적 할당)

    • 여러 번 띄우기 때문에 class로 찾을 수 없어 heap은 영역을 가르키는 변수를 선언해야한다.
    • new를 붙여서 heap 공간에 저장을 한다. (동적 할당)
    💡
    정적과 동적이 있는 이유? 메모리를 효율적으로 사용하기 위해서 이다.

    커스텀 변수

    • 다양한 자료형을 한 변수 내에 선언이 불가능할 때 사용한다.
    • int, char 등 ‘프리미티브 자료형(원시 자료형)’을 여러 개 사용이 가능하다.
    • Class를 선언하여 하나에 묶는 방법이다.

    예제

    Static 예제
    package ex04; // 커스텀 변수 class Person1{ static int age = 20; static char gender = '여'; } public class MemEx01 { public static void main(String[] args) { System.out.println(Person1.age); System.out.println(Person1.gender); } }
    Heap 예제
    package ex04; // 커스텀 변수 class Person2{ int age = 10; char gender = '남'; } public class MemEx02 { public static void main(String[] args) { System.out.println("1년 지남"); System.out.println("2년 지남"); System.out.println("3년 지남"); Person2 p = new Person2(); // new 하면 class의 내용이 heap(동적할당)에 뜬다. / 커스텀 변수이기 때문에 내가 만든 변수 이름으로 한다. System.out.println(p.age); System.out.println(p.gender); System.out.println("메인 종료"); } }
    그림 예제
    notion image
    Share article

    chodong

    RSS·Powered by Inblog