If you ask what Java book you must read, everyone says Effective Java. This book is in all lists of recommended Java books except the lists witch author sells own books. There are several reasons why this quite old book is so popular.
Firstly, it teaches you how to write good Java code. It means not only faster code, but readable and maintainable code. It describes common Java patterns that make your code easy to understand to other engineers. This book doesn't tell you how to hack JMV, it tells you how to use it effectively.
Secondly, although Mr. Block don't tell you about Stream API or Lambda expressions (we all have to wait for the third edition), he covers other complex topics such as Generics, Concurrency, or Serialization. Almost everything from this book you can apply in your everyday work.
On the other side, this book is about Java 6. There a lot of things that are new in Java 7 and 8. For example, Stream API is needed to be described in a book like this one. I hope there will be 3rd edition soon.
In conclusion, Effective Java isn't huge book. It's just about 350 pages. It's worth a week to read it.