A good book for beginners, intermediate developers if they want to review their java, but I would like to add a bit more details sometimes in chapters unrelated stuff comes up and a lot of times become convoluted. The great thing is a lot of exercises ( but need solutions a lot of times too some questions become a headache to solve also because the author is using graphics to print output from the start not console ).
I would recommend but these are some points I would like to highlight