자바 플랫폼은 명명 규칙이 잘 정립되어 있으며 그중 많은 것이 자바 언어 명세에 기술되어 있다. 명명 규칙은 크게 철저와 문법, 두 범주로 나뉜다.
철자 규칙은 패키지, 클래스, 인터페이스 등 변수의 이름을 다룬다. 이 규칙은 특별한 이유가 없는 한 반드시 따라야 한다. 이규칙을 어긴 API는 사용하기 어렵고, 유지보수하기 어렵다.
패키지와 모듈 이름은 각 요소를 점(.)으로 구분하여 계층적으로 짓는다.
클래스와 인터페이스의 이름은 하나 이상의 단어로 이뤄지며, 각 단어는 대문자로 시작한다(List, FutherTask 등). 여러 단어의 첫 글자만 딴 약자나 max, min 처럼 널리 통용 되는 줄임말을 제외하고는 단어를 줄여 쓰지 않도록 한다.
메서드와 필드 이름은 첫 글자를 소문자로 쓴다는 점만 빼면 클래스 명명 규칙과 같다. 첫 단어가 약자라면 단어 전체가 소문자여야 한다.
단 ‘상수 필드’는 예외다. 상수 필드를 구성하는 단어는 모두 대문자로 쓰며 단어 사이는 밑줄로 구분한다(VALUES, NEGATIVE_INFINITY 등) 상수 필드는 값이 불변인 static final 필드를 말한다.
지역변수에도 비슷한 명명 규칙이 사용된다. 단, 약어를 써도 좋다. 약어를 써도 그 변수가 사용되는 문맥에서 의미를 쉽게 유추할 수 있기 때문이다.(i, denom, houseNum)
타입 매개변수 이름은 보통 한 문자로 표현된다.
객체를 생성할 수 있는 클래스의 이름은 보통 단수 명사나 명사구를 사용한다(Thread, PriorityQueue, ChessPiece) 객체를 생성할 수 없는 클래스의 이름은 보통 복수형 명사로 짓는다(Collections 등). 인터페이스 이름은 클래스와 똑같이 짓거나, able 혹은 ible로 끝나는 형용사로 짓는다.
어떤 동작을 수행하는 메서드의 이름은 동사나 동사구로 짓는다(append, drawImage)
객체의 타입을 바꿔서, 다른 타입의 또 다른 객체를 반환하는 인스턴스 메서드의 이름은 보통 toType형태로 짓는다(toString, toArray 등). 객체의 값을 기본 타입 값으로 반환하는 메서드의 이름은 보통 typeValue 형태로 짓는다(intValue 등)
표준 명명 규칙을 체화하여 자연스럽게 베어 나오도록 하자.