클래스명.static변수 ex) Student.idpublic static void staticMethod(){
System.out.println("정적메서드");
}
public static void main(String[] args) {
Student.staticMethod();
}
메인내부의 메서드를 접근하기 위해서는 스태틱메서드로 정의해야한다.
메모리를 절약하는 방법 패턴
편의 기능 모음 클래스의 경우는 객체를 여러개 생성할 필요 X → 메서드나, 변수, 상수를 static으로 정의한 경우가많다.
처음부터 공간 할당, 활성화 → 사용하지 않아도 이미 메모리를 차지
싱글톤 패턴
1) 기능을 담당하는 객체는 여러개 만들 필요 없다.
2) 필요할 때만 객체를 생성하고 사용.
3) 객체는 필요할때 하나만 생성, 공유
최초호출 시 정적변수에 객체를 생성
4) 동시성 작업 : 동기화처리
1) 생성자를 외부에서 직접 호출 X : 접근제어자 private변경
2) 클래스 내부에서 정적변수(static)로 객체를 생성
3) 클래스 내부에서 생성된 객체를 반환하는 정적(static)함수 생성
4) 정적