Core Java Volume I--Fundamentals (11th Edition) (Core Series)
The book is overall very good in that the writing is concise, informative, and even largely fun to read for a programming language book. But this series is very strangely organized, and you should be aware of this.
This is Core Java, Volume I: Fundamentals, with a sister book named Core Java, Volume II: Advanced Features. But those title are very misleading. Many pages in the Fundamentals volume properly belong in the Advanced Features volume, and vice versa. For example, in the Fundamentals book the author includes many pages covering such topics as Reflection, Proxies & the Class Loader, and so forth. These are advanced topics if you ask me, and it would seem the author himself would agree! In not just one but in many places he says, "Application programmers can safely skip this section". I agree, because these sections have no place in book about fundamentals. But meanwhile very important topics which I would consider to be Java fundamentals are not covered in the Fundamentals volume, but in the Advanced Topics. Basic File I/O is in the Advanced Topics book, Reflection is in the Fundamentals book. That's exactly backwards!
Both Basic File I/O and Networking are in the Advanced Topics book. At the end of the Fundamentals book, you won't be able write useful programs because the very basic essentials of how to get data into them will have never been presented to you. You might be able to create some very basic GUI applications from the Fundamentals book, but what they might be doing besides looking pretty I don't know. Again, refer to the Advanced Topics book to read/write files to connect to anything on a network, etc. and generally having anything interesting to operate upon.
These books in tandem might do you well, but know that going in. The Fundamentals book by itself is really not sufficient to stand alone usefully.