Язык 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, можно браться за его основы. Последовательность шагов наглядно демонстрирует эта схема эта блок-схема:
Что нужно для программирования на Java?
Для начала вам нужно установить программное обеспечение для разработки и запуска программ — JDK (Java Development Kit). После этого настройте JDK на компьютере, скачайте и установите одну из IDE (Integrated Development Environment) — это среда для разработки программного обеспечения. Самая популярная IDE — IntelliJ IDEA. Альтернативы — Eclipse, NetBeans, JCreator и даже обычный блокнот.
Установка Java на компьютер
Как мы уже выяснили, когда мы изучаем Java с нуля, первый шаг — это установка JDK. Для этого вам потребуется проделать несколько простых операций:
- Перейти на сайт Oracle.
- Выбрать и скачать установочный файл в зависимости от вашей операционной системы.
- Выполнить установку, следуя рекомендациям программы-установщика.
- Настроить переменную окружения, если вы используете 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."<init>":()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, которой необходимо указать имя скомпилированного файла. Выполнение происходит в следующей последовательности:
- В оперативной памяти компьютера запускается JVM. По сути это программа, которая служит для выполнения написанных нами Java-программ.
- С помощью начального загрузчика классов JVM загружает и инициализирует наш класс в памяти компьютера. В нашем примере это класс
HelloWorld
. - Далее в нашем классе JVM ищет метод
public static void main(String[])
. - Выполняется код метода
main
. Если это необходимо для выполнения программы, производиться загрузка и инициализация других классов. - После выполнения кода производится уборка мусора — очистка памяти и закрытие программы 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 и выработку навыка программирования, скорее всего, уйдет от 6 до 12 месяцев, в зависимости от интенсивности вашего обучения. Чтобы сделать этот процесс систематическим, составьте план обучения, соберите необходимые источники и выделяйте несколько часов в день на занятия. Не забывайте о том, что ключевое в обучении программированию — это практика.
Заключение
Когда мы изучаем Java самостоятельно, на деле это оказывается проще, чем в теории. Для этого вполне достаточно знаний на уровне пользователя персонального компьютера. Чтобы эффективно начать изучать Java, проделайте несколько простых шагов:
- Установите Java на компьютер
- Изучите основные понятия
- Установите среду разработки
- Напишите и запустите свою первую программу.
Ресурсы ?
Программы для создания UI:
Концепции UI:
Страницы с ассетами:
Для вдохновения: