I've never been interested in game development, so I can't really recommend anything in particular. I've heard XNA in C# is good, and I know C# is much nicer than java as a language. I would look for online/youtube tutorials to see if XNA might be for you, then check amazon for the reviews if you insist on a book. Since you know some java already, you might be interested in making a game on android?
When you say "intermediate java", I assume you wanna learn design (eg architecture, design patterns, etc), low level stuff (byte code, phantom references, compiler magic, etc), or java frameworks/libraries. imo there's really no reason to learn more about java specifically unless you have a job lined up that uses it. groovy/scala are both superior to java and still compile to the same bytecode, though they aren't used in the corporate world as much. C#, microsoft's java clone, is also superior to java but it's built on a separate framework. These are all OOP and you can apply the same design principles to all of them. So...why do you want to learn more java?