검수요청.png검수요청.png

스태틱

위키원
rudgh01 (토론 | 기여)님의 2020년 8월 12일 (수) 17:59 판 (특징)
이동: 둘러보기, 검색

스태틱(static)은 객체 지향 프로그래밍(OOP)에서 모든 인스턴스에서 공통적으로 사용할 수 있는 클래스 변수 또는 클래스 메소드에 사용하는 제어자이다. ‘스태틱’이라고 읽는다. 영어로 static은 ‘정적인’, ‘정지 상태의’라는 뜻이다.

개요

자바에서 스태틱 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필요하다. 일반적으로 우리가 만든 클래스는 스태틱 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성된다. 객체의 생성시 할당된 Heap역역의 메모리는 가비지 컨트롤러를 통해 수시로 관리를 받는다. 하지만 스태틱 키워드를 통해 스태틱 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, 가비지 컨트롤러의 관리 영역 밖에 존재하므로 스태틱을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된 채 존재하게 된다.[1]

특징

자바에서 스태틱 변수는 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 변수로, 메모리에 한번 할당되어 여러 객체가 해당 메모리를 공유한다.

public class animel {
    private String name = "Reptiles";
    
    public void printName() {
        System.out.println(this.name);
    }
}

위와 같은 클래스로 객체를 여러개 생성할 시 Reptiles라는 메모리를 여러개 생성하게 된다. 하지만 이러한 경우에 static을 사용한다면 객체 하나의 메모리를 참조해 메모리 효율을 높일 수 있다.


각주

  1. 망나니개발자, <static변수와 static 메소드>, 《개인블로그》,2019-02-04

참고 자료

같이 보기


  검수요청.png검수요청.png 이 스태틱 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.