Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить бесплатно
Главная БлогЧто такое Java Core
Что такое Java Core

Что такое Java Core

Дата публикации: 04.09.2020
70 769
Время чтения: 8 минут
Дата обновления: 06.12.2023
Автор статьи:
Сергей Ирюпин
В статье рассказывается:

В статье рассказывается:

  1. Базовые конструкции
  2. Объектно-ориентированное программирование
  3. Введение в Swing
  4. Обобщённое программирование
  5. Коллекции (JCF)
  6. Исключения (Exception)
  7. Потоки ввода-вывода
  8. Многопоточное программирование
  9. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

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);
  • потоки ввода-вывода;
  • многопоточное программирование.
Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 32471 pdf иконка

Базовые конструкции

Если у вас есть опыт программирования на С/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.
Дарим скидку от 60%
на обучение «Разработчик» до 22 декабря
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

Исключения (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.
Только до 26.12
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Потоки ввода-вывода

Основная функциональность работы с потоками ввода-вывода сосредоточена в классах из пакета java.io.

Ключевым здесь является понятие потока. В программировании этот термин описывает различные концепции. Применительно к работе с файлами и вводом-выводом речь идёт о потоке (stream), который используется для чтения или записи информации (файлов, сетевых сокетов, консоли и так далее).

Поток связан с реальным физическим устройством с помощью системы ввода-вывода Java. Может быть определён поток, который связан с файлом и через который происходит чтение или запись в файл. Или поток может быть связан с сетевым сокетом, через который принимают или отправляют данные по сети. Все эти задачи — чтение и запись файлов, обмен информацией по сети, ввод-вывод в консоли — решаются в Java с помощью потоков.

Объект, из которого можно читать данные, называется потоком ввода, а объект, в который можно записывать — потоком вывода. Например, если надо прочитать содержимое файла, то используем поток ввода, а если надо записать в файл — поток вывода.

Материал по этому разделу можно найти в книгах:

  • «Java. Библиотека профессионала. Том 1. Основы» — глава 2;
  • «Java 8. Полное руководство» — глава 13, 20, 21.

Многопоточное программирование

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

Если у нас, допустим, графическое приложение, которое посылает запрос к серверу или считывает и обрабатывает огромный файл, то без многопоточности у нас бы блокировался графический интерфейс на время выполнения задачи. А благодаря многопоточности мы можем выделить отправку запроса или любую другую «долгоиграющую» задачу в отдельный поток. Поэтому большинство современных приложений немыслимы без многопоточности.

Создать новый поток можно двумя способами:

  • с помощью интерфейса Runnable, создав класс, реализующий этот интерфейс;
  • наследованием от класса Thread — это даёт больше гибкости при работе с потоками благодаря методам класса Thread.

Материал по этому разделу можно найти в книгах:

  • «Java. Библиотека профессионала. Том 1. Основы» — глава 14;
  • «Java 8. Полное руководство» — глава 11.

Если вас заинтересовал язык программирования Java, предлагаю ознакомиться с моими статьями:

Автор статьи:
Сергей Ирюпин
Оцените статью:
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
Читайте также
prev
next
Бесплатные вебинары:
prev
next
Как работает дизайн-студия на примере одного кейса 

Как работает дизайн-студия на примере одного кейса 

Узнать подробнее
Инновационные подходы к обучению информационным технологиям

Инновационные подходы к обучению информационным технологиям

Узнать подробнее
Как стать Python-разработчиком

Как стать Python-разработчиком

Узнать подробнее
Что нужно знать разработчику

Что нужно знать разработчику

Узнать подробнее
Кто такой тестировщик и как им стать

Кто такой тестировщик и как им стать

Узнать подробнее
Чем занимается программист и как им стать

Чем занимается программист и как им стать

Узнать подробнее
Как искусственный интеллект помогает и мешает задачам кибербезопасности

Как искусственный интеллект помогает и мешает задачам кибербезопасности

Узнать подробнее
Бесплатный вебинар про внедрение искусственного интеллекта

Бесплатный вебинар про внедрение искусственного интеллекта

Узнать подробнее
Какие есть профессии в ИТ

Какие есть профессии в ИТ

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

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...