The Java Language Specification by James Gosling, Bill Joy & Guy Steele