Head First Java
Head First Design Patterns: A Brain-Friendly Guide
The is an excellent book to learn OOP design patterns. If you are new to Java and object-oriented programming, then I would recommend you to start with Head First Java book from above. I was trying to find the downsides of this book, but I could not see any other then that you will not enjoy it if you do not like an interactive and fun way of writing a book.
OCA and OCP Study Guides
Getting a certification it is not mandatory to be a good Java Developer, but it helps when you are looking for a job. Even if you do not want to get certified OCA and OCP are still two excellent books because they cover the fundamentals of Java.
If you ask the question: Are they perfect? First ask yourself: Is there a perfect code? And the answer to these questions is NO, but there can be good and clean code.
OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide
OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide
The book is an absolute must-read for all programmers and especially for Java Developers. It is true that some parts of the book require more specific knowledge of some concepts like EJB, JNDI, Proxies, etc. which can be a little bit to complex for beginners but the overall it contains handy information, and the most important thing is that it will get you into good coding habits.
For me, it was a turning point in my developer career because this book thought me how to use any opportunity to improve myself and the way I code. If you just started with Java, then I would recommend starting with Head First Java book above.