Amazingly, there doesn't appear to be a single authoritative site to learn Java for free. We have summrized three useful options below, one of which, the second one (MIT Class) we have direct experience, although it does require some prior programming knowledge. The third option, the UDEMY class, is probably best for folks that are used to videos presenting material and integrated web assignments. If you happen to learn of sites or other online resources as good or better than the ones listed here, do not hesitate to let us know at ftcrobocracy@gmail.com .
Comprehensive class that teaches the basics of programming in java.
Specifically aimed towards web development using the Netbeans IDE. Some lessons can be skipped if you are using another IDE (lessons 1.2, and 1.5).
Does not provide exercises to the reader; we highly reccomend following along, and typing out your own code, and / or doing exercises on newly learned topics (some exercises can be found here or here. (Do note some exercises are difficult, so choose carefully.)
Free.
Teachs from the beginning to advanced concepts at a pretty fast rate.
Requires some previous programming experience.
Extensive exercises using Eclipse (help provided on how to install here).
Not for the faint of heart, you will be rewarded handsomely (in terms of knowledge) if you complete the class.
Free.
ATeaches from the basics using video and online assignments.
Includes 16 hours of video and assignments.
Covers Java language as well as many basic Java data structures.
Free (need to register, may need to pay after introductory period).
Teaches from basics to advanced topics using videos on YouTube.
We recommend following the videos with practice (he uses Eclipse).
Free.