Язык Java

Java — не просто язык программирования, а целая программная платформа с широкими возможностями. Основными составляющими блоками этой платформы являются:
  • Базовые инструменты для написания и запуска программ на Java.
  • Библиотеки и классы — ядро языка. Они обеспечивают основные функциональные возможности программирования на Java: обработку исключений, многопоточность, коллекции, логирование, рефлексию, безопасность, работу с сетью, работу с XML, сериализацию, регулярные выражения.
  • Инструменты для развертывания и автоматического запуска приложений.
  • Инструменты для создания фронтенда (GUI, интерфейса пользователя). Это классы библиотек JavaFX, Swing и Java2D.
  • Библиотеки, для работы с базами данных, удаленно по сети, такие как JDBC, JNDI, RMI и Java RMI-IIOP.
Если вы хотите узнать больше о классах и инструментах Java, прочтите документацию Oracle — там есть всё. Первая версия Java JDK 1.0 включала «всего лишь» несколько сотен классов. Зато в настоящее время их число увеличилось уже до нескольких тысяч. За время жизни языка авторы внесли огромное количество изменений, которые повышают его безопасность, функциональность и переносимость. Благодаря постоянному совершенствованию и поддержке языка со стороны его разработчиков, Java всегда шла в ногу с развитием IT-технологий. Так что в настоящее время перед нами — современный язык, основными характеристиками которого являются:
  • Невысокий порог вхождения.
    Изучать Java проще, чем большинство языков с Си-подобным синтаксисом.

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

  • Переносимость.
    Благодаря использованию интерпретатора — виртуальной машины Java, — программы переносятся на различные платформы и устройства.

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

  • Развитая многопоточность.
    Средства Java позволяют управлять выполнением нескольких потоков, что позволяет создавать многопоточные приложения.

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

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

  • Интерпретируемость.
    Java-интерпретатор может выполнять байт-коды Java на любой машине, на которой имеется JVM и JRE.

  • Распределенность.
    У Java есть инструменты для создания распределенных приложений.

  • Производительность.
    Использование JIT (Just-in-time)-компилятора обеспечивает высокую скорость работу приложений, сопоставимую по скорости с языками С и С++.

Первые шаги в освоении новой профессии не всегда даются легко. Особенно если не знаешь, с чего начать, а вопросов возникает множество. В случае с программированием вопрос «с чего начать изучение Java» возникнет первым. Ответить на него вам поможет эта блок-схема:
Чтобы начать изучение Java с нуля в первую очередь желательно разобраться с основными понятиями. То есть усвоить, что включает в себя язык Java, что представляет собой программа на Java и как происходит ее выполнение. Затем следует переходить к освоению синтаксиса языка, его основ, изучению основных библиотек. После элементарного прочтения парочки статей о самом языке Java можно начинать изучение основ. Но нужно установить программное обеспечение для разработки и запуска программ — JDK (Java Development Kit).

Установка Java на компьютер

Итак, делаем первый шаг при изучении Java с нуля — устанавливаем JDK. Для этого вам потребуется проделать несколько простых операций:
  1. Перейти на сайт Oracle.
  2. Выбрать и скачать установочный файл в зависимости от вашей операционной системы.
  3. Выполнить установку, следуя рекомендациям программы-установщика.
  4. Настроить переменную окружения, если вы используете Windows.
Вот, например, описание установки JDK и переменной окружения для операционной системы Windows.

Основные определения

Если вы только начали изучать Java, непременно встретите следующие термины: JVM (Java Virtual Machine) — виртуальная машина Java. Это программный модуль, зависящий от платформы, который служит для интерпретации исходного байт-кода в машинный код и его исполнения. JRE (Java Runtime Environment) — среда выполнения Java. Включает в себя реализацию JVM для конкретной платформы и набор библиотек, необходимых для выполнения программ на Java. JDK (Java Development Kit) — набор инструментов разработчика, необходимых для написания программ на Java. Включает в себя компилятор, JRE, набор стандартных библиотек Java, документацию, различные утилиты. Исходный код — текстовый файл на языке Java, имеющий расширение .java Байт-код — машинно-независимый низкоуровневый код, представляющий собой набор инструкций для JVM. Машинный код — набор машинных инструкций в двоичном формате, которые непосредственно выполняются процессором. Компиляция — преобразование исходного кода в байт-код. Интерпретация — преобразование байт-кода в машинный код. Платформа — программно-аппаратная среда, в которой происходит выполнение программ и приложений. Наиболее популярными платформами являются Microsoft Windows, Linux, ОС Solaris и Mac OS. Эта схема поможет лучше ориентироваться в понятиях JVM, JRE и JDK:

Жизненный цикл программы

Жизненный цикл программы на языке Java начинается с написания исходного кода в текстовом формате. Обычно для этого используются специальные среды для разработки – Integrated Development Environment (IDE), но простые программы можно набирать и в текстовом редакторе, даже в Notepad, который поставляется с любой редакцией ОС Windows. Исходный код необходимо сохранить в файл, имеющий расширение .java. Пример программы HelloWorld.java:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("This is my first program");
    }
}
Прежде, чем выполнить этот исходный код, его необходимо скомпилировать в байт-код с помощью компилятора. Компилятор — это утилита, которая является частью JDK. В результате его работы мы получим файл с расширением .class. Он содержит байт-код — инструкции для JVM, формат которых напоминает язык ассемблер. Наша программа HelloWorld.java будет скомпилирована в файл HelloWorld.class. Платформа Java не предусматривает инструментов для редактирования байт-кода, но возможность просмотреть его все же есть. Чтобы посмотреть, что представляет собой байт-код программы на Java, можно воспользоваться утилитой дизасcемблера javap, которая входит в состав JDK. HelloWorld. class будет содержать такой байт-код:
Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: return

  public static void main(java.lang.String[]);
    Code:
0: getstatic #2//Fieldjava/lang/System.out:Ljava/io/PrintStream;
3: ldc       #3// String This is my first program
5:invokevirtual#4//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
Теперь наша программа хранится в скомпилированном виде в файле HelloWorld.class. Для ее выполнения на любой из платформ необходимо наличие установленной JRE. Возможность переносимости Java-программ на любую платформу обеспечивается за счет использования JVM. Исполнение программы — это выполнение байт-кода виртуальной машиной Java. Выполнение программ производит утилита java, которой необходимо указать имя скомпилированного файла. Выполнение происходит в следующей последовательности:
  1. В оперативной памяти компьютера запускается JVM. По сути это программа, которая служит для выполнения написанных нами Java-программ.
  2. С помощью начального загрузчика классов JVM загружает и инициализирует наш класс в памяти компьютера. В нашем примере это класс HelloWorld.
  3. Далее в нашем классе JVM ищет метод public static void main(String[]).
  4. Выполняется код метода main. Если это необходимо для выполнения программы, производиться загрузка и инициализация других классов.
  5. После выполнения кода производится уборка мусора — очистка памяти и закрытие программы JVM.
При выполнении всех этих действий JVM интерпретирует (преобразовывает) байт-код в машинную инструкцию для процессора с учетом операционной системы, на которой она выполняется. Схематично жизненный цикл Java-программы можно представить так:

Выбор и установка среды разработки

Для того чтобы быстро и эффективно программировать на Java вам понадобится среда разработки — приложение для написания программ на Java. Наиболее популярными IDE среди разработчиков на Java являются:
  • IntelliJ IDEA
  • Eclipse
  • NetBeans
Согласно обзору популярности инструментов Java-разработки, который подготовила компания RebelLabs, в 2017 году лидером стал IntelliJ IDEA, второе место занимает Eclipse, а на третьем месте со значительным отставанием от пары лидеров расположился NetBeans. Доля остальных IDE невелика и не превышает в общем объеме 3%. Хороший сравнительный обзор этих IDE можно посмотреть здесь. Для новичков вполне достаточно установить IntelliJ IDEA Community Edition. Во-первых, вы получите все плюсы современной IDE, такие как: подсказки, проверка кода, возможность отладки кода, удобная интеграция с БД, серверами и поддержка многих инструментов и технологий разработки. Во-вторых, вы сделаете первый шаг в освоении профессионального инструмента разработки, используемого большинством разработчиков. Инструкция по установке IntelliJ IDEA приводится в начале обучающего курса JavaRush, также с ней можно ознакомиться на этом ресурсе.

Заключение

Самостоятельно изучить Java с нуля не составит труда для большинства начинающих. Для этого вполне достаточно знаний на уровне пользователя персонального компьютера. Чтобы эффективно начать изучать Java проделайте несколько простых шагов:
  1. Установите Java на компьютер
  2. Изучите основные понятия
  3. Установите среду разработки
  4. Напишите и запустите свою первую программу.
Что ещё почитать:

Почему нужно учить именно Java?

Как научиться и где?

Топ-12 особенностей уроков JavaRush