본문 바로가기
Programming/JAVA

static 변수와 static 메소드

by 추천캐릭터 2022. 10. 30.
728x90

자바에서는 static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다.

 static의 메모리

 

static의 메모리

일반적으로 우리가 만든 Class는 static 영역에 생성되고, new 연산을 통해 생성된 객체는 Heap영역에 생성된다. 객체의 생성시 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받는다. 하지만 static 키워드를 통해 static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 static을 자주 사용하면 프로그램의 종료시 까지 메모리에 할당된 채로 존재하게 된다.

static 변수 특징

  • static 변수는 클래스 변수다.
  • 객체를 생성하지 않고도 static 자원에 접근이 가능하다.

static 변수와 static 메소드는 static 메모리 영역에 존재하므로 객체의 생성 없이 바로 접근(사용)할 수 있다.

public class Calculator {
    public static String calName = "myBoard";

    public static int add(int x, int y) {
        return x + y;
    }

    public int min(int x, int y) {
        return x - y;
    }
}


Calculator.add(5, 1);//  static 메소드 이므로 객체 생성 없이 사용 가능
Calculator.min(5, 1);   //  static 메소드가 아니므로 객체 생성후에 사용가능

Calculator cal = new Calculator();
cal.add(5, 1);  // o 가능은 하지만 권장하지 않는 방법
cal.min(5, 1);  // o

https://mangkyu.tistory.com/47?category=872426 

 

[Java] static변수와 static 메소드

1. Static 정리 Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필

mangkyu.tistory.com

 

728x90

댓글