Static 2

정적 메서드(static method)

❓정적 메서드는 언제 사용할까 static 키워드에 대해 공부를 하다보니, static method를 언제 사용을 할까에 대해 의문이 들었다. 보통 유틸 관련 메서드에서 많이 사용한다. 라고 들었지만, 유틸 관련 메서드가 아닌 다른 곳에서 쓰일 일이 있을까? 라는 의문점도 같이 찾아왔다. ✅ static 메서드의 특징 및 장점 static으로 선언되어 있는 메서드 들은 해당 메서드를 사용할 때, 인스턴스 생성 없이 호출이 가능하다. JVM이 시작될 때 static 영역에 저장되어 프로그램이 끝날 때 까지 사라지지 않고 메모리에 남아있다. 속도가 빨라지고 공유(반복적인 사용)에 효율적이다. 생성자를 호출 할 필요가 없으니 속도는 당연 빨라질 수밖에 없다. static 메서드를 호출하기 위해서 필요한 것은 ..

static의 모든 것

static 변수 public calss MyClass { static int myStaticVariable = 100; int myVariable = 200; } 위의 예제로 각 변수가 생성되는 공간에 대해 설명해본다. 자바 프로그램을 시작하면 JVM이 클래스 파일을 읽어 필요한 클래스와 변수/메서드들을 메모리에 생성한다. 이후 코드에서 그 클래스의 형을 가진 오브젝트를 생성하면 각 오브젝트마다 myVariable을 저장할 메모리 공간이 Heap이라는 메모리 공간에 생기게 된다. 모든 오브젝트는 Heap이라고 부르는 메모리 공간에 생긴다. 반면 static 변수는 Heap이 아닌 다른 공간에 생긴다. 이 공간의 이름은 MetaSpace이다. 위의 그림처럼 static 변수는 클래스에 귀속되지 각각의 오..