The Java TM programming language - Arnold, Ken (Addison-Wesley, 2006)