[자바] 정적 변수와 메소드 (static)

nayoon·2021년 6월 19일
0

computer

목록 보기
20/25

정적 변수(static 변수)

사용 이유

  • 메모리 효율
    static 키워드를 변수 앞에 붙이면 메모리 할당을 딱 한번만 하게 된다.

  • 공유
    같은 곳의 메모리 주소만을 바라보기 때문에 static 변수의 값을 공유하게 된다.

정적 메소드(static method)

사용 이유

  • 클래스를 통한 호출
    유틸리티 성 메소드를 작성할 때 사용하면 인스턴스를 생성하지 않고도 메소드를 사용할 수 있다.
    -> 단순한 값의 변화 구현 시에 사용하며, 공유 차원에서 사용한다.

static method 안에서는 인스턴스 변수 접근이 불가능하다. 오직 static 변수만 static method 안에서 접근 가능

static

  • JVM으로 소스 로딩 시 메모리를 할당 받기 때문에 new 명령어보다 먼저 실행된다.
    -> static method 안에서 인스턴스 변수 접근이 불가능했던 이유

  • 메모리에 오로지 하나만 생성되기 때문에 "클래스 변수"라고 한다.

  • 클래스명.변수명 혹은 클래스명.메소드명으로 접근한다.

  • static 변수는 초기값 0이 할당된다.

  • static 변수는 프로그램을 실행 시 최초 한번만 특정값으로 초기화되고 더 이상 초기화되지 않는다.

  • 자주 생성이 필요한 객체의 경우 static 객체 형식으로 생성하면 객체가 하나만 메모리에 생성됨으로 처리 속도를 많이 향상시킬 수 있다.

  • static 초기화 (static initializers)
    맨 처음 static을 부르는 상황에서 자동으로 초기화된다.
    단 한번만 호출된다.
static {
	// 수행문;
}

디폴트 초기화

  1. 정수형과 실수형은 0으로 초기화된다.
  2. Boolean형은 false로 초기화된다.
  3. Class형은 null로 초기화된다.

참고 사이트

  1. static 변수/ 메소드 / 초기화
  2. 07-3 정적 변수와 메소드 (static)
  3. [Java-09]객체와 클래스
  4. [Java-14]초기화와 초기화블럭(Initialize Block)
profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글