Rather then give you a huge list of ever Java book, I’ve selected a few of the very best for different criteria. Hopefully this simplifies your search and provides a higher quality of resources. I based my choices on my own opinion while reviewing each work, their popularity, and the reviews and opinions of others.
Best free book:
Best books to learn programming, using Java as the language of choice:
Head First Java, 2nd Edition 2nd Edition
Java: A Beginner’s Guide, Sixth Edition 6th Edition
Core Java Volume I–Fundamentals (10th Edition) (Core Series) 10th Edition
Best book for experienced Java programmers, looking to master the language: