Java by dissection - Pohl (Addison-Wesley, 2000)