This is an Outstanding FREE course for anyone who wants to learn how to program in Java.   Thanks to John Purcell from caveofprogramming.com for his fantastic work.
JAVA For Complete Beginners Course
1. A Hello World Program Watch Video
2. Using Variables Watch Video
3. Strings - Working With Text Watch Video
4. While Loops Watch Video
5. For Loops Watch Video
6. IF-ELSE Conditions Watch Video
7. Getting User Input Watch Video
8. Do While Loops Watch Video
9. Switch Watch Video
10. Arrays Watch Video
11. Arrays of Strings Watch Video
12. Multi-Dimensional Arrays Watch Video
13. Classes and Objects Watch Video
14. Methods Watch Video
15. Getters and Return Values Watch Video
16. Method Parameters Watch Video
17. Setters and this Watch Video
18. Constructors Watch Video
19. Static Variables and Methods Watch Video
20. String Builder and String Formatting Watch Video
21. toString and the Object Class Watch Video
22. Inheritence  Watch Video
23. Packages Watch Video
24. Interfaces Watch Video
25. Public, Private,Protected Watch Video
26. Polymorphism Watch Video
27. Encapsulation and the API Docs Watch Video
28. Casting Numerical Values Watch Video
29. Upcasting and Downcasting Watch Video
30. Using Generics Watch Video
31. Generics and Wildcards Watch Video
32. Anonymous Classes Watch Video
33. Reading Text Files Using Scanner Watch Video
34. Handling Exceptions Watch Video
35. Throwing Exceptions Watch Video
36. Multiple Exceptions Watch Video
37. Runtime Exceptions Watch Video
38. Abstract Classes Watch Video
39. Reading Files with FileReader Watch Video
40. Try With Resources Watch Video
41. Writing Text Files Watch Video
42. Equals and Comparing Strings Watch Video
43. Inner Classes Watch Video
44. Enum Watch Video
45. Recursion Watch Video
46. Serialization Watch Video
47. Serializing Arrays Watch Video
48. Transient  Watch Video
Complete Source Code for All Lessons  Watch Video