Что значит бесплатно?
Если вы хотите что-то изучить вы сразу платите некоторую цену и очень дорогую это время.
Бесплатно, что бы не за деньги, с эти сложнее. Почти везде придется платить, но где-то больше , где-то меньше.
Самый дешёвый вариант это литература от Oracle , на из сайте поь Java. JavaRush - даст несколько начальных уровней в Java. Вот остальное у них бесплатно - узкая часть Java, разработка под Android - весь курс бесплатный. + Курс лекций Гарварда и Беркли - CS50. В книгах заплатите цену книги(бумажные больше позволяют, больше триггеров для памяти, ещё хорошо прописывать свои мысли и выводы на бумаге). Обязательно набирайте код сами, ни каких Copy/Past, это тоже позволяет запоминать и проверять так же себя. Потом привыкните, и сможете даже без зрения писать код.
На начальном уровне только так. Довольно много переизданий пережили книги Герберта Шилдта, он писал о программировании , когда меня ещё в проекте не было. Но все надо писать самому, потом через год-полтора по хорошему, сможете пользоваться copy/past-ом и подключением сторонних библиотек, потому как привыкните читать код не по словам, а блоками и сразу его в голове делить на основные пункты алгоритмов: операторы, циклы, ветвления и прочие структуры.