본문 바로가기

컴퓨터공학/Java

CS> Static의 의미는 무엇인가?

객체지향 프로그램인 자바는 프로그램을 구동하기 위해서 객체를 필요할 때마다 메모리에 올려서 사용해야 한다.

static은 프로그램에 의한 객체 생성 이전에 JVM에 의해서 클래스가 로딩되는 처음 순간에 자동으로 메모리에 올라오게 된다.

특징은 다음과 같다

객체 생성 이전에 접근한다.

클래스 레벨에서 접근한다.

객체 인스턴스와 연관되어 있지 않다.

객체 생성 이전에 이미 로딩된 메모리라서 객체 영역으로 접근 불가능.

 

static keyword는

variable, method, static initializer, static block, nested class(내부 클래스)에서 선언이 가능하지만

주로 변수와 메소드에서 사용되어서 변수와 메서드 위주로 대답하면 된다. 

 

Static variables

객체 생성 이전에 클래스 이름으로 접근한다. 

각각 객체 레벨에서 접근하는 게 아니라 클래스로 접근해서 어느곳에서나 접근해도 같은 값을 가진다.

global variables 

 

Static method

메소드를 부르기 위해서 객체 생성을 하고 레퍼런스로 부를 필요없다.

스태틱 메소드의 사용 용도는 크게 두 가지

첫 번째는 주로 프로그래밍 로딩되면서 실행해야하는 경우이다. 예를 들면 스타팅포인트인 메인 메소드

 public static void main(String[] args)

두 번째는 자주 사용하는 메소드를 스태틱으로 설정하는 경우가 있다.

Math.round()

 

 

정리

클래스가 로드될 때 시작되는 메모리 영역이다. 

객체 생성 이전에 클래스 레벨로 접근 가능하다

static variables, static methods로 사용된다.