Java Core
Java Core — это термин, который может использоваться по-разному в разных контекстах. Если он встречается в вакансиях на разработчика уровня Junior, то под ним обычно подразумевается базовое знание языка Java. Но компания Sun Microsystems, в которой разработали язык Java, определяет Core Java как вычислительную платформу, основанную на Java.
Освойте профессию «Java-разработчик»
Существуют три вычислительные платформы, основанные на Java:
- Java Standard Edition (Java SE) или Core Java — это базовое API. Обычно используется для разработки десктопных приложений;
- Java Enterprise Edition (Java EE) — это корпоративная версия Java. Применяется для разработки более мощных серверных приложений, веб-сайтов;
- Java Micro Edition (Java ME) используется для разработки приложений для устройств с ограниченными ресурсами, например мобильных телефонов, принтеров, проигрывателей Blu-ray.
Профессия / 14 месяцев
Java-разработчик
Освойте востребованный язык
История
Язык Java был разработан в 1995 году Джеймсом Гослингом в компании Sun Microsystems.
Сначала язык назывался Oak в честь дуба, который рос около офиса Гослинга (oak в переводе с английского — дуб). Затем язык получил новое название — Green. Но в итоге он стал называться Java в честь кофе с острова Ява в Индонезии (однако название языка читается «джава»).
Изначально Java разрабатывался для интерактивного телевидения, чтобы зрители взаимодействовали с происходящим на экране, но в то время он был слишком продвинутым для этой индустрии.
Где применяется Java?
Java — это язык широкого назначения. Его основной принцип: «Пиши один раз, запускай где угодно», или WORA (Write Once, Run Anywhere). Это значит, что скомпилированный (преобразованный в машинный код) Java-код можно можно запустить на всех поддерживающих Java платформах без необходимости повторной компиляции.
Java-приложения обычно компилируются в байт-код (набор инструкций, выполняемый виртуальной машиной Java). JVM устанавливается на платформу, на которой предстоит выполнение Java-программы. На Windows, к примеру, ее нужно устанавливать самостоятельно, а на Android JVM уже вшита.
Достоинство такого способа выполнения программ — это независимость байт-кода от операционной системы, что и позволяет выполнять Java-приложения на таком большом количестве устройств.
Сейчас Java остается универсальным языком программирования, который используют компании разного масштаба в своих продуктах. Вот где он применяется:
Android. Несмотря на популяризацию Kotlin в последнее время, на Java написано огромное количество приложений для платформы Android.
Серверные приложения. Часто на Java пишутся приложения, не имеющие интерфейса. Они используются для получения, обработки и передачи данных на сервере.
Десктопные приложения. В том числе и много IDE (интегрированная среда разработки — комплекс программных средств, используемый для разработки ПО) разработаны на Java — например, IntelliJ IDEA, Eclipse, Netbeans.
Веб-приложения. Например, большое количество RESTful-сервисов (REST — стиль архитектуры программного обеспечения для распределенных систем) и сервлетов (интерфейс Java, реализация которого расширяет функциональные возможности сервера) было создано с использованием Java.
Встраиваемые системы. От банкоматов, платежных терминалов и станков с ЧПУ до бытовой техники — Java может использоваться практически везде, как и обещали его создатели.
Большие данные. Java не доминирует в этой области, но применяться может.
Читайте также Кому и для чего нужен Java?
Преимущества Java
Java входит в первую тройку языков по индексу TIOBE (индекс, оценивающий популярность языков программирования) уже 20 лет.
Разработка через тестирование. Этот подход к программированию не является изобретением разработчиков языка, но создание библиотеки для модульного тестирования JUnit — это одно из самых больших достижений Java.
Объектно-ориентированное программирование. ООП позволяет программе быть более безопасной, так как объекты скрывают информацию, к которой доступа быть не должно. Также ООП упрощает обслуживание и модернизацию старого кода.
Простой синтаксис. Возможно, синтаксис Java не так дружелюбен, как синтаксис Python. Однако изучение Java происходит легче, чем C или C++, что позволяет новичкам быстрее его осваивать.
Независимость от платформы. Если программа не использует специфичные для какой-то операционной системы функции, то ее можно перенести полностью или частично.
Автоматическое управление памятью. Программистам не нужно писать дополнительный код для управления памятью, так как Java работает с ней самостоятельно. Поэтому в Java нет риска забыть выделить память, что могло бы привести к проблемам с производительностью.
Многопоточность. Java позволяет эффективно использовать время процессора, запуская потоки одновременно.
Большое сообщество. Помимо поддержки Oracle, на помощь разработчикам приходит большое сообщество.
Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке
Основные части Java Core
Синтаксис и базовые конструкции Java
Синтаксис Java близок к C и C++, но имеет меньше низкоуровневых средств, чем они. Поэтому если вы знаете один из си-подобных языков, то выучить Java вам будет легко. Однако, в отличие от C++, Java не поддерживает функциональное программирование и является строго объектно-ориентированным языком программирования.
Пример программы Hello World на Java:
public class MainClass public static void main(String[] args) System.out.println(«Hello, SkillFactory!»); // Печатает “Hello, SkillFactory!” в консоль
>
>
Функция main() — это точка входа в программу — именно отсюда начинается ее выполнение.
Обратите внимание, что все исходные файлы должны быть названы так же, как и класс, который они содержат, с добавлением расширения файла .java. Например, указанный выше класс будет находиться в файле MainClass.java.
Также для успешной работы на Java необходимо знать базовые конструкции языка:
- переменные и константы, их типы и как с ними работать;
- массивы;
- работа со строками, String API;
- логические и арифметические операции и выражения;
- оператор ветвления if-else, тернарный оператор, оператор множественного выбора switch-case, цикл for, включая его вариант for each, циклы while и do-while;
- операторы break и continue.
Объектно-ориентированное программирование (ООП)
Сейчас структурные и процедурные подходы программирования уходят в прошлое, а объектно-ориентированное программирование доминирует.
Для понимания объектно-ориентированного программирования нужно разобраться с понятиями класса, объекта и тем, как применять на практике основные принципы ООП: абстракцию, наследование, полиморфизм и инкапсуляцию.
Объект — это некоторая сущность в цифровом пространстве, которая обладает определенным состоянием (поля класса) и поведением (методы). Класс — это описание еще не созданного объекта, шаблон, на основе которого создаются объекты.
Абстракция. Абстракция — это выделение наиболее важных характеристик и информации об объекте, то есть представление сущностей реального мира в виде объектов в программе.
Наследование. Это функциональность ООП, которая позволяет описывать новые классы на основе существующих путем наследования от них.
Полиморфизм. Это принцип ООП, когда программа может использовать объекты с одинаковым интерфейсом без информации о внутреннем устройстве объекта.
Инкапсуляция. Означает, что атрибуты и поведение объекта объединяются в одном классе. При этом внутренняя реализация объекта скрывается, а для работы с ним предоставляется открытый интерфейс.
Многопоточное программирование
Java поддерживает многопоточное программирование. Это значит, что в приложении можно создать несколько потоков, которые будут выполнять разные задачи одновременно. Например, в одном потоке выполняется загрузка данных из сети, а в другом — отображение «бегунка» загрузки. Таким образом, интерфейс не будет «подвисать» во время загрузки данных.
Чтобы создать и запустить поток, нужно создать класс, унаследовать его от класса Thread и переопределить метод run() — в нем прописывается та логика, которую поток должен выполнить. Ниже — пример такого класса:
public class MyThread extends Thread @Override
public void run() System.out.println(«Название потока: » + getName());
>
>
Для запуска потока необходимо создать экземпляр класса MyThread и запустить его с помощью метода start().
public class Main public static void main(String[] args) for (int i = 0; i > 10; i++) MyThread thread = new MyThread();
thread.start();
>
>
>
Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке
Обобщенное программирование
Обобщенное программирование — это парадигма программирования, которая заключается в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.
Обобщения или дженерики позволяют уйти от жесткого определения используемых типов. Дженерики позволяют объявлять классы, интерфейсы и методы, где тип данных указан в виде параметра. Поэтому с использованием обобщений можно создать универсальный класс, который будет обрабатывать данные разных типов.
Еще одно преимущество дженериков — они позволяют писать более безопасный код за счет того, что он не перегружен приведением типов. К тому же приведение типов может привести к ошибкам при компиляции. Так выглядит пример кода с приведением типа:
import java.util.*;
public class Main public static void main(String []args)List list = new ArrayList();
list.add(“Hello, ”);
list.add(“SkillFactory!”);
for (Object str : list) System.out.print((String) str); // (String) — это приведение переменной к типу String
>
>
>
А так — с применением дженерика:
public class Main public static void main(String []args)List < String >list = new ArrayList < >(); // Подсказываем компилятору, какой тип данных ожидаем увидеть в списке
list.add(«Hello, «);
list.add(«SkillFactory!»);
for (Object str : list) System.out.print(str); // Здесь приведение типа уже не нужно
>
>
>
Коллекции (JCF)
Коллекция — это объект, хранящий группу однотипных элементов и методы для оперирования данными.
Пакет java.util содержит библиотеку коллекций Java Collection Framework (JCF). Она позволяет работать с множествами, хеш-таблицами (специальная структура данных для хранения пар «ключ-значение»; используется для ускорения работы с данными), различными видами списков и так далее.
Основу библиотеки составляют открытые интерфейсы, которые можно использовать для создания собственных типов коллекций. Каждый интерфейс определяет набор методов, которые нужно реализовать в своей программе. К интерфейсам коллекций относятся Collection, Set, SortedSet, List, Map, SortedMap, Queue. Также существуют встроенные классы, которые реализуют необходимые функции: ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap.
Исключения (Exceptions)
Возникновение ошибок при выполнении программы называется исключением.
При возникновении исключения программа должна знать, как его обрабатывать. Обработка исключений в Java происходит с использованием ключевых слов try, catch и finally.
Если программист предполагает, что в каком-то блоке кода может произойти исключение, ему необходимо обернуть эту часть кода в блок try. В блоке catch будет происходить обработка исключения. Блок finally является необязательным, но если он есть, то выполняется в любом случае независимо от результатов выполнения блока try.
Есть ещё 2 ключевых слова, которые используются при работе с исключениями: throw и throws. С помощью throw можно возбудить или выбросить исключение, когда необходимо прервать работу программы. Ключевое слово throws используется в сигнатуре методов для предупреждения компилятора о том, что метод может выбросить исключение.
Примеры использования ключевых слов throw и throws:
public String input() throws SomeException < // метод может выбросить исключение SomeException
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try < // метод readLine() может выбросить исключение ввода/вывода
s = reader.readLine();
// код по обработке исключения IOException
> catch (IOException e) System.out.println(e.getMessage());
// в блоке finally закрываем поток чтения
>
if (s.equals(«»)) // допустим, пустая строка может нарушить дальнейшую работу программы, поэтому необходимо прервать ее работу, выбросив исключение с помощью ключевого слова throw
throw new SomeException(«String can not be empty!»);
>
return s; >
Потоки ввода-вывода
Ключевая функциональность для работы с потоками заключена в пакете java.io. Поток в пакете java.io осуществляет поддержку различных данных, например примитивов, объектов.
Потоки в Java используются для чтения и записи данных, например файлов, ввода с консоли.
Существует два типа потоков по направлению:
- InputStream и Reader — потоки ввода, используются для считывания данных.
- OutputStream и Writer — потоки вывода, используются для записи данных.
По типу данных потоки делятся на два типа:
- InputStream и OutputStream работают с байтами.
- Reader и Writer работают с символами.
Swing
Swing — это библиотека для создания графического интерфейса для программ на языке Java. Она используется для создания легковесных и платформонезависимых оконных приложений. Swing, так же как и Java, был разработан компанией Sun Microsystems.
Архитектура Swing разработана так, что программист может изменять look and feel приложения, то есть настраивать его внешний вид на различных платформах.
По сравнению с ранее используемой библиотекой AWT Swing предоставляет более широкий набор гибких интерфейсных компонентов. Также компоненты Swing разработаны для кроссплатформенной работы.
Java-разработчик
Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.
Статьи по теме:
Руководство по Java Core. Введение.
Язык программирования Java был разработан компанией и был представлен как ключевой компонент Sun Microsystems Java platform в 1995 году. Этот и год и считается годом выпуска Java 1.0.
На данный момент (Февраль 2015 года) крайней версией является Java SE 8.
С развитием Java были созданы её различные типы:
- J2SE – ключевой функционал языка Java.
- J2EE – для разработки корпоративных приложений
- J2ME – для разработки мобильных приложений
Девизом Java является: “Write Once, Rune Anywhere”. Другими словами, речь идёт о кроссплатформенности. Она достигается за счёт использования виртуальной машины Java (Java Virtual Machine – JVM).
Какие сильные стороны самого популярного языка программирования в мире (на Февраль 2016 года)?
Мы можем назвать такие:
- Платформная независимость
Наш класс, написанный на Java компилируется в платформно-зависимый байт-код, который интерпретируется и исполняется JVM. - Простота
Синтаксис языка крайне прост в изучении. От нас требуется лишь понимание основ ООП, потому что Java является полностью объектно-ориентированной. - Переносимость
Тот факт, что Java не реализовывает специфичных аспектов для каждого типа машин, делает программы, написанные с её использованием переносимыми. - Объекто-ориентированность
Всё сущности в Java являются объектами, что позволяет нам использовать всю мощь ООП. - Безопасность
Безопасность Java позволяет разрабатывать системы, защищённые от вирусов и взломов. Авторизация в Java основана на шифровании открытого ключа. - Устойчивость
Защита от ошибок обеспечивается за счёт проверок во время компиляции и во время непосредственного выполнения программ. - Интерпретируемость
Байт-код Java транслируется в машинные команды “на лету” и нигде не хранится. - Распределённость
Java разработана для распределённого окружения Internet. - Многопоточность
Язык поддерживает многопоточность (одновременное выполнение нескольких задач), что позволяет нам создавать хорошо отлаженные приложения - Производительность
Использование JIT (Just-In-Time) компилятора, позволяет достигать высоких показателей.
Что нам понадобится для того, чтобы использовать Java:
- ОС Linux или Windows (для наших уроков предпочтительнее Ubuntu)
- Java JDK 8
- IDE (для наших уроков предпочтительнее Intellij IDEA 14)
В ходе этого цикла уроков Вы увидите, как создавать простые, графические и веб приложения используя язык программирования Java.
В дальнейших уроках мы рассмотрим как установить JDK и создадим нашу первую программу на Java.
Java core что это
Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности
Public user contributions licensed under cc-wiki license with attribution required
Что такое Java Core
Java — современный язык программирования высокого уровня, разработанный и выпущенный в 1995 году компанией Sun Microsystems. Изначально создавался для программирования бытовых электронных устройств. Однако с момента появления фактически используется для разработки клиентских приложений и серверного программного обеспечения.
По состоянию на август 2020 года Java занимает второе место в рейтинге самых популярных языков программирования. На сайтах для поиска работы опубликовано множество вакансий по запросу «Java-разработчик». В списке требований к соискателю, как правило, присутствует пункт «знание Java Core» или даже «уверенное знание Java Core».
Core Java — термин Sun, используемый для обозначения Java Standard Edition (Java SE), стандартной версии и набора связанных технологий, таких как Java VM, CORBA и так далее. Дополнительную ясность вносит книга с одноимённым названием на английском языке. В русском переводе она называется «Java. Библиотека профессионала. Том 1. Основы», автор — Хорстманн Кей С. Мы также будем ссылаться на «Java 8. Полное руководство» Герберта Шилдта.
В статье мы обзорно рассмотрим следующие части Java Core:
- базовые конструкции;
- объектно-ориентированное программирование;
- введение в Swing;
- обобщённое программирование;
- коллекции (JCF);
- исключения (Exception);
- потоки ввода-вывода;
- многопоточное программирование.
Базовые конструкции
Если у вас есть опыт программирования на С/C++, то знакомство с Java пройдёт легко, поскольку базовый синтаксис этих языков очень похож.
Изучение начинается с написания простейшей программы, вроде Hello World, выводящей в консоль строку приветствия. Далее в разной степени изучается следующий «джентльменский набор»:
- понятия класса и метода;
- переменные и константы, их типы и основы работы с ними;
- массивы;
- работа со строками как объектами, String API;
- арифметические и логические операции и выражения;
- команды для написания нелинейных программ, включающие в себя условный оператор if-else, тернарный оператор, оператор множественного выбора switch, циклы с определённым числом повторений for, включая его вариант for each, c неопределённым числом повторений while и do-while;
- операторы для изменения порядка выполнения break и continue;
- введение в пакетную систему Java, импорт классов, создание объектов, вызов статических и нестатических методов.
В этот раздел также входят навыки по установке и настройке JDK, вызову компилятора и виртуальной машины JVM в командной строке.
Материал по базовым конструкциям можно найти в упомянутых выше книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 3;
- «Java 8. Полное руководство» — главы 3, 4, 5.
Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) в настоящее время активно вытесняет «структурные» и «процедурные» подходы, разработанные в 1970-х годах, фактически становясь доминирующей методикой. Java — это объектно-ориентированный язык, и для его продуктивного использования необходимо владеть ООП. Для ООП требуется иной образ мышления по сравнению с подходом, типичным для процедурных языков.
Изучение ООП начинается с рассмотрения класса — элемента, составляющего основу Java. Поля класса содержат данные, методы — код. Методы могут иметь параметры и возвращать значения. Конструкторы — особые методы. Объекты создаются на основании классов. Инкапсуляция — первый принцип ООП — подразумевает связывание и сокрытие. Изучаются модификаторы полей и методов: public, protected, private. Вводится понятие перегрузки методов. Затем рассматриваются понятия и механизмы наследования и полиморфизма. Разъясняется разница между статическими полями и методами и нестатическими. Обсуждаются абстрактные классы и методы, вводится понятие интерфейса.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — главы 4, 5, 6;
- «Java 8. Полное руководство» — главы 6, 7, 8.
Введение в Swing
Swing — это набор классов для создания графического интерфейса пользователя (GUI) в Java-программах. В сравнении с ранее использовавшейся библиотекой AWT, у библиотеки Swing есть ряд преимуществ:
- богатый набор интерфейсных примитивов;
- настраивающийся внешний вид на различных платформах (look and feel);
- раздельная архитектура «модель-вид» (model-view);
- встроенная поддержка HTML.
Изучение Swing начинается с написания пустого окна на основании класса JFrame. Затем изучается назначение JPanel, JLabel, JButton и других элементов библиотеки java.awt, размещение элементов с помощью BorderLayout и других компоновщиков, обработка кликов по кнопке и кликов мыши по элементу, а также рисование на JPanel.
Материал по разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — главы 10, 11, 12;
- «Java 8. Полное руководство» — главы 31, 32, 33.
Обобщённое программирование
Обобщения — это параметризованные типы. Они позволяют объявлять классы, интерфейсы и методы, где тип данных указан в виде параметра. Используя обобщения, можно создать универсальный класс, который будет правильно обрабатывать данные разных типов. Классы, интерфейсы или методы, оперирующие параметризованными типами, называют обобщёнными.
Обобщения позволяют писать более безопасный код, который читается легче, чем код, перегруженный переменными типа Object и приведениями типов. Обобщения используются в классах коллекций, в том же ArrayList.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 8;
- «Java 8. Полное руководство» — глава 14.
Коллекции (JCF)
Пакет java.util содержит, помимо прочего, библиотеку коллекций (Java Collection Framework или JCF), позволяющую работать с множествами, хеш-таблицами, разными видами списков и так далее.
Коллекция — это объект, способный хранить группу однотипных элементов. Она также содержит методы для операций с данными. Основные преимущества классов JCF перед теми, которые можно разработать самостоятельно, следующие:
- ускоряется процесс разработки и улучшается качество кода;
- обеспечивается поддержка повторного использования кода;
- производится стандартизация интерфейса ваших классов;
- реализуется поддержка многопоточного доступа.
Основу библиотеки составляют открытые интерфейсы, которые можно использовать для создания собственных коллекций. Каждый интерфейс объявляет набор методов, которые необходимо реализовать в своей программе:
- Collection — группа элементов (охватывает Set и List);
- Set — множество элементов (без дублирования);
- SortedSet — то же самое, что Set, только элементы упорядочены;
- List — список;
- Map — словарь, где каждый элемент имеет уникальный ключ;
- SortedMap — то же, что и Map, однако элементы упорядочены;
- Queue — интерфейс для работы с очередью.
Разумеется, интерфейсы были бы «пустыми», если бы не существовало встроенных классов, реализующих необходимые функции:
- ArrayList — список List как массив элементов;
- LinkedList — список List, выполняющий функции связанного списка;
- HashSet — множество Set как хеш-таблица;
- TreeSet — множество SortedSet, используемое как дерево;
- HashMap — индексированный словарь хешей;
- TreeMap — коллекция SortedMap древовидной структуры.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 9;
- «Java 8. Полное руководство» — глава 18.
Исключения (Exception)
В мире программирования возникновение ошибок и непредвиденных ситуаций при выполнении программы называют исключением. Они могут возникать в результате неправильных действий пользователя, отсутствии необходимого ресурса на диске или потери соединения с сервером по сети. Причинами исключений при выполнении программы также могут быть ошибки программирования или неправильное использование API. Ваша программа должна чётко знать, как поступать в такой ситуации. Для этого в Java предусмотрен механизм исключений.
При возникновении ошибки в процессе выполнения программы JVM создаёт объект нужного типа из иерархии исключений Java — множества возможных исключительных ситуаций, унаследованных от общего «предка» — класса Throwable. Исключение можно также создать вручную с помощью оператора throw. При этом выполнение основного кода программы прерывается, а обработчик исключений JVM пытается найти способ обработать исключение.
Блоки кода, для которых предусмотрена обработка исключений в Java, создаются с помощью конструкций try<>catch, try<>catch<>finally, try<>finally<>.
При возбуждении исключения в блоке try обработчик исключения ищется в следующем за ним блоке catch. Если в catch есть обработчик этого типа исключения, управление переходит к нему. Если нет, то JVM ищет обработчик этого типа исключения в цепочке вызовов методов до тех пор, пока не будет найден подходящий catch.
После выполнения блока catch управление передаётся в необязательный блок finally. Если подходящий блок catch не найден, JVM останавливает выполнение программы и выводит стек вызовов методов (stack trace), выполнив перед этим код блока finally при его наличии.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 7;
- «Java 8. Полное руководство» — глава 10.
Потоки ввода-вывода
Основная функциональность работы с потоками ввода-вывода сосредоточена в классах из пакета java.io.
Ключевым здесь является понятие потока. В программировании этот термин описывает различные концепции. Применительно к работе с файлами и вводом-выводом речь идёт о потоке (stream), который используется для чтения или записи информации (файлов, сетевых сокетов, консоли и так далее).
Поток связан с реальным физическим устройством с помощью системы ввода-вывода Java. Может быть определён поток, который связан с файлом и через который происходит чтение или запись в файл. Или поток может быть связан с сетевым сокетом, через который принимают или отправляют данные по сети. Все эти задачи — чтение и запись файлов, обмен информацией по сети, ввод-вывод в консоли — решаются в Java с помощью потоков.
Объект, из которого можно читать данные, называется потоком ввода, а объект, в который можно записывать — потоком вывода. Например, если надо прочитать содержимое файла, то используем поток ввода, а если надо записать в файл — поток вывода.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 2;
- «Java 8. Полное руководство» — глава 13, 20, 21.
Многопоточное программирование
Большинство языков программирования поддерживают такую важную функцию, как многопоточность, и Java не исключение. При помощи многопоточности мы можем создать в приложении несколько потоков, которые будут выполнять различные задачи одновременно. Если у нас, допустим, графическое приложение, которое посылает запрос к серверу или считывает и обрабатывает огромный файл, то без многопоточности у нас бы блокировался графический интерфейс на время выполнения задачи. А благодаря многопоточности мы можем выделить отправку запроса или любую другую «долгоиграющую» задачу в отдельный поток. Поэтому большинство современных приложений немыслимы без многопоточности.
Создать новый поток можно двумя способами:
- с помощью интерфейса Runnable, создав класс, реализующий этот интерфейс;
- наследованием от класса Thread — это даёт больше гибкости при работе с потоками благодаря методам класса Thread.
Материал по этому разделу можно найти в книгах:
- «Java. Библиотека профессионала. Том 1. Основы» — глава 14;
- «Java 8. Полное руководство» — глава 11.
Если вас заинтересовал язык программирования Java, предлагаю ознакомиться с моими статьями:
- Как учить Java: 10 практических советов для новичков.
- Быстрый старт с Java: начало. Знакомимся с понятиями, вникаем в операторы и циклы, осваиваем классы.
- Быстрый старт с Java: крестики-нолики. Узнаём о массивах, методах, полях класса и создаём более сложную игру на Java.
- Быстрый старт с Java: «лопни шарик». Знакомимся с графической библиотекой Swing.