Static 변수
- 불변하는 변수에 선언
- 자바는 Static 변수에 메모리 할당을 한 번만 한다. - 메모리 사용 이점
- 공유 - 불변하기에 같은 곳의 메모리 주소만을 바라 봄. : static 변수의 값을 공유
Static 메소드
- 클래스 내부에 static 메소드를 선언하면, 객체 생성 없이 메소드를 사용할 수 있다.
- 유틸리티성 메소드 작성 시 주로 사용
- ex. 오늘 날짜 구하기, 숫자에 콤마 추가하기
Singleton pattern
- 단 하나의 객체만을 생성하도록 강제하는 패턴. 유일성 보장
- 생성자를 private로 만들면, 다른 클래스에서 new를 이용하여 생성할 수 없게 된다.
class Singleton{
private static Singleton one;
private Singleton() {
}
public static Singleton getInstance() {
if (one==null) {
one = new Singleton();
}
return one;
}
}
public class test {
public static void main(String[] args) throws IOException {
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton1);
System.out.println(singleton2);
System.out.println(singleton1 == singleton2); // true
}
}