• 임포트

    • 와일드 카드 임포트 x
    • static 임포트 x
  • 클래스

    • 소스파일마다 각자의 최상위 클래스 존재
  • 괄호

    • 괄호는 if, else, for, do, while 구문에 쓰이는데 몸체가 없거나 한 줄의 구문에도 괄호가 쓰인다.

    • if (어쩌고) {

           저쩌고;
      

      }

    	// 허용
      void doNothing() {}
    
      // 마찬가지로 허용
      void doNothingElse() {
      }
    	
    	// 허용되지 않음: 멀티 블럭 구문에서는 간결한 빈 블럭을 사용할 수 없음
      try {
        doSomething();
      } catch (Exception e) {}
    
  • 변수

    • 변수 초기화는 하나의 변수만 초기화

      int a, b; ← (x)

  • 패키지 이름

    • 패키지명은 전부 소문자로 단순히 서로 붙여서 연속된 단어로 이루어져 있다. (언더스코어 없음) 예를들어 com.example.deepspace같은 형식이다. com.example.deepSpace혹은 com.example.deep_space 는 잘못되었다.)
  • 클래스 이름

    • UpperCamelCase
    • 클래스 이름은 전형적으로 명사나 명사 구이다. 예를들어, Character 혹은 ImmutableList 처럼 말이다.
    • 인터페이스의 이름은 명사나 명사구가 될 수 있다. 예를들어 List. 그러나 가끔은 형용사나 형용사구가 대신 쓰이기도 한다 (예를들어 Readable)
    • 테스트 클래스들은 테스트하려는 클래스의 이름이 앞에오고 끝에 Test를 붙여준다. 예를들어 HashTest 혹은 HashIntegrationTest
  • 함수 이름

    • lowerCamelCase
    • 함수 이름은 전형적으로 동사 혹은 동사 구이다. 예를들어, sendMessage 나 stop이다.
    • 언더스코어는 JUnit 테스트에서 논리적 컴포넌트를 분리시키기 위해 각각을 lowerCamelCase로 변경시켜 나올수 있다. 하나의 전형적인 패턴은_ 이다. 예를들어 pop_emptyStack. 테스트 메소드를 작성하는 하나의 정확한 방법은 없다.****
  • 상수 이름

    • 상수는 CONSTANT_CASE를 사용한다: 모두 대문자이고 각 단어는 하나의 언더스코어로 구분하는 형식.
    • 상수 : static final 필드 인데 그것은 변경될 수 없고 그것들의 메소드는 부작용이 보여서는 안된다. 이것은 원시타입, 문자열 그리고 불변 타입, 불변타입의 불변 컬렉션을 포함한다. 만약 어떤 인스턴스의 상태가 바뀐다면 그것은 상수가아니다.
  • 상수가 아닌 필드 이름

    • 상수가 아닌 필드 이름은 (static 같은) lowerCamelCase로 작성한다.
    • 이러한 이름들은 전형적으로 명사나 명사구이다. 예를들어, computedValues 혹은 index.
  • 파라미터 이름

    • lowerCamelCase
    • public 메서드에서 한개의 문자를 가진 파라미터는 피해야 한다.