Включите исполнение JavaScript в браузере, чтобы запустить приложение.

Java Core: что это такое

Что такое Java Core для разработки и программирования, и почему эту платформу называют «базой»? Разбираем на примерах с реальным кодом, что нужно знать программисту и как перейти в коммерческую разработку (Enterprise).

Понятие Java Core

Java — платформа для разработки. В разговорной речи программисты могут, употребляя этот термин, иметь в виду разное:

  • «Написал программу на джаве» — Lang;
  • «Использовал джавовые библиотеки» — Core Library;
  • «Запустил программу на джаве» — JVM (Virtual Machine);
  • «Установил джаву, чтобы запустить приложение» — Standard Edition (Java SE);
  • «Начал писать на энтерпрайзе» — Enterprise Edition (Java EE);
  • «Установил джаву, чтобы начать разработку» — Development Kit (JDK).

Говоря о Java Core, IT-специалисты могут подразумевать:

  • базовый набор знаний, которые нужны разработчику («требуется базовое понимание языка» — например, для того, чтобы написать калькулятор);
  • комплекс инструментов/библиотек для создания десктопных приложений. 

Таким образом, Java Core — стандартный набор инструментов для разработки. Он включает язык (и все его конструкции), а также основные библиотеки для практически ежедневной работы программиста.

Основные компоненты Java Core

Это база, фундаментальные основы языка программирования. Изучать их можно годами, углубляя и расширяя знания. 

Возможности языка

Стандартные конструкции языка программирования:

  • условные выражения — == (равно), != (не равно), < (меньше, чем), >= (больше или равно), <= (меньше или равно), & (и), | (или), ! (не);
  • условные конструкции — if/else, switch/case, тернарные операции (тернарники), 
  • циклы — for, while, do...while;
  • типы данных — boolean, byte, short, float, char, long, int;
  • обработка исключений — try...catch...finally, а также многие другие.

В данную категорию попадают коллекции разных типов: Collection, Queue, NavigableSet, Deque, List, Set, SortedSet, Map. Интерфейсы и абстрактные классы предоставляют разработчикам огромный выбор классов коллекций: например, списки, множества, очереди, отображения.

Язык программирования работает с потоками данных (Stream). Разработчику нужно знать, как они устроены и как их правильно использовать. Здесь не обойтись без понимания ООП (объектно-ориентированного программирования): наследование, инкапсуляция и модификаторы доступа, классы и интерфейсы.

Библиотеки

Изначально планировалось, что язык программирования будет использоваться для десктопных приложений — тех, которые пользователь запускает в условной Windows и закрывает нажатием на крестик в верхнем правом углу. Библиотеки Swing, AWT и JavaFX создавали для этого.

AWT (Abstract Window Toolkit) — оконная библиотека графического интерфейса (Widget toolkit). Сегодня она входит в Java Foundation Classes (JFC) — API для реализации графического интерфейса в Java-программе.

Swing тоже входит в JFC, но предоставляет более гибкие интерфейс-компоненты. Приложения, написанные с использованием библиотеки Swing, выглядят как родные приложения для ОС.

JavaFX — платформа, которая пришла на смену Swing и AWT. Изначально входила в Java SE (Java 2 Standard Edition или J2SE), но до марта 2025 поставляется в Java JDK 8. Благодаря платформе разработчикам доступны компилятор и среда исполнения JavaFX, среда NetBeans IDE и набор инструментов для импорта графических объектов.

Чтобы создавать приложения, нужны и другие библиотеки: RegExp, Serialization, Reflection, Generic. Это набор, без которого невозможно создавать программы (и, само собой, переходить в коммерческую разработку).

Как использовать Java Core в разработке

Чтобы применять базовые возможности платформы, стоит разобраться с основными конструкциями языка программирования. 

Типы данных

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

На базовом уровне разработчику нужно знать:

  • как объявить переменную;
  • как присвоить ей значение;
  • в чем разница между ссылочными типами и примитивами;
  • как происходит явное и неявное преобразование типов.

Исключения

Исключения — конструкции языка программирования, которые используются для отлавливания и обработки ошибок:

  • деление на ноль (арифметическая операция запрещена);
  • обрыв интернет-связи во время выполнения;
  • запрос несуществующего файла и так далее.

Например, в коде ниже попытались совершить недопустимую математическую операцию — разделить на ноль. 

public class GitVerse {

	public static void main(String[] args) {

		int x = 0;

		/* выбрасывает исключение */

		System.out.println(0 / 0);

	}
java

Результат выполнения данной программы — красное сообщение в терминале. Система указывает, что сбой произошел в файле GitVerse.java на пятой строчке (та самая, где пытаемся поделить на ноль). Программа указывает и само исключение — ArithmeticException.

Программа выбрасывает исключение ArithmeticException при попытке поделить на ноль, код в GigaIDE Desktop
Программа выбрасывает исключение ArithmeticException при попытке поделить на ноль, код в GigaIDE Desktop

Исключения могут быть проверяемыми (checked) и непроверяемыми (unchecked, сбой в непредвиденном месте). Выше у нас unchecked Exception — непредвиденная ситуация, которую никак не обработали. 

Чтобы ошибка не падала в консоль, в код нужно добавить языковые конструкции try/catch. 

Например, вот так:

public class Main {

    public static void main(String[] args) {

        int x = 0;

        // Блок для обработки эксепшена

        try {

            System.out.println(x / 0); // Здесь произойдет деление на ноль

        } catch (ArithmeticException e) {

            System.out.println("Произошла ошибка деления на ноль.");

        }

    }

}
java

Результат выполнения в консоли — обработанное исключение.

Обработка исключений с использованием try…catch на языке программирования Java
Обработка исключений с использованием try…catch на языке программирования Java

Управляющие конструкции

В эту категорию попадают:

  • if-else, switch (ветвление);
  • for, while, do-while (циклы);
  • break, continue (операторы управления выполнением);
  • return (управление возвратом методов).

Они получили название, потому что управляют ходом выполнения программы. 

Ниже простой код, где использованы операторы if и else. В переменной находится число 12. Дальше мы сравниваем значение с числом 18. Условие age >= 18 (12 >= 18) дает ложь, поэтому переходим в блок else. В терминале появляется фраза: «Вы несовершеннолетний.».

public class GitVerse {

    public static void main(String[] args) {

        int age = 12;

        if (age >= 18) {

            System.out.println("Вы совершеннолетний.");

        } else {

            System.out.println("Вы несовершеннолетний.");

        }

    }

}
java
Обработка исключений с использованием try…catch на языке программирования Java
Обработка исключений с использованием try…catch на языке программирования Java

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

Различия Java Core и Java EE

Java EE (Jakarta EE, Java Platform Enterprise Edition, Enterprise Edition J2EE) — набор дополнительных библиотек, серверов для коммерческой/промышленной разработки. Чтобы понять отличия, нужно разобрать основные особенности инструмента.

Как работает J2EE? Его основные составляющие для работы в Enterprise:

  • сервер приложения;
  • библиотеки;
  • фреймворки.

Сервер приложения

Это комплекс программ, которые реализуют концепцию Java EE и позволяют запускать в себе Java EE приложения. Примеры — Tomcat, GlassFish, WildFly, Apache Geronimo, JBoss Enterprise Application Platform, Jetty, Apache TomEE, Sun Glassfish Enterprise Server 9.1, WebLogic. Тот же GlassFish (Oracle GlassFish Server) изначально разрабатывался Sun Microsystems, затем перешел корпорации Oracle. 

Библиотеки 

Среди популярных продуктов:

  • WebSocket — работа с веб-сокетами;
  • JavaMail — взаимодействие с сообщениями на электронную почту;
  • JSON Processing (JSON-P) и JSON Binding (JSON-B) — обработка файлов формата JSON;
  • JAAS — авторизация и аутентификация;
  • JSTL — библиотека тегов;
  • JAX-RS — RESTful веб-сервисы;
  • JPA (Java Persistence API) — управление постоянством и объектно-реляционное отображение (маппинг данных с БД), а также многие другие.

Фреймворки 

Знать все библиотеки и фреймворки не нужно, да и невозможно. Чтобы работать программистом, нужно знать определенный стек (набор инструментов). Он может выглядеть как Java11, Spring 5+/Spring boot 2+, Rest, Postgres, Kafka, TeamCity/Jenkins, Docker, Redis. Лидером рынка стал Spring Framework. Фреймворк не всецело связан с Java Enterprise, но интегрирован в нее. Еще есть:

  • JavaServer Faces (JSF) — для пользовательских интерфейсов веб-приложений;
  • Google Web Toolkit (GWT) — для Ajax-приложений;
  • Vaadin — для RIA-веб-приложений;
  • Grails — для веб-разработки, а также некоторые другие.

В таблице ниже приведены сравнение и основные отличия.

Критерий сравненияJava CoreJava EE (Jakarta EE)
Что это такоеБазовый инструментарий для написания кода (основы)Платформа для коммерческой разработки любого уровня сложности
Уровень освоения для новичкаПрощеСложнее
ПредназначениеОбщая разработкаEnterprise-разработка
ВерсияStandard Edition (J2SE)Enterprise Edition (J2EE)
Что нужно знать для работыБазовые возможности языка программирования + стандартный набор библиотекJava Core + сервера приложений + библиотеки для коммерческой разработки (WebSocket, JSTL) + фреймворки
Порог вхожденияНижеВыше
Примеры инструментов для работыRegExp, Serialization, JavaFX, Reflection, GenericWebSocket, JavaMail, JSON Processing (JSON-P), JSON Binding (JSON-B), Vaadin, Google Web Toolkit
АрхитектураStandaloneClient-side и Server-side-приложения
Нужно ли знать все инструментыБазовое представление желательноНе всегда. Программист может работать с одним фреймворком (Spring Framework). В таком случае необязательно знать, как устроены Vaadin или Google Web Toolkit

Примеры работы с Java Core

Язык программирования создавался по принципу «пиши один раз, запускай везде» («Write once, run anywhere», WORA). Сегодня этот принцип используется практически по умолчанию: приложения стали кроссплатформенными. Но на момент начала работы над языком программирования, в 1990-е годы, это считалось достижением.

ЯП одинаково хорошо подходит для проектов любой сложности:

  • мобильные приложения;
  • компьютерные игры;
  • веб-сервисы;
  • корпоративные системы и многое другие. 

За универсальность отвечает JVM — виртуальная машина. Она переводит Java-код в промежуточный (байт-код), после чего выдает инструкции операционной системе.

Чтобы начать писать код и разбираться в базовых конструкциях, стоит изучить синтаксис, установить комплект разработчика и IDE.

Установить среду разработки 

Для работы с языком программирования используют популярные среды: 

  • GigaIDE Desktop;
  • JDeveloper;
  • NetBeans IDE;
  • Eclipse;
  • SunJava Studio Creator;
  • IntelliJ IDEA;
  • Borland JBuilde. 

Пользователи могут бесплатно скачать GigaIDE Desktop на сайте. Отечественная IDE поддерживает проекты на языке программирования. Также программистам будут доступны Spring Boot, Spring Data, Spring Security. 

Настройки GigaIDE Desktop и инструменты для разработки на Java
Настройки GigaIDE Desktop и инструменты для разработки на Java

В отечественной среде реализовали:

  • подсветку кода;
  • выявление синтаксических ошибок;
  • автодополнения;
  • рефакторинг кода (переименование методов классов пакетов и т.д.);
  • инспекции и подсказки;
  • системы сборки Maven и Gradle. 

Предустановлены плагины для Lombok, Quarkus, Spring.

Установить Java Development Kit (JDK)

JDK — комплект разработчика, который включает:

  • компилятор (javac);
  • стандартные библиотеки;
  • исполнительную систему (JRE). 

В зависимости от проекта могут использовать OpenJDK. Он полностью совместим с JDK, но исходный код — полностью открытый и свободный.

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

OpenJDK в GigaIDE Desktop
OpenJDK в GigaIDE Desktop

Написать первый код и запустить его

Первый код будет простым: перебираем массив элементов с помощью цикла for. Затем выводим в консоль второй элемент.

Нужно создать файл с расширением .java. Пускай в нашем примере это будет GitVerse.java. В него необходимо скопировать код:

public class GitVerse {

    public static void main(String[] args) {

        // Создаем массив строк

        String[] words = {"GitVerse", "GigaIDE Desktop", "GigaCode", "SberTech"};

        // Перебираем массив

        for (int i = 0; i < words.length; i++) {

            if (i == 1) {

                System.out.println("Вас приветствует: " + words[i]);

            }

        }

    }

}
java

Затем необходимо сохранить файл и запустить код. В терминале (в нижней части страницы) появится фраза: «Вас приветствует: GigaIDE Desktop». Все так, как закладывалось в логике кода.

Результат выполнения кода на Java в терминале GigaIDE Desktop
Результат выполнения кода на Java в терминале GigaIDE Desktop

Таким образом, мы написали и запустили код с помощью среды разработки GigaIDE Desktop. На самом деле отечественная Integrated Development Environment предоставляет больше возможностей и инструментов для опытных разработчиков. 

Например, в ней «из коробки» доступен AI-ассистент GigaCode. В режиме code chat он документирует, объясняет, ревьюит, покрывает тестами код и т. д. 

Можно использовать хинт /explain_step_by_step, и умный помощник объяснит код пошагово:

GigaCode в режиме code chat пошагово объясняет код в GigaIDE Desktop
GigaCode в режиме code chat пошагово объясняет код в GigaIDE Desktop

После команды /review — сделает ревью кода и подскажет, как его можно улучшить:

GigaCode делает ревью кода в GigaIDE Desktop
GigaCode делает ревью кода в GigaIDE Desktop

После задачи /improve — перепишет код и объяснит, почему так сделал.

GigaCode переписывает код и предлагает улучшения
GigaCode переписывает код и предлагает улучшения

В статье разобрали «базу» — Java Core. Это набор инструментов и концептов, необходимых для создания первых приложений: Overloading и Overriding, интерфейсы и абстрактные классы, пакеты, коллекции, обработка исключений (Exception Handling), апплеты (applets). Первые проекты можно писать в GigaIDE Desktop и размещать на платформе git-репозиториев GitVerse. Удачи!