I know concepts of java...but i want to make myself completely clear about java....because i lack in some aspects...i can write code and execute the programs...but i lack to decide what will be the best approach to write it....so,ithought it will be good to completely learn java in depth...i am thinking to study herbert schildth's complete reference...will that be fine?? please help.....
Back in my college days, I had read Herbert Schildt's C++ book and it was more of a "complete reference" book so to say I mean you will find almost every thing of Java in that book, but, does it tell you when to create an abstract class instead of an interface? Does it tell you when to go for composition instead of subclassing? These questions perhaps border on combination of OOPS + Java and that I doubt you'll get that from Complete Reference (Note : I have not gone through this book, so brickbats are welcome ).
My suggestion - Thinking in Java (Bruce Eckel) , Effective Java (Joshua Bloch), <Specialized books for say Concurrency, I/O, Patterns>, all in that order.
First of all, if you are a real begginer and have kind of problem to decide what is gonna be better to write in your code, i recommend you to start thinking in the problem itself, to abstract things(java oo purposes) and use on your code. Then, talking in books, i think the best reference to learn Java IMHO is Head First Java.