Code Conventions for the Java Programming Language
1 – Introduction
1.1 Why Have Code Conventions
Code conventions are important to programmers for a number of reasons:
80% of the lifetime cost of a piece of software goes to maintenance.
Hardly any software is maintained for its whole life by the original author.
Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly.
If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create.
This document reflects the Java language coding standards presented in the Java Language Specification, from Sun Microsystems, Inc. Major contributions are from Peter King, Patrick Naughton, Mike DeMoney, Jonni Kanerva, Kathy Walrath, and Scott Hommel.
For questions concerning adaptation, modification, or redistribution of this document, please read our copyright notice.
2 – File Names
This section lists commonly used file suffixes and names.
2.1 File Suffixes
Java Software uses the following file suffixes:
File Type Suffix
Java source. java
Java bytecode. class
2.2 Common File Names
Frequently used file names include:
File Name Use
GNUmakefile The preferred name for makefiles. We use gnumake to build our software.
The preferred name for the file that summarizes the contents of a particular directory.
3 – File Organization
A file consists of sections that should be separated by blank lines and an optional comment identifying each section.
Files longer than 2000 lines are cumbersome and should be avoided.
For an example of a Java program properly formatted, see “Java Source File Example” on page 19.
3.1 Java Source Files
Each Java source file contains a single
public class or interface. When private classes and interfaces are associated with a public class, you can put them in the same source file as the public class. The public class should be the first class or interface in the file.
Java source files have the following ordering:
Beginning comments (see “Beginning Comments” on page 4)
Package and Import statements
Class and interface declarations (see “Class and Interface Declarations” on page 4)
3.1.1 Beginning Comments
All source files should begin with a c-style comment that lists the class name, version information, date, and copyright notice:
* Version information
* Copyright notice
3.1.2 Package and Import Statements
The first non-comment line of most Java source files is a package statement. After that, import statements can follow. For example:
Package java. awt;
Import java. awt. peer. CanvasPeer;
3.1.3 Class and Interface Declarations
The following table describes the parts of a class or interface declaration, in the order that they should appear. See “Java Source File Example” on page 19 for an example that includes comments.
4 – Indentation
Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces (not 4).
4.1 Line Length
Avoid lines longer than 80 characters, since they’re not handled well by many terminals and tools.
Note: Examples for use in documentation should have a shorter line length-generally no more than 70 characters.
4.2 Wrapping Lines