정적 변수와 컴페니언 객체

일반적인 클래스의 객체 생성 없이 정적 변수나 메서드를 사용하면 프로그램 실행 시 메모리를 고정적으로 가지게 되어 인스턴스화가 필요없이 사용할 수 있다. 독립적으로 값을 가지고 있기 때문에 어떻나 객체라도 동일한 참조값을 가지고 있어 해당 클래스의 상태에 상관없이 접근할 수 있다. 따라서 모든 객체에 의해 공유되는 효과를 가진다.

동적 : 프로그램이 실행 중인 상태에서 만들어지는 -> 동적 메모리 공간(Heap)

정적 : 전역적인(static) -> 메모리 공간

보통 클래스는 동적으로 객체를 생성, 정적으로 고정하는 방법은? -> Companion object

싱글톤이란? : 오직 하나의 값만 허용하는 객체. → Person객체를 여러개 생성해도 내부 동반 객체는 오직 한개로 유지

⁉️ Companion object 는 자바에서의 static 이다.

참고 : 알기쉬운 Singleton Pattern

@JvmStatic (자바와 협업시)