Question for you savvy Java folks.  I have dabbled in programming in a couple different languages (C#, VisualBasic, and C++) and I would really like to learn and understand Java well enough to write a program to solve a complex problem.  I'm interested in Java for several other reasons as well...