Java 에서 static를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제된다는 것을 의미한다.
즉 객체(인스턴스)에 소속된 멤버가 아니라 클래스 자체에 고정된 멤버이다.
static은 클래스 호출, 객체 생성을 따로 하지 않고 바로 사용할 수 있어 사용성이 좋다.
잘 변하지 않는 변수나 메서드를 사용할 때 주로 사용한다.
그러나 static는 메모리를 할당해놓고 사용하는 것이기 때문에 너무 많이 사용하면 프로그램이 무거워진다.
static - 주로 클래스들이 할당
- 모든 객체가 메모리를 공유
heap - 주로 객체들이 할당
- 메모리를 공유하지 않음
일반적으로 우리가 만든 class는 static영역에 생성되고, new연산을 통해 생성한 객체는 Heap영역에 생성된다.
static선언이 되어있는 메서드는 객체(new)를 생성하지 않아도 접근이 가능하다.
public class Java {
public static void helloWorld() {
System.out.println( "Hello World" );
}
public static void main(String[] args) {
helloWorld(); //메서드 호출
}
}
static선언이 되어있지 않은 메서드는 객체를 생성 후 메서드를 호출해야 한다.
public class Javava {
public void helloWorld() {
System.out.println( "Hello World" );
}
public static void main(String[] args) {
// helloWorld(); //메서드 호출 에러; 메인 메서드는 static 메서드만 호출할 수 있기 때문에
Javava js = new Javava(); //객체 생성 후 메서드 호출
js.helloWorld();
}
}
'JAVA' 카테고리의 다른 글
JAVA 상속과 생성자 상속 (0) | 2022.07.15 |
---|---|
JAVA 생성자 (0) | 2022.07.15 |