I've learned Pascal, C++, and VB, but I'm learning Java this term and it's so confusing. It's like working backwards and it doesn't seem to use top down design. Don't even get me started on objects...those things are just weird.

Are they any good free resources on the net that can help a beginner with Java?