At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
Master the fundamentals ! Pick up O'reilly's Learning Java.(http://www.amazon.com/Learning-Java-Patrick-Niemeyer/dp/0596008732/ref=sr_1_1?s=books&ie=UTF8&qid=1309621733&sr=1-1) It is one of the best books to begin learning about the language. It expands why Java is different and better. Also you should pick up Head First Java (http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208/ref=sr_1_1?s=books&ie=UTF8&qid=1309621795&sr=1-1) This book teaches the basics along with a working example. Best way to master is to practice practice practice !
Java is object oriented, so learning other object oriented languages will help you understand Java that much more. I would suggest becoming acquainted with Python, because it is a very high level language that is easy to pick up for beginners before moving to Java.
this guy has a great Java tutorial http://www.youtube.com/user/thenewboston
I've taken an AP Computer Science class in my high school, and it had really gotten me acquainted with the fundamentals of JAVA, as well as given me the structure of thought needed to be a good programmer. I would greatly suggest it if you want to get a strong beginning.
Read and understand the API's. These are Java's main strength.
learn core java ....u wil be knowing every thing on that practice is vry imprtnt ....then u wil be expert ...
Alice is a free software to explore and teach how to think in a object oriented way. You can find it here: http://www.alice.org/ If you are already familiar with how object oriented programming works, then as Luis suggested above: read the API's that explain how objects are arranged and what each object inherits in the language you are studying. For Java, wikipedia.org has a list of both official and unofficial versions here: http://en.wikipedia.org/wiki/List_of_Java_APIs The key to being an expert programmer is to know as much as possible about the language, so that you have all of its tools at your disposal when you apply your logic to solve a problem using that language.