1.Введение в Java.
1.1 Небольшая история Java.
Java - это язык программирования, созданный Джеймсом Гослингом из компании Sun Microsystems (Sun) в 1991 году. Цель Java - написать программу один раз и затем запустить ее на нескольких операционных системах. Первая общедоступная версия Java (Java 1.0) была выпущена в 1995 году. В 2010 году Sun Microsystems была приобретена корпорацией Oracle. Теперь Oracle является главным разработчиком Java. В 2006 году Sun начала предоставлять Java под лицензией GNU General Public License (GPL). Oracle продолжает этот проект под названием OpenJDK.
Новые версии Java теперь выходят каждые 6 месяцев. Следовательно, Java 17 была выпущена в сентябре 2021 года, Java 18 - запланированная на март 2022 года и так далее. В прошлом циклы выпуска Java были намного длиннее, до 3-5 лет.
Java определяется спецификацией и состоит из языка программирования, компилятора, основных библиотек и среды выполнения (виртуальной машины Java). Среда выполнения Java позволяет разработчикам программного обеспечения писать программный код на других языках, кроме языка программирования Java, который по-прежнему работает на виртуальной машине Java. Платформа Java обычно ассоциируется с виртуальной машиной Java и библиотеками ядра Java.
Язык Java был разработан со следующими свойствами:
Независимость от платформы: Программы Java используют виртуальную машину Java в качестве абстракции и не обращаются напрямую к операционной системе. Это делает программы Java очень переносимыми. Программа Java (которая соответствует стандартам и следует определенным правилам) может работать без изменений на всех поддерживаемых платформах, например, Windows или Linux.
Объектно-ориентированный язык программирования: За исключением примитивных типов данных, все элементы в Java являются объектами.
Сильно типизированный язык программирования: Java является сильно типизированным, например, типы используемых переменных должны быть заранее определены, а преобразование в другие объекты является относительно строгим, например, в большинстве случаев должно выполняться программистом.
Интерпретируемый и компилируемый язык: Исходный код Java переводится в формат байткода, который не зависит от целевой платформы. Эти инструкции байткода будут интерпретированы виртуальной машиной Java (JVM). JVM содержит так называемый Hotspot-компилятор, который переводит критические для производительности инструкции байткода в инструкции родного кода.
Автоматическое управление памятью: Java управляет распределением и деаллокацией памяти для создания новых объектов. Программа не имеет прямого доступа к памяти. Так называемый сборщик мусора автоматически удаляет объекты, на которые не существует активного указателя.
1.2 Hello, world! Первая программа.
Так выглядит наш первый написанный код. При запуске кода, в консоли, нам будет выведена команда "Hello World".
Виртуальная машина Java (JVM) - это программная реализация компьютера, который выполняет программы, как настоящая машина.
Виртуальная машина Java пишется специально для конкретной операционной системы, например, для Linux требуется специальная реализация, как и для Windows. Java-программы компилируются компилятором Java в байткод. Виртуальная машина Java интерпретирует этот байткод и выполняет Java-программу.
1.3. Java Runtime Environment vs. Java Development Kit
Дистрибутив Java обычно поставляется в двух вариантах: Java Runtime Environment (JRE) и Java Development Kit (JDK).
JRE состоит из JVM и библиотек классов Java. Они содержат необходимые функции для запуска Java-программ.
JDK дополнительно содержит инструменты разработки, необходимые для создания Java-программ. Таким образом, JDK состоит из компилятора Java, виртуальной машины Java и библиотек классов Java.
1.4 Процесс разработки на Java
Исходные файлы Java записываются как обычные текстовые документы. Программист обычно пишет исходный код Java в интегрированной среде разработки (IDE) для программирования. IDE поддерживает программиста в написании кода, например, обеспечивает авто форматирование исходного кода, подсветку важных ключевых слов и т.д.
В определенный момент программист (или IDE) вызывает компилятор Java ( javac ). Компилятор Java создает инструкции байткода. Эти инструкции хранятся в файлах .class и могут быть выполнены виртуальной машиной Java.
JVM (виртуальная машина Java) автоматически пересобирает память, на которую не ссылаются другие объекты. Сборщик мусора Java проверяет все ссылки на объекты и находит объекты, которые могут быть автоматически освобождены.
Хотя сборщик мусора освобождает программиста от необходимости явного управления памятью, программист все равно должен убедиться, что он не хранит ненужные ссылки на объекты, иначе сборщик мусора не сможет освободить связанную память. Сохранение ненужных ссылок на объекты обычно называется утечкой памяти.
2. Установка Java
Если ваша установка требует установки среды выполнения Java, убедитесь, что вы установили последний долгосрочный выпуск Java. На момент написания данной статьи это Java 17. Более поздние версии Java также можно использовать.
2.1 Проверка установки
Чтобы запускать программы Java:
должна быть установлена среда выполнения Java(то место где мы можем написать код) (JRE)
исполняемые файлы Java должны быть доступны в вашем окружении.
Проверить правильность установки JRE можно с помощью консоли. Чтобы открыть консоль в Windows: Win+R, введите cmd и нажмите Enter). Теперь введите следующую команду:
java -version
Если JRE установлена правильно, эта команда выводит информацию об установке Java. В этом случае вы можете пропустить описание установки Java.
Если командная строка возвращает информацию о том, что программа не может быть найдена, вам необходимо установить Java.
Установка
Java runtime предоставляется несколькими поставщиками, одним из источников Java runtime является https://adoptium.net/. Он содержит инструкции по установке Java для всех поддерживаемых платформ. Для платформ Windows и Mac вы также найдете родной установщик softare.
3. Упражнение: Написать, скомпилировать и запустить программу на Java
3.1. Пишем исходный код.
Следующая Java-программа разработана под Linux с использованием текстового редактора и командной строки. Процесс в других операционных системах должен быть аналогичным, но не рассматривается в данном описании.
Выберите или создайте новый каталог, который будет использоваться для разработки Java. В данном описании используется путь \home\vogella\javastarter. В Microsoft Windows вы можете использовать c:\temp\javastarter. В следующем описании этот путь называется javadir.
Откройте текстовый редактор, поддерживающий обычный текст, например, gedit в Linux или Notepad в Windows, и напишите следующий исходный код.
3.2. Скомпилируйте и запустите свою программу на Java
Перейдите в каталог javadir с помощью команды cd javadir, например, в приведенном выше примере через команду cd \home\vogella\javastarter. Используйте команду ls (dir в Microsoft Windows), чтобы убедиться, что исходный файл находится в каталоге.
Скомпилируйте исходный файл Java в файл класса с помощью следующей команды - javac HelloWorld.java
После этого снова перечислите содержимое каталога с помощью команды ls или dir. Теперь в каталоге содержится файл HelloWorld.class. Если вы видите этот файл, значит, вы успешно скомпилировали свой первый исходный код Java в байткод.
Теперь вы можете запустить скомпилированную Java-программу. Убедитесь, что вы все еще находитесь в каталоге jardir, и введите следующую команду для запуска вашей Java-программы.
java HelloWorld
Система должна написать "Hello World" в командной строке.
3.3 Используем пути классов
Вы можете использовать classpath для запуска программы из другого места в вашем каталоге.
Переключитесь на командную строку, например, в Windows Start Run cmd. Переключитесь на любой каталог, который вам нужен. Введите:
java HelloWorld
Если вы находитесь не в той директории, в которой хранится скомпилированный класс, то система выдаст сообщение об ошибке: Exception in thread "main" java.lang.NoClassDefFoundError: test/TestClass
Чтобы использовать класс, введите следующую команду. Замените "mydirectory" на каталог, содержащий каталог test. Вы снова должны увидеть вывод "HelloWorld".
Заключение
Друзья, всем спасибо, что дочитали данную статью до конца. В следующей статье, разберём переменные, что это такое и как их использовать и приступим к практике.
Жду ваших вопросов в комментариях! Подписывайтесь, на мой канал, если желаете освоить новую профессию или для общего развития узнать что-то новое.
Целью является написать вводный курс для новичков Java и выйти на IT профессию Java Junior. обучение займёт около 7-8 месяцев. Буду стараться выкладывать статью каждый день. Прошу заметить, это была лишь вводная статья, обсудили историю, посмотрели как выглядит код, на следующей статье уже приступим к практике!