패키지 이름은 소문자로 구성한다.
package com.navercorp.apiGateway //BAD
package com.navercorp.apigateway //GOOD
클래스, 인터페이스 이름은 대문자 카멜표기법을 적용한다.
public class Accesstoken //BAD
public class AccessToken //GOOD
메소드, 변수 이름은 소문자 카멜표기법을 적용한다
private int AccessToken //BAD
private int accessToken //GOOD
상수는 대문자와 언더 스코어로 구성한다.
public final int UNLIMITED = -1
public final String POSTAL_CODE_EXPRESSION = “POST”
//GOOD
클래스 이름은 명사 구조로 한다.
UserService, LoginController
//GOOD
메소드는 동사 + 명사 구조로 한다.
getUser(), changeType()
//GOOD
인터페이스 이름은 명사 또는 형용사 사용한다.
축약하지 않는다.
getUD(x) //BAD
getUserData(o) //GOOD
임시 변수 외에는 한 글자 변수를 금지한다.
HtmlParser p = new HtmlParser() //BAD
HtmlParser parser = new HtmlParser() //GOOD
클래스를 import 할 때는 와일드카드(*)없이 모든 클래스명을 다 쓴다.
import java.util.* //BAD
import java.util.List //GOOD
클래스/메서드/멤버변수의 제한자는 Java Language Specification에서 명시한 아래 순서다.
public, protected, private, abstract, static, final
( [Java Language Specification - Chapter 18. Syntax](<http://docs.oracle.com/javase/specs/jls/se7/html/jls-18.html>) 참조)
한 줄에 한 문장만
int base, weight;
int base = 0; int weight = 2;
//BAD
int base;
int weight;
int base = 0;
int weight = 2;
//GOOD
배열에서 대괄호는 타입 뒤에 선언 (변수명 뒤에 선언 금지)
int a[] //BAD
int[] a //GOOD