I suggest you to read the book -
Thinking in Java[
^]
Why?
Awards for Thinking in Java
2003Software Development MagazineJolt Award for Best Book
2003Java Developer’s JournalReader’s Choice Award for Best Book
2001JavaWorldEditor’s Choice Award for Best Book
2000JavaWorldReader’s Choice Award for Best Book
1999Software Development MagazineProductivity Award
1998Java Developer’s JournalEditor’s Choice Award for Best Book