Java(tm) Language Specification by James Gosling, Bill Joy & Guy Steele