Development/JVM

    [Effective Java] Item 1. 정적 팩토리 메소드를 고려하라

    일반적으로 클래스의 인스턴스를 생성할 때 public 생성자를 많이 사용한다. 하지만 대부분의 primitive Type의 Boxing Class는 static factory method를 제공한다. public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; }​ 장점 인스턴스 생성 시 이름으로 의미를 부여할 수 있다 반환 타입의 하위 타입 객체를 반환할 수 있다 객체 클래스를 자유롭게 선택하는 유연성을 줌 인터페이스 기반 프레임워크로 만들어 줌 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다 단점 해당 클래스를 상속하려면 public 이나 protected 생성자가 필요하기 때문에 static fa..

    스택과 힙 메모리, 그리고 멀티 스레드

    JVM Memory는 스택과 힙 영역으로 구분된다. 이들은 어떻게 다르고 멀티 스레드에서는 어떻게 동작하는걸까? Context 코틀린 프로그래밍에서 클래스의 인스턴스를 생성할 때 비용이 발생한다. 인스턴스를 생성하고 더 이상 사용하지 않을 경우 가비지 콜렉션 과정을 통해 메모리에서 해제하는 과정 또한 비용이 발생한다.따라서 인스턴스를 매번 생성할 필요가 없는 경우 매번 인스턴스를 생성하지 않는 것이 성능 측면에서 더 유리하다. 이 때문에 개발자는 요청마다 매번 인스턴스를 생성해야 하는지, 생성하지 않고 이미 생성된 인스턴스를 재사용할 것인지를 판단해야 한다. 이에 대한 기준은 인스턴스가 상태 값을 유지해야 하는지에 따라 구분된다. 송금 관리 시스템 예를 들어 은행 송금 시스템의 경우엔 송금을 관리하는 하..