Основы Java
Про синтаксис и возможности языка Java написано много полноценных самоучителей на сотни страниц, так что тут я не буду в очередной раз пытаться рассказать, как определить класс и написать Hello World. Все это вы можете прочесть в книгах Шилдта или Хорстманна, упомянутых в главе Полезные ресурсы по Java
Для того, чтобы решать практические задачи на Java, вам понадобится освоить:
Основы инфраструктуры Java. Что такое JVM, JRE, JDK, Как ваш текст на языке Java превращается сперва в байт-код в файлах .class, как потом эти файлы собираются в .jar архивы, и как потом эти архивы запускаются JVM
Типы данных в Java
Синтаксис написания кода: все эти переменные, условные операторы, циклы.
Синтаксис классов. В Java, в отличие от многих других языков, весь код находится только в классах.
Понимания того, что такое классы и ООП. Это сложная тема для новичков, постоянно вызывающая путаницу и непонимание, зачем вообще такие навороты нужны. ООП является фундаментальной концепцией, лежащей в основе дизайна языка Java и многих других современных языков, в которой стоит как следует разобраться. Есть неплохие обзорные статьи https://highload.today/oop-v-java-chetyre-printsipa-s-primerami/, но понять зачем это все нужно можно только на практике.
Возможности стандартной библиотеки Java. Большое количество разных готовых решений и алгоритмов идет уже в комплекте с языком. Из этого обычно востребованы:
Структуры данных. Те самые, про которые говорилось в главе Что учить из классической Computer Science?. Реализации большинства сразу есть в стандартной библиотеке, некоторые более экзотические можно найти в популярных сторонних библиотеках, таких как Google Guava или Apache Commons.
Потоки ввода-вывода данных. Чтобы прочитать что-то из файла или по сети и вывести в консоль, ваша программа должна научиться работать со стандартными классами Java из пакета java.io. Глава про них есть в любом курсе, у того же Шилдта или на https://javarush.ru/quests/lectures/questcore.level08.lecture01
Работа со стандартными форматами данных - XML, JSON, YML с помощью библиотек навроде Google Gson.
Обработка ошибок, Exceptions.
Аннотации. Они очень часто используются в различных Java-фреймворках, например в Hibernate для задания хранимых в БД сущностей. Тут важно понимать, что сами по себе аннотации - это просто метки, дополнительная информация которую можно прикрепить к полю, методу или классу, они ничего не делают. Нужен какой-то код, который сможет взять класс, прочитать его аннотации и что-то по ним сделать.
Все это вы найдете в любом самоучителе или курсе по Java Core.
В качестве самопроверки на освоение материала можете попробовать сделать несколько задач с собеседований, наподобие перечисленных в этом списке: https://itvdn.com/ru/blog/article/test-java-20, и проверить, способны ли вы ответить на все те вопросы по основам языка, которые вы могли встретить на этапах выбора технологий для обучения, например https://javarush.ru/groups/posts/2590-top-50-java-core-voprosov-i-otvetov-na-sobesedovanii-chastjh-1
Вот тут-то вам и могут пригодиться те бесконечные "простыни" вопросов по всем темам, наподобие https://github.com/enhorse/java-interview
В идеале стоит совмещать изучение основ с написанием каких-либо практических задач, прокачивая как навыки декомпозиции сложной задачи на более простые, так и получая опыт и понимание того, зачем некоторые возможности нужны.
Last updated