Good Java Game Development Books

Hey guys,

I’m a good overall programmer at the moment and I’m really into game development.
After making some fun games, I really want to learn some good core things of game development.
This got me to the idea to get a book. And with such a book I don’t really mean how you can move your character on screen and that kind of basic stuff.
I need a book where I can learn proper algorithms like A*, Binary Search Trees, Good game loops etc.
Is a book necessary in the first place and if it is, what book would you recommend to me?

Thanks in advance!