Opa, beleza ? Tem alguns cursos gratuitos interessantes de se ver. Pra quem tá começando pode ser via Youtube mesmo, canais como CursoEmVideo, ou ainda, De aluno Para Aluno, são excelentes.
Claro, depois disso é altamente recomendável iniciar algum projeto, para aplicar esses conhecimentos.
Pesquise no Google a respeito de cursos gratuitos, garanto que terá muitas opções(Inclusive no Google em inglês).
Baixar livros a respeito de Java é bem viável. E se você tem algum conhecimento em inglês, pode buscar cursos e livros em inglês, eles tem um conteúdo bem amplo e que infelizmente por muitas vezes não é traduzido ou divulgado com muita frequência por aqui.
E como não poderia deixar de ser, IDE's como NetBeans e Eclipse auxiliam muito no aprendizado. Digo isso pois alguns ainda pensam que programar em puro texto adianta em algo no aprendizado. Mas é bem desgastante e acaba desmotivando a pessoa na maioria dos casos.