Java

[Java] 자바 static 사용법 (static이란, 사용법, main 메서드에 static이 쓰이는 이유)

권락현 2022. 2. 10. 22:28


1. static이란?

  • static은 정적이다 또는 고정되다는 의미
  • static이 붙은 것은 정적 멤버라고 칭한다
  • 객체가 아닌 클래스에 고정되어 있는 멤버이다
  • 클래스가 로딩이 될 때 따로 인스턴스를 생성해주지 않아도 메모리에 올라간다
  • 프로그램이 종료될 때까지 메모리에 할당되어 있어서 어디서든 공유하여 참조할 수 있다 -> 그래서 static을 너무 많이 사용하면 시스템 성능 문제가 발생할 수도 있다.
  • 인스턴스 생성 없이도 사용할 수 있다

 

 

*메인 메서드가 static인 이유*

public static void main(String[] args)
이렇게 메인 함수에 static이 붙는 이유도 객체 선언 없이 바로 메모리에 올려준다는 의미이다.
(바로 실행이 될 수 있도록)

 

 

2. 사용법

  • 다른 객체들에 공용으로 사용하는 멤버에 붙여주면 된다.
//공용으로 사용할 변수
//변수값도 공유한다는 의미
static int n = 0; 

//공용으로 사용할 메서드
public static void function(){}

 

 

3. 예시

public static void print1(){
	System.out.println("static 메서드");
}

public void print2(){
	System.out.println("static이 아닌 메서드");
}

public class Main {

    public static void main(String[] args) {
    	print(); //정상적으로 호출
    	print2(); //에러남
    }
}