1. Введение
Java является одним из наиболее широко используемых языков программирования. Согласно недавнему отчету Github, Java занимает второе место по популярности среди языков программирования после JavaScript. Существует очень большой список тем, которые кто-то должен изучить, чтобы овладеть Java. Хорошо, что вы можете найти много контента в Интернете. В этом посте мы разберем все эти темы по категориям и дадим ссылки на статьи и примеры кода, которые проведут вас через процесс изучения Java.
Содержание
2. Предпосылки
2.1 Установка Java
Первым шагом перед началом написания ваших первых программ является установка Java и особенно JDK (Java Development Kit), который состоит из библиотек, необходимых для написания программ, и компилятора Java, известного как JRE . Пошаговое руководство по установке Java и запуску вашей первой программы с помощью команд JDK можно найти:
2.2 Установка IDE
IDE является важным инструментом, так как он помогает вам в разработке и компиляции Java-программ. В состав IDE входит набор плагинов, которые могут упростить вашу жизнь. Наиболее широко используемые IDE:
Если вы хотите узнать больше о том, как загрузить, установить и использовать эти IDE, прочитайте следующие руководства:
- Учебник по Eclipse для начинающих
- IntelliJ IDEA Учебник для начинающих
- Руководство по среде IDE NetBeans
В следующем разделе мы перейдем к основам Java.
3. Основы — Core Java
После установки Java и вашей любимой среды IDE вы готовы изучить основы Java, также известные как Core Java . Перед этим вы должны сначала понять, как программа запускается через основной метод:
3.1 Java-пакеты
Проект Java состоит из классов, сгруппированных в пакеты. Это похоже на концепцию папок (пакетов) и файлов (классов). Хорошо организованный проект поможет разработчикам легко поддерживать, понимать и читать код.
3.2 Переменные Java
Давайте теперь посмотрим, какие переменные поддерживаются Java, как их объявить. Переменная является основной единицей хранения в программе Java. Переменная определяется комбинацией идентификатора, типа и необязательного инициализатора. Кроме того, все переменные имеют область видимости, которая определяет их видимость и время жизни.
Ниже приведен пример объявления и инициализации переменных Java:
01
02
03
04
05
06
07
08
09
10
11
|
int a, b, c; // declares three ints, a, b, and c. int d = 3 , e, f = 5 ; // declares three more ints, initializing // d and f. byte z = 22 ; // initializes z. double pi = 3.14159 ; // declares an approximation of pi. char x = ‘x’; // the variable x has the value ‘x’. boolean d = false ; // boolean value initialized with value false; |
3.4 Примитивные типы данных Java
Примитивные типы данных являются наиболее основными типами данных. Java определяет восемь примитивных типов данных: байтовые, короткие, int, длинные, char, float, double и boolean. В предыдущем примере мы увидели, как их объявлять и инициализировать. Давайте посмотрим более подробно те:
3.5 Java-операторы
Операторы используются для выполнения операций с переменными и значениями. Короче говоря, самые основные операторы и их использование в Java:
- Используйте оператор
Additive
для добавления переменных. - Используйте оператор вычитания для вычитания переменных.
- Используйте оператор умножения для умножения переменных.
- Используйте оператор деления для деления переменных.
- Используйте оператор по
Modulo
чтобы получить остаток от деления переменных.
Чтобы узнать больше об этих операторах, смотрите следующие статьи:
3.6 Java if-else
Оператор if-else является самым базовым из всех операторов потока управления. Он говорит вашей программе выполнить определенный раздел кода, только если конкретный тест оценивается как true. Он имеет очень простой синтаксис, и дополнительную информацию можно найти:
Ниже приведен очень простой пример оператора if-else:
1
2
3
4
5
6
7
8
|
boolean b = false ; if (b) { System.out.println( "Variable value is true" ); } else { System.out.println( "Variable value is NOT true" ); } |
3.7 Java Loops
Если вам нужно выполнить блок кода много раз, то вам определенно придется использовать механизм, называемый циклом. Java предоставляет три механизма зацикливания, которые являются циклами for , while и switch .
Давайте посмотрим ниже пример цикла for, который наиболее широко используется:
1
2
3
4
5
6
7
8
|
public static void main(String args[]) { String[] cities = { "Athens" , "Thessaloniki" , "Chania" , "Patra" , "Larissa" }; for (String cityname : cities) { System.out.println(cityname); } } |
3.8 Java-массивы
Массивы используются в большинстве программ Java. Вы должны понимать, как инициализировать и повторять массивы, не обращаясь к массиву для индекса, выходящего за пределы массива.
Найдите ниже пример инициализации и итерации массива:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
public static void main(String args[]) { // declare a string array with initial size String[] schoolbag = new String[ 4 ]; // add elements to the array schoolbag[ 0 ] = "Books" ; schoolbag[ 1 ] = "Pens" ; schoolbag[ 2 ] = "Pencils" ; schoolbag[ 3 ] = "Notebooks" ; // this will cause ArrayIndexOutOfBoundsException // schoolbag[4] = "Notebooks"; } |
3.9 Исключения Java
Ни одна программа не была написана, что она безупречна. Для этого Java поддерживает обработку ошибок через исключения . Исключения выдают либо разработчики, либо сама Java.
4. Типы данных
Типы данных Java являются реализациями очень важных структур данных в программировании. Ниже мы перечислим наиболее важные из них и примеры их методов.
4.1 Строка
Класс String, вероятно, является одним из наиболее часто используемых типов в программах Java. Строка на самом деле представляет собой последовательность символов. На самом деле String Object поддерживается массивом char . Строка и может быть инициализирована двумя способами:
1
2
|
String str= "Hello World" ; String str = new String( "Hello World" ); |
Для получения дополнительной информации о классе String см .:
Java предоставляет ряд методов, которые делают манипуляции со строками простыми и эффективными, прямо из коробки. Самые важные из них:
- Пример формата Java String
- Пример сравнения строк Java
- Пример Java String split
- Пример замены строки Java
- Java String replaceAll пример
- Пример длины строки Java
- Пример строки Java
- Пример соответствия строк Java
- Пример строкового массива Java
4.2 Set
Набор — это структура данных, которая содержит уникальные значения. В Java интерфейс Set имеет несколько реализаций, которые широко используются в программах, поскольку они предлагают быстрый поиск. Наиболее широко используемая реализация интерфейса Set — это класс HashSet.
4.3 Карта
Карта — это структура данных, которая содержит пары ключ-значение. Как и в Set, интерфейс Map также имеет несколько реализаций и предлагает быстрый поиск. Наиболее широко используемая реализация интерфейса Map — это класс HashMap.
4.4 Очередь
Очередь — это структура данных, в которой элементы хранятся в порядке. Интерфейс очереди имеет несколько реализаций, и класс LinkedList является наиболее используемым.
4.5 Дерево
Дерево — это структура данных, которая содержит коллекцию элементов, начиная с корня, в которой каждый элемент содержит значение и ссылку на дочерние элементы. Реализациями дерева, предоставляемыми Java, являются классы TreeMap и TreeSet .
4.6 Enum
Enum — это специальный тип данных, который позволяет переменной принадлежать к набору предопределенных констант. Значения, определенные внутри перечисления, являются константами и должны быть набраны заглавными буквами.
5. Коллекции
Инфраструктура коллекций Java — это набор классов и интерфейсов, которые реализуют некоторые из наиболее часто используемых структур данных коллекций, которые мы видели в предыдущем разделе, например, Set, Map, Queue, Tree. Класс java.util.Collections имеет несколько очень важных методов:
- Пример java.util.Collections
- Пример сортировки коллекций Java
- Пример списка элементов в случайном порядке
- Обратный порядок примера списка
- Заменить все элементы примера List
- Копировать коллекцию в другой пример коллекции
Следующие сравнения помогут вам выбрать наилучшую структуру данных в зависимости от варианта использования.
6. Алгоритмы
Очень важно узнать, как распространенные алгоритмы, такие как сортировка, рекурсия и т. Д., Реализованы в Java. Понимание и изучение алгоритмов сделает вас лучшим разработчиком независимо от используемого вами языка программирования. Ниже мы приведем некоторые из наиболее распространенных алгоритмов:
- Алгоритм быстрой сортировки в Java
- Алгоритм слияния в Java
- Пример рекурсии Java
- Факториальная программа на Java
- Программа Палиндром на Java
- Пример простых чисел в Java
- Пример массива Java бинарного поиска
7. Параллелизм
Java имеет отличную поддержку многопоточных программ, в которых несколько потоков выполняются одновременно. Параллелизм является одной из самых сложных тем для понимания и освоения в Java, поэтому он требует много чтения и практики. Чтобы начать работу с параллелизмом, прочитайте:
- Введение в потоки и параллелизм
- Учебник по основам Java-параллелизма
- Вы можете скачать Java Concurrency Essentials
Затем вы должны изучить основы параллелизма, такие как взаимоблокировки, мониторы, синхронизированные и изменчивые ключевые слова:
- Основы параллелизма: тупики и мониторы объектов
- Пример синхронизированного ключевого слова Java
- Как работает Volatile в Java?
- Учебник по основам Java-параллелизма
Java предоставляет параллельные классы, которые помогут вам в разработке многопоточных программ:
Наконец, производительность и тестирование должны быть приняты во внимание для параллельных приложений:
8. Шаблоны проектирования
Другая очень важная тема для Java-разработчиков — шаблоны проектирования . В программировании шаблон проектирования предлагает решение общих проблем в разработке программного обеспечения. Существует очень большой список шаблонов проектирования, которые можно преобразовать в код. Некоторые из наиболее часто используемых:
Помимо вышесказанного, есть и другие шаблоны проектирования, которые вы хотели бы изучить, если хотите стать мастером дизайна и архитектуры Java-программ. Это следующие:
- посетитель
- Итератор
- декоратор
- переводчик
- команда
- стратегия
- высказывать
- шаблон
- сувенир
- Опытный образец
- легкий вес
- Цепочка ответственности
- полномочие
- медиатор
- Мост
- композитный
- адаптер
9. Spring Framework
У Java есть большое сообщество разработчиков программного обеспечения с открытым исходным кодом, которое создало множество фреймворков, облегчающих разработку приложений Java. Самым известным является Spring Framework. Spring — это среда с открытым исходным кодом, которая состоит из нескольких модулей, созданных для решения сложных задач разработки корпоративных приложений. Чтобы начать с весны:
- Руководство по Spring Framework для начинающих с примерами
- Вы можете скачать Spring Framework Cookbook
Ниже мы рассмотрим наиболее важные модули, предоставляемые Spring .
9.1 Spring AOP
Spring AOP используется для предоставления декларативных корпоративных сервисов, особенно в качестве замены декларативных сервисов EJB. Он также используется, чтобы позволить пользователям реализовывать пользовательские аспекты, дополняя их использование ООП с АОП.
9.2 Spring Security
Spring Security позволяет разработчикам интегрировать функции безопасности легко и управляемым образом. Он также интегрирован с последней платформой авторизации OAuth2, которая позволяет стороннему приложению получать ограниченный доступ к службе HTTP, либо от имени владельца ресурса, организовывая взаимодействие утверждения между владельцем ресурса и службой HTTP, либо позволяя стороннее приложение для получения доступа от своего имени.
- Учебник по Spring Security 4
- Пример Spring Security OAuth2
- Spring Security через учебник по аутентификации базы данных
9.3 Весенняя сделка
Spring облегчает управление транзакциями с помощью аннотаций. ИТ-отдел предоставляет абстрактный уровень поверх различных API-интерфейсов управления транзакциями, и это помогает нам сосредоточиться на бизнес-проблеме, не имея необходимости много знать о базовых API-интерфейсах управления транзакциями.
- Пример управления транзакциями Spring с примером JDBC
- Понимание аннотации транзакций весной
- Как Spring @Transactional действительно работает?
9.4. Весенние данные
Spring Data позволяет легко использовать технологии доступа к данным, реляционные и нереляционные базы данных, структуры сокращения карт и облачные сервисы данных. Преимущества использования Spring Data в том, что он удаляет много лишнего кода и обеспечивает более чистую и удобочитаемую реализацию уровня DAO. Кроме того, это помогает сделать код слабо связанным, и поэтому переключение между различными поставщиками JPA является вопросом конфигурации.
- Spring data tutorial для начинающих
- Spring Data JPA Tutorial
- Вы можете скачать Кулинарную книгу по программированию Spring Data.
9.5 Spring MVC
Spring MVC предоставляет архитектуру Model-View-Controller, которая облегчает разработку слабосвязанных веб-приложений. С веб-приложением многие проблемы также входят в картину как последствия. Точнее говоря, некоторые из них — это управление состоянием, рабочий процесс и проверки. Отсутствие состояния протокола HTTP только усложняет ситуацию. Веб-фреймворк Spring разработан, чтобы помочь нам в решении этих задач.
9.6. Весенняя интеграция
Spring Integration — это легковесное решение для обмена сообщениями, которое добавит возможности интеграции в ваше приложение. Это легкое решение для обмена сообщениями, которое добавит возможности интеграции в ваше приложение Spring. Как стратегия обмена сообщениями, она обеспечивает быстрый обмен информацией с высокой степенью развязки между задействованными компонентами или приложениями.
9.7 Spring Boot
Spring Boot позволяет легко создавать автономные производственные приложения на основе Spring без необходимости слишком большой настройки. Spring Boot заботится об инфраструктуре приложений, в то время как вы можете сосредоточиться на кодировании реальной деловой плоти. Это делает разумные предположения о зависимостях и добавляет их соответственно. Это также позволяет вам настроить зависимости в соответствии с вашими требованиями. Spring Boot стал очень популярным и используется во многих приложениях.
10. JDBC — JPA — Hibernate
Ниже приведен список библиотек для взаимодействия с реляционными базами данных, например, MySQL, Oracle и т. Д.
10.1 JDBC
Цель JDBC — сделать возможным взаимодействие с любой базой данных, например MySQL, Oracle и т. Д., В общем виде. Это делается для того, чтобы скрыть такие подробности, которые характерны для поставщика базы данных, и предоставить общий интерфейс для клиентских приложений. Как мы видели в предыдущем разделе, Spring Framework также поддерживает JDBC.
- Пример Jdbc для начинающих
- Spring JdbcTemplate Пример
- Пример управления транзакциями Spring с примером JDBC
- Вы можете скачать JDBC Tutorial
10.2 JPA
Java Persistence API (JPA) — это независимая от производителя спецификация для отображения объектов Java на таблицы реляционных баз данных. Реализации этой спецификации позволяют разработчикам приложений абстрагироваться от конкретного продукта базы данных, с которым они работают, и позволяют им реализовывать операции CRUD (создание, чтение, обновление и удаление) таким образом, чтобы один и тот же код работал с различными продуктами баз данных. JPA стал стандартом де-факто для написания кода приложения, взаимодействующего с базами данных.
- Вы можете скачать JPA Minibook
- JPA Tutorial — ULTIMATE Guide
10.3 Hibernate
Hibernate является высокопроизводительной средой Object Relational Mapping (ORM), полностью используемой в Java. Hibernate также предоставляет сервис запросов наряду с постоянством. Это дает разработчикам способ отобразить структуры объектов в классах Java на таблицы реляционных баз данных. Платформа ORM упрощает хранение данных из экземпляров объектов в хранилище постоянных данных и загрузку этих данных обратно в ту же структуру объектов. ORM на самом деле является техникой программирования для преобразования данных между реляционными базами данных и объектно-ориентированными языками программирования.
- Hibernate Учебник для начинающих с примерами
- Учебное пособие по Hibernate
- Вы можете скачать Hibernate Tutorial
11. Архитектура
Выбор лучшей архитектуры в программном обеспечении имеет важное значение. Иногда несколько архитектур и шаблонов могут быть объединены в одной системе, и встраивание идеального дизайна в ваше решение часто может показаться искусством. Наиболее распространенными архитектурами являются Monolith Multi Layered , SOA и Microservices .
11.1 Монолит Многослойный
Многоуровневая архитектура — это архитектурная модель, предлагающая организацию программных компонентов на разных уровнях. Каждый из этих уровней реализован как физически разделенный контейнер программных компонентов.
11.2 SOA
SOA описывает набор шаблонов для создания слабосвязанных, основанных на стандартах бизнес-ориентированных сервисов, которые, благодаря разделению интересов между описанием, реализацией и связыванием, обеспечивают новый уровень гибкости .
11.3 Микросервисы
Микросервисы позволяют принимать большие приложения и разбивать или разбивать на легко управляемые небольшие компоненты с узко определенными обязанностями. Ключевым моментом, который следует принять здесь, является разложение и разделение функциональности.
- Микросервисная архитектура — краткое руководство
- Микросервисы для разработчиков Java: введение
- Микросервисы для разработчиков Java: коммуникация микросервисов
- Микросервисы для разработчиков Java: ландшафт Java / JVM
- Микросервисы для разработчиков Java: моноглот или полиглот?
- Микросервисы для разработчиков Java: внедрение микросервисов (синхронных, асинхронных, реактивных, неблокирующих)
- Микросервисы для разработчиков Java: микросервисы и ошибки распределенных вычислений
- Микросервисы для разработчиков Java: управление безопасностью и секретами
- Микросервисы для разработчиков Java: тестирование
- Микросервисы для разработчиков Java: тестирование производительности и нагрузки
- Микросервисы для разработчиков Java: тестирование и сканирование безопасности
- Микросервисы Интервью Вопросы и ответы
Чтобы выбрать лучшую архитектуру, проверьте следующие сравнения:
12. Java 8+
Новейшие версии Java, начиная с Java 8, имеют новые важные функции, о которых должны знать разработчики Java. Тем не менее, наиболее используемые версии Java 6-8.
12.1 Java 8
Java 8 является революционным выпуском, поскольку он включает в себя огромное обновление модели программирования Java и скоординированное развитие JVM. Java 8 поддерживает функциональное программирование с помощью лямбда-выражения, Stream API и многих других функций.
- Учебник по функциональному программированию на Java 8
- Учебники по Java 8
- Вы можете скачать Java 8 Особенности
12.2 Java 9
Java 9 была не так популярна, как Java 8, однако, она имеет некоторые новые интересные функции, такие как модули и инструмент Java Shell (JShell), который является интерактивным инструментом для изучения языка программирования Java и создания прототипов кода Java.
12.3 Java 10-11
Java 10 и 11 все еще не очень популярны, но они предлагают новые функции, которые изменят способ кодирования и модульности наших программ.
13. Настольная Java
Хотя Java не очень известна для разработки настольных приложений, она имеет много технологий, которые можно использовать для создания многофункциональных клиентских приложений и апплетов, которые бывают быстрыми, безопасными и переносимыми. Лучшими технологиями являются Swing, AWT и JavaFX.
13.1 Свинг
Swing API предоставляет полный набор компонентов и сервисов с графическим интерфейсом, которые позволяют разрабатывать коммерческие приложения для настольных компьютеров и Интернет / интранет.
- Учебник по Java Swing для начинающих
- Пример приложения JAVA Swing
- Как создать графический интерфейс в Java с помощью Swing
13,2 AWT
AWT ( Abstract Window Toolkit) представляет собой основную основу настольных библиотек Java SE. Он включает надежную модель обработки событий; инструменты для работы с графикой и изображениями, включая классы формы, цвета и шрифта; менеджеры по расположению для гибких оконных расположений; классы передачи данных (включая перетаскивание), которые позволяют вырезать и вставлять через родной буфер обмена платформы.
13.4 JavaFX
JavaFX — это программная платформа для создания и доставки настольных приложений, а также многофункциональных интернет-приложений, которые могут работать на самых разных устройствах. JavaFX предназначен для замены Swing в качестве стандартной библиотеки GUI для Java SE, но обе будут включены в обозримом будущем. JavaFX поддерживает настольные компьютеры и веб-браузеры в Microsoft Windows, Linux и macOS.
14. Тестирование
Тестирование программного обеспечения становится все более популярным в связи с увеличением размера кодовой базы программ. Крайне важно написать как можно больше тестов и охватить все функции вашей программы. Тестирование можно разделить на две основные категории: модульное тестирование и автоматическое тестирование.
14.1 Юнит
Java имеет свою собственную библиотеку для модульного тестирования, библиотеку JUnit . Единица может быть функцией, классом, пакетом или подсистемой. Таким образом, термин «модульное тестирование» относится к практике тестирования таких небольших блоков вашего кода, чтобы гарантировать, что они работают как положено. Для получения дополнительной информации о JUnit прочитайте следующее:
- Руководство по JUnit для модульного тестирования — Руководство ULTIMATE
- Вы можете скачать JUnit Tutorial
14.2 Автоматизация
При автоматизации тестирования разработчик (или тестировщик) пишет сценарии, которые используются для автоматизации тестирования программного обеспечения от начала до конца. Selenium и Cucumber являются наиболее известными средами автоматизации тестирования для Java. Проверь их:
- Учебник по тестированию Selenium Automation
- Вы можете скачать Selenium Programming Cookbook
- Пример JUnit Cucumber
15. Регистрация
Ведение журнала относится к записи активности. Ведение журнала является общей проблемой для команд разработчиков. Несколько структур упрощают и стандартизируют процесс регистрации для платформы Java. Наиболее часто используемые платформы ведения журналов для Java — это Log4j и Logback . Logback предназначен в качестве преемника проекта Log4j в связи с прекращением поддержки проекта Log4j. Apache Log4j2 — это обновление до Log4j, которое обеспечивает значительные улучшения по сравнению с Log4j и предоставляет множество улучшений, доступных в Logback, при устранении некоторых присущих проблем в архитектуре Logback.
15.1 Выход
Logback — одна из наиболее широко используемых сред ведения журналов в сообществе Java. Он предлагает более быструю реализацию, чем Log4j, предоставляет больше возможностей для конфигурации и большую гибкость в архивировании старых файлов журнала.
- Учебник по выходу из системы для начинающих
- Logback RollingFileAppender Пример
- Пример конфигурации обратного входа
15.2 Log4j
Log4j2 — это обновленная версия популярной и влиятельной библиотеки Log4j, которая представляет собой простую, гибкую и быструю среду ведения журналов на основе Java. Это потокобезопасный и поддерживает интернационализацию.
16. Интервью Вопросы
Чтобы подтвердить свои навыки разработчика Java в интервью, вам будет задано много вопросов, связанных с Core Java, многопоточностью, ООП, коллекциями, Spring Framework, SQL. Краткое изложение наиболее важных вопросов, которые задаются в интервью:
- Вы можете скачать вопросы интервью Java
- 150 Java интервью вопросы и ответы — окончательный список
- 100 вопросов о многопоточности и параллельности — ULTIMATE List
- 40 Java Коллекции Интервью Вопросы и ответы
- 100 Весенних Интервью Вопросы и Ответы — ULTIMATE Список
- Вопросы и ответы по интервью SQL — ULTIMATE List
17. Изучите Java Программирование Онлайн — Резюме
В этом посте мы рассмотрели онлайн-ресурсы для изучения Java. Мы начали с установки Java и IDE, а затем перешли к базовой Java, типам данных и коллекциям Java. Мы увидели важность изучения алгоритмов, параллелизма и шаблонов проектирования. Затем мы рассмотрели Spring Framework, JDBC, JPA и Hibernate. Мы взглянули на архитектурные паттерны, новейшие версии Java, настольную Java, тестирование, ведение журналов и, наконец, некоторые очень важные вопросы интервью Java.
Последнее обновление: 23 августа 2019 г.