В этом руководстве для начинающих вы узнаете, что Java является современным, объектно-ориентированным, поддерживающим принцип WORA(писать один раз, запускать где угодно) языком.
- Что такое язык программирования Java
- История Java
- Особенности Java
- Автоматический Сбор Мусора
- Программа Java Hello World
Что такое язык программирования Java
Java — это универсальный язык компьютерного программирования, который является параллельным, основанным на классах, объектно-ориентированным и специально разработан для того, чтобы иметь как можно меньше зависимостей от реализации. Он предназначен для того, чтобы позволить разработчикам приложений “писать один раз, запускать где угодно” (WORA), что означает, что скомпилированный Java-код может выполняться на всех платформах, поддерживающих Java, без необходимости перекомпиляции.
Например, мы можем написать и скомпилировать Java-программу в UNIX и запустить ее на компьютерах Microsoft Windows, Macintosh или UNIX без каких-либо изменений исходного кода.
WORA достигается путем компиляции программы Java на промежуточный язык, называемый байт-кодом. Формат байт-кода не зависит от платформы. Виртуальная машина, называемая виртуальной машиной Java (JVM), используется для запуска байт-кода на каждой платформе.
История Java
Java была первоначально разработана Джеймсом Гослингом в Sun Microsystems (которая впоследствии была приобретена корпорацией Oracle) и выпущена в 1995 году в качестве основного компонента Java-платформы Sun Microsystems. Язык заимствует большую часть своего синтаксиса из C и C++, но у него меньше низкоуровневых возможностей, чем у любого из них.
Корпорация Oracle является текущим владельцем официальной реализации платформы Java SE после приобретения Sun Microsystems 27 января 2010 года. Эта реализация основана на оригинальной реализации Java от Sun. Реализация Oracle доступна для Microsoft Windows, Mac OS X, Linux и Solaris.
Реализация Oracle упакована в два разных дистрибутива:
- Java Runtime Environment (JRE), которая содержит части платформы Java SE, необходимые для запуска программ Java, и предназначена для конечных пользователей.
- Java Development Kit (JDK), который предназначен для разработчиков программного обеспечения и включает в себя такие инструменты разработки, как компилятор Java, Javadoc, Jar и отладчик.
Особенности Java
Java обладает множеством функций. Некоторые из них уникальны для Java, а некоторые из них распространены среди других языков.
- Объектно-ориентированность – В Java все представлено в виде объектов. Объект — это своего рода оболочка, которая инкапсулирует данные и связанное с ними поведение.
Java обеспечивает поддержку всех основных объектно-ориентированных принципов, как это наблюдается в других объектно-ориентированных языках. - Независимость от платформы – программы, написанные на Java, сначала преобразуются в байт-код компилятором Java. Этот байт-код может быть запущен на любой машине, имеющей Java runtime environment (JRE). Это делает приложения Java независимыми от платформы. Это сильно отличается от приложений на C или C++, где программы компилируются в двоичные файлы, специфичные для ОС.
- Безопасность — приложения Java выполняются в среде Java runtime environment (JRE) практически без взаимодействия с системной ОС. Это делает Java более безопасным, чем другие языки.
- Многопоточность – Java поддерживает написание приложений, которые могут выполнять несколько задач в отдельных потоках. Все задачи выполняются с использованием метода временного среза потоков операционной системы. Например, приложение Java также обслуживает форму входа пользователя во время выполнения фоновых процессов.
- Высокая производительность — Java – это интерпретируемый язык, поэтому он никогда не может быть таким быстрым, как скомпилированный язык, такой как C или C++. Но Java обеспечивает высокую производительность при использовании компилятора just-in-time.
- Архитектура ОС нейтральна — компилятор Java генерирует файлы классов или байт–код, нейтральные к архитектуре ОС. Например, в программировании на языке Си тип данных int занимает 2 байта памяти для 32-разрядной архитектуры и 4 байта памяти для 64-разрядной архитектуры. Однако он занимает 4 байта памяти как для 32-, так и для 64-разрядных архитектур в Java.
Автоматический Сбор Мусора
Java использует автоматический сборщик мусора для управления памятью в жизненном цикле объекта. Программист определяет, когда создаются объекты, а среда выполнения Java отвечает за восстановление памяти, как только объекты перестают использоваться. Как только не остается никаких ссылок на объект, занятая память становится доступной для автоматического освобождения сборщиком мусора.
Что-то похожее на утечку памяти все еще может произойти, если код программиста содержит ссылку на объект, который больше не нужен, обычно, когда объекты, которые больше не нужны, хранятся в контейнерах, которые все еще используются. Если вызываются методы для несуществующего объекта, выдается исключение “NullPointerException”.
Сбор мусора может произойти в любое время. В идеале это будет происходить, когда программа находится в режиме ожидания. Он гарантированно срабатывает, если в куче недостаточно свободной памяти для выделения нового объекта; это может привести к мгновенной остановке программы. Явное управление памятью в Java невозможно.
Программа Hello World на Java
Традиционная программа “Привет, мир!” может быть написана на Java в виде:
Application.javapublic class Application
{
public static void main(String[] args)
{
// Prints Hello World! to the console.
System.out.println("Hello World!");
}
}
- Исходные файлы Java должны быть названы в честь содержащегося в них открытого класса с добавлением суффикса .java, например, Application.java .
- Сначала он должен быть скомпилирован в байт-код с помощью компилятора Java, создающего файл с именем Application.class . Только после этого он может быть выполнен или запущен.
- Исходный файл Java может содержать только один public класс, но он может содержать несколько классов с доступом, отличным от public, и любое количество public внутренних классов.
- Если исходный файл содержит несколько классов, сделайте один класс public и назовите исходный файл этим общедоступным именем класса.