The Java Language Specification, 3rd Edition