[JAVA] Effective Java - 2. 점층적 생성자, 자바 빈즈, 빌더 패턴
매개변수가 많다면 빌더를 고려하라 매개변수의 수가 많으면 기존 정적 팩터리 메서드와 생성자 모두 대응이 어려움. 이때, 기존 대응 방법과 한계를 먼저 설명. 1. 점층적 생성자 패턴 class Order { private String first; // 필수 private String second; // 필수 private String third; // 선택 private String fourth; // 선택 public Order() { } public Order(String first, String second) { this(first, second, null, null); } public Order(String first, String second, String third) { this(first, ..
[JAVA] JVM 구조와 동작 2 (Runtime Data Area, Garbage Collector)
Runtime Data Area JVM의 메모리 영역으로 크게 Method Area, Heap Area, Stack Area, PC Register, Native Method Stack 5개의 영역으로 나뉜다. Method Area 클래스의 이름, 타입, 멤버변수, 접근제어자, 메소드 이름, 파라미터 타입, 리턴타입 등 클래스 레벨의 정보들이 저장된다. 이 영역에는 Runtime Constant Pool이라는 별도의 관리 영역이 존재하는데, 이 공간은 상수 자료형을 저장해 참조하고 중복을 막는 역할을 한다. -> 모든 Thread가 공유하는 영역 Stack Area 런타임 중 Method 호출시 각 생성되어 사용되는 영역, 지역변수, 파라미터, 리턴값 등의 정보가 저장된다. Method 종료시 해당 St..