Static

DEV_HOYA·2023년 10월 16일
0

CS

목록 보기
7/55
post-thumbnail

📌 Static


⭐ 개념

  • 클래스의 변수, 메서드 등을 공유하는데 사용
  • Garbage Collector 관여 x
  • 프로그램이 시작되면 메모리의 static 영역에 적재되고, 프로그램이 종료될 때 해제
  • 객체 생성 없이 사용할 수 있다

💡 단점

  • static키워드로 선언된 변수, 블록, 메서드 등은 선언과 동시에 힙영역이 아닌 데이터 영역에 할당이 되며, 프로그램 종료까지 GC(Garbage Collector)에 의해 메모리가 회수되지 않아 클래스가 객체로 사용되지 않는다면 메모리 낭비를 일으킨다.

⭐ 코드

class Number{
    static int num = 0; //클래스 필드
    int num2 = 0; //인스턴스 필드
}

public class Main {
    public static void main(String[] args) {
    	Number number1 = new Number();
    	Number number2 = new Number();
    	number1.num++;
    	number1.num2++;
    	System.out.println(number2.num);
    	System.out.println(number2.num2);
    }
}
/*
1
0
*/

0개의 댓글