Статьи

Лучший способ научиться программированию на Java онлайн

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, прочитайте следующие руководства:

В следующем разделе мы перейдем к основам 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 предоставляет ряд методов, которые делают манипуляции со строками простыми и эффективными, прямо из коробки. Самые важные из них:

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 имеет несколько очень важных методов:

Следующие сравнения помогут вам выбрать наилучшую структуру данных в зависимости от варианта использования.

6. Алгоритмы

Очень важно узнать, как распространенные алгоритмы, такие как сортировка, рекурсия и т. Д., Реализованы в Java. Понимание и изучение алгоритмов сделает вас лучшим разработчиком независимо от используемого вами языка программирования. Ниже мы приведем некоторые из наиболее распространенных алгоритмов:

7. Параллелизм

Java имеет отличную поддержку многопоточных программ, в которых несколько потоков выполняются одновременно. Параллелизм является одной из самых сложных тем для понимания и освоения в Java, поэтому он требует много чтения и практики. Чтобы начать работу с параллелизмом, прочитайте:

Затем вы должны изучить основы параллелизма, такие как взаимоблокировки, мониторы, синхронизированные и изменчивые ключевые слова:

Java предоставляет параллельные классы, которые помогут вам в разработке многопоточных программ:

Наконец, производительность и тестирование должны быть приняты во внимание для параллельных приложений:

8. Шаблоны проектирования

Другая очень важная тема для Java-разработчиков — шаблоны проектирования . В программировании шаблон проектирования предлагает решение общих проблем в разработке программного обеспечения. Существует очень большой список шаблонов проектирования, которые можно преобразовать в код. Некоторые из наиболее часто используемых:

Помимо вышесказанного, есть и другие шаблоны проектирования, которые вы хотели бы изучить, если хотите стать мастером дизайна и архитектуры Java-программ. Это следующие:

9. Spring Framework

У Java есть большое сообщество разработчиков программного обеспечения с открытым исходным кодом, которое создало множество фреймворков, облегчающих разработку приложений Java. Самым известным является Spring Framework. Spring — это среда с открытым исходным кодом, которая состоит из нескольких модулей, созданных для решения сложных задач разработки корпоративных приложений. Чтобы начать с весны:

Ниже мы рассмотрим наиболее важные модули, предоставляемые Spring .

9.1 Spring AOP

Spring AOP используется для предоставления декларативных корпоративных сервисов, особенно в качестве замены декларативных сервисов EJB. Он также используется, чтобы позволить пользователям реализовывать пользовательские аспекты, дополняя их использование ООП с АОП.

9.2 Spring Security

Spring Security позволяет разработчикам интегрировать функции безопасности легко и управляемым образом. Он также интегрирован с последней платформой авторизации OAuth2, которая позволяет стороннему приложению получать ограниченный доступ к службе HTTP, либо от имени владельца ресурса, организовывая взаимодействие утверждения между владельцем ресурса и службой HTTP, либо позволяя стороннее приложение для получения доступа от своего имени.

9.3 Весенняя сделка

Spring облегчает управление транзакциями с помощью аннотаций. ИТ-отдел предоставляет абстрактный уровень поверх различных API-интерфейсов управления транзакциями, и это помогает нам сосредоточиться на бизнес-проблеме, не имея необходимости много знать о базовых API-интерфейсах управления транзакциями.

9.4. Весенние данные

Spring Data позволяет легко использовать технологии доступа к данным, реляционные и нереляционные базы данных, структуры сокращения карт и облачные сервисы данных. Преимущества использования Spring Data в том, что он удаляет много лишнего кода и обеспечивает более чистую и удобочитаемую реализацию уровня DAO. Кроме того, это помогает сделать код слабо связанным, и поэтому переключение между различными поставщиками JPA является вопросом конфигурации.

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.

10.2 JPA

Java Persistence API (JPA) — это независимая от производителя спецификация для отображения объектов Java на таблицы реляционных баз данных. Реализации этой спецификации позволяют разработчикам приложений абстрагироваться от конкретного продукта базы данных, с которым они работают, и позволяют им реализовывать операции CRUD (создание, чтение, обновление и удаление) таким образом, чтобы один и тот же код работал с различными продуктами баз данных. JPA стал стандартом де-факто для написания кода приложения, взаимодействующего с базами данных.

10.3 Hibernate

Hibernate является высокопроизводительной средой Object Relational Mapping (ORM), полностью используемой в Java. Hibernate также предоставляет сервис запросов наряду с постоянством. Это дает разработчикам способ отобразить структуры объектов в классах Java на таблицы реляционных баз данных. Платформа ORM упрощает хранение данных из экземпляров объектов в хранилище постоянных данных и загрузку этих данных обратно в ту же структуру объектов. ORM на самом деле является техникой программирования для преобразования данных между реляционными базами данных и объектно-ориентированными языками программирования.

11. Архитектура

Выбор лучшей архитектуры в программном обеспечении имеет важное значение. Иногда несколько архитектур и шаблонов могут быть объединены в одной системе, и встраивание идеального дизайна в ваше решение часто может показаться искусством. Наиболее распространенными архитектурами являются Monolith Multi Layered , SOA и Microservices .

11.1 Монолит Многослойный

Многоуровневая архитектура — это архитектурная модель, предлагающая организацию программных компонентов на разных уровнях. Каждый из этих уровней реализован как физически разделенный контейнер программных компонентов.

11.2 SOA

SOA описывает набор шаблонов для создания слабосвязанных, основанных на стандартах бизнес-ориентированных сервисов, которые, благодаря разделению интересов между описанием, реализацией и связыванием, обеспечивают новый уровень гибкости .

11.3 Микросервисы

Микросервисы позволяют принимать большие приложения и разбивать или разбивать на легко управляемые небольшие компоненты с узко определенными обязанностями. Ключевым моментом, который следует принять здесь, является разложение и разделение функциональности.

Чтобы выбрать лучшую архитектуру, проверьте следующие сравнения:

12. Java 8+

Новейшие версии Java, начиная с Java 8, имеют новые важные функции, о которых должны знать разработчики Java. Тем не менее, наиболее используемые версии Java 6-8.

12.1 Java 8

Java 8 является революционным выпуском, поскольку он включает в себя огромное обновление модели программирования Java и скоординированное развитие JVM. Java 8 поддерживает функциональное программирование с помощью лямбда-выражения, Stream API и многих других функций.

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 предоставляет полный набор компонентов и сервисов с графическим интерфейсом, которые позволяют разрабатывать коммерческие приложения для настольных компьютеров и Интернет / интранет.

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 прочитайте следующее:

14.2 Автоматизация

При автоматизации тестирования разработчик (или тестировщик) пишет сценарии, которые используются для автоматизации тестирования программного обеспечения от начала до конца. Selenium и Cucumber являются наиболее известными средами автоматизации тестирования для Java. Проверь их:

15. Регистрация

Ведение журнала относится к записи активности. Ведение журнала является общей проблемой для команд разработчиков. Несколько структур упрощают и стандартизируют процесс регистрации для платформы Java. Наиболее часто используемые платформы ведения журналов для Java — это Log4j и Logback . Logback предназначен в качестве преемника проекта Log4j в связи с прекращением поддержки проекта Log4j. Apache Log4j2 — это обновление до Log4j, которое обеспечивает значительные улучшения по сравнению с Log4j и предоставляет множество улучшений, доступных в Logback, при устранении некоторых присущих проблем в архитектуре Logback.

15.1 Выход

Logback — одна из наиболее широко используемых сред ведения журналов в сообществе Java. Он предлагает более быструю реализацию, чем Log4j, предоставляет больше возможностей для конфигурации и большую гибкость в архивировании старых файлов журнала.

15.2 Log4j

Log4j2 — это обновленная версия популярной и влиятельной библиотеки Log4j, которая представляет собой простую, гибкую и быструю среду ведения журналов на основе Java. Это потокобезопасный и поддерживает интернационализацию.

16. Интервью Вопросы

Чтобы подтвердить свои навыки разработчика Java в интервью, вам будет задано много вопросов, связанных с Core Java, многопоточностью, ООП, коллекциями, Spring Framework, SQL. Краткое изложение наиболее важных вопросов, которые задаются в интервью:

17. Изучите Java Программирование Онлайн — Резюме

В этом посте мы рассмотрели онлайн-ресурсы для изучения Java. Мы начали с установки Java и IDE, а затем перешли к базовой Java, типам данных и коллекциям Java. Мы увидели важность изучения алгоритмов, параллелизма и шаблонов проектирования. Затем мы рассмотрели Spring Framework, JDBC, JPA и Hibernate. Мы взглянули на архитектурные паттерны, новейшие версии Java, настольную Java, тестирование, ведение журналов и, наконец, некоторые очень важные вопросы интервью Java.

Последнее обновление: 23 августа 2019 г.