The Java language specification - Gosling, James (Addison-Wesley, 1996)