조슈아 블로크 님의 "Effective Java" 책을 정리한 포스팅 입니다. 1. 매개변수가 유효한지 검사하라메서드 몸체가 실행되기 전에 오류 검출하기 Null Checkjava.util.Objects.requireNonNull유연하고 사용하기 편함입력을 그대로 반환 Assertprivate static void sort(long[] a, int offset, int length) { assert a != null; assert offset >= 0 && offset = 0 && length 인자의 값 유효성 체크 2. 적시에 방어적 복사본을 만들라자바는 불변식을 지켜주는 언어메모리 충돌 오류버퍼 오버런, 배열 오버런, 와일드 포인터 프로그래밍 방식클라이언트가 불변식을 깨뜨리려 한다 가정하..