Java String은 왜 불변인가
String 불변성의 설계 근거부터 String Pool의 메모리 구조, StringBuilder의 성능 원리, 그리고 실전 패턴의 공통 철학까지, Java 문자열의 모든 결정을 추적한다.
총 14편 · 순서대로 읽기를 권장
String 불변성의 설계 근거부터 String Pool의 메모리 구조, StringBuilder의 성능 원리, 그리고 실전 패턴의 공통 철학까지, Java 문자열의 모든 결정을 추적한다.
int와 double의 한계부터 Wrapper 클래스의 박싱 함정, BigDecimal의 정확성 보장까지, Java 수 타입 계층이 만들어진 이유를 추적한다.
배열의 메모리 구조부터 정렬·검색·복사·변환·다차원 배열까지, Arrays 클래스의 설계 철학과 실전 함정을 추적한다.
컴파일 타임 타입 안전성의 근본 원리부터 Type Erasure의 설계 결정, PECS 원칙까지 — Java Generics의 통일된 철학을 추적한다.
타입 안전성의 출발점부터 전략 패턴·상태 머신·싱글톤까지, Enum이 하나의 설계 언어로 기능하는 방식을 추적한다.
예외 계층 구조의 출발점부터 커스텀 예외 설계, Exception 체인, 그리고 실무 안티패턴까지, Java 예외 처리의 전체 그림을 추적한다.
List의 순서 보장부터 Map의 해시·정렬 설계, Queue와 Stack의 단방향·양방향 구조까지, 16개 챕터를 관통하는 컬렉션 설계 철학을 추적한다.
Supplier부터 커스텀 함수형 인터페이스까지, Java 람다 생태계의 공통 철학인 '타입으로 표현된 함수'를 추적한다.
50줄 보일러플레이트를 1줄로 줄이는 Record부터, 완전성을 컴파일 타임에 강제하는 Sealed Class까지, Modern Java가 공유하는 하나의 철학을 추적한다.
Comparator의 체이닝부터 Stream 파이프라인, Optional의 null 추방, 정규표현식의 패턴 추상화까지 — Java util 패키지가 반복하는 하나의 설계 언어를 추적한다.
가변 객체와 스레드 불안전이라는 레거시 API의 근본 결함부터 불변성·타입 안정성·시간대 분리라는 java.time의 설계 철학까지, 날짜/시간 처리의 전환점을 추적한다.
File 클래스의 경로 표현부터 바이트/문자 스트림 분리, 객체 직렬화까지 — Java IO 계층의 설계 결정을 추적한다.
런타임 클래스 조작의 원리부터 Dynamic Proxy, Annotation 처리, 성능 최적화까지 — Spring·JPA가 Reflection 위에서 동작하는 방식을 추적한다.
Thread 생명주기부터 Virtual Thread까지, Java 동시성 API 7개 챕터를 관통하는 설계 철학과 핵심 트레이드오프를 추적한다.