There are a couple others that I know have good reputations, though I haven't read them myself.
Thinking In Java by Bruce Eckel. I think there's a free version of this online.
And of course Oracle's online tutorials: http://docs.oracle.com/javase/tutorial/
I would agree with Jeff. If you don't have any experience with Java, then Head First Java, and Thinking in Java are good books.
If you come from C++ background, or having working knowledge about OO principles, then Core Java (Vol I & II) are very good (please note that those are huge books and expensive compared to previously mentioned books).
I haven't read Horton's book, but I won't recommend Schildt's book.
Further, though Effective Java is an excellent book - please note that it is book for programmers hoping to write better programs(just like Effective C++ by Meyers). That book is not meant to teach Java from basics - so please don't refer it as your first Java book.
If you are a total newbie, and want to buy only one book for now - then I would recommend Head First Java.
I hope this helps.
Sayth renshaw wrote:There are 2 beginning books out there the wrox Horton beginning java isbn 0470404140 and the 5th edition java a beginners guide isbn 0071606327 by Schildt.
Can't really afford to buy both and have trouble splitting them, has anyone used either of these and could share an opinion?
I had the same problem. I moved from years of scripting languages to Java a few months back. I started with Head First which was good but if you have done the trail already you might not get too much out of it. Schildt is not good. I sent mine back.
You are right about Bloch. I bought it about 2-3 months (recreational programming only) after finishing Head First and it was far too advanced in most places for me. Some stuff is useful but you have to sift through a lot of advanced stuff to get it.
In the end I decided that I would just push on with some projects and use the internet to solve problems as I came across them. It is a more organic way of learning which suits me. Helpful if you know people who will review code for you on occasion.
I am considering this: http://www.amazon.co.uk/Head-First-Design-Patterns-Freeman/dp/0596007124
My thinking is that, whilst you can learn small scale syntax/vocabulary from the DIY method it probably isn't so good for learning how to properly structure code. I was also considering something on threading but this might be something I can address in the DIY way when it comes up there seems to be a lot of tutorials out there.
There are the wibit.net video tutorials Wibit.net and just found tutorials point which appears to have a fair deal of info tutorials point and quite a lot of video on freevideolectures.
There are a lot free java books here I am assuming are legitimately free onlineprogrammingbooks.com