John Purcell's introductory course for learning Java is well worth the watch, as is his course on multi-threading. I've sampled numerous tutorials from paid sites like Lynda and I feel like they mostly beat around the bush by discussing concepts such as refactoring and polymorphism very abstractly. As far as books go, I strongly recommend Java: The Complete Reference.