looking for suggestion for a Java book with the following features:

- Easy to follow and understand, designed for beginners or readers with intermediate programming knowledge
- Fun to read
- most importantly, it must be comprehensive, covers ALL topics to be able to pass a job interview and succeed as a programmer