Основы Java

В этом разделе рассматриваются фундаментальные основы объектно-ориентированного языка программирования Java. Java — так называют не только сам язык, но и платформу для создания и исполнения приложений на основе данного языка. Изначально язык назывался Oak («дуб») и разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения.

Назван этот язык в честь марки кофе Java, любимого некоторыми программистами, поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе.

В отношении произношения в русском языке, как и в ряде других, образовались две различные нормы — заимствованная англоязычная ('dʒɑːvə' - «джава») и традиционно-национальная «ява», соответствующая традиционному произношению названия острова Ява. Компания Sun придерживается англоязычного прозношения во всех странах мира. Иногда в обиходе используют также жаргонное слово «Жаба» (например, изображение жабы есть на календариках группы российских пользователей Java (Java Users Group).

Объектно-ориентированный язык программирования Java

Язык программирования Java был разработан компанией Sun Microsystems и является объектно-ориентированным. Исходный код приложения Java преобразуется компилятором javac в специальный байт-код для выполнения под управлением виртуальной Java машиной.

Виртуальная Java машина JVM (Java Virtual Machine) — это программа, которая обрабатывает байт-код и передает инструкции оборудованию как интерпретатор. Одним из основных достоинств данного способа выполнения программ является полная независимость от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина.

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

К недостаткам концепции использования виртуальной машины следут отнести снижение производительности, с которым борятся различными способами :

  • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы - JIT-технология;
  • широкого использования платформенно-ориентированного кода (native кода) в стандартных библиотеках, например SWT;
  • аппаратные средства, обеспечивающие ускоренную обработку байт-кода, например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM.

Версии Java

Java 1.0

Разработка Java началась в 1990 году. В 1996 году была выпущена первая официальная версия — Java 1.0.

Java 1.2

Обновлённая спецификация JDK 1.2 была разработана в 1998 году и вышла под наименованием Java 2. Язык практически не изменился, но платформа получила ряд дополнений:
  • библиотеку Swing для разработки пользовательского интерфейса;
  • набор коллекций;
  • поддержку файлов Policy и цифровых сертификатов пользователя;
  • библиотеку Accessibility;
  • Java 2D;
  • поддержку технологии drag-and-drop;
  • полную поддержку Unicode, включающую японский, китайский и корейский языки;
  • поддержку воспроизведения аудиофайлов нескольких форматов;
  • JIT-компилятор.

Java 5.0

В 2004 году вышла спецификация Java 5.0. C разработки данной версии была изменена официальная индексация; вместо Java 1.5 правильнее называть Java 5.0. Внутренняя же индексация Sun осталась без изменений — 1.x.

Минорные изменения включаются без изменения индексации. Для этого используется слово «Update», например, Java Development Kit 5.0 Update 25. Предполагается, что в обновления могут входить как исправления ошибок, так и небольшие добавления в API виртуальной машины JVM.

В версии Java 5.0 был внесен целый ряд принципиальных дополнений:

  • перечислимые типы enum;
  • аннотации — возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнения;
  • методы с неопределённым числом параметров;
  • разрешён импорт статических полей и методов;
  • в коллекции можно использовать Iterator объектов (foreach);
  • использование javadoc комментариев для автоматического оформления документации;
  • средства обобщённого программирования generics.

Java 6

В декабре 2006 года вышел очередной релиз Java 6. Вместе с этим релизом внесены изменения в официальную индексацию — вместо Java 6.0 версия значится как Java 6. Минорные изменения, как и в предыдущей версии, вносятся в обычные обновления версии, например, Java Standard Edition Development Kit 6 Update 25.

В версии Java 6 внесены следующие "замеченные" разработчиками основные изменения :

  • в коллекции (наборы данных) добавлены интерфейсы для организации очереди;
  • в Swing улучшена работоспособность OpenGL и DirectX;
  • добавлен GifWriter для работы с файлами .gif;
  • стали доступны классы-потоки для чтения и передачи сжатых данных, с возможностью передачи их по сети;
  • архивация - сняты ограничения на количество файлов в архиве (ранее 64 Кб), увеличена длина названия файла (ранее 256 символов)
  • сняты ограничения на количество одновременно открытых файлов (ранее было 2000).
  • организована система управления кэшем и добавлена поддержка параметра «no-cache» в HTTP-запросе;
  • наряду с уже существующими григорианским и буддийским календарями добавлена поддержка японского императорского календаря;
  • можно использовать Java HTTP Server для создания полноценного HTTP сервера с минимально необходимыми функциональными свойствами;
  • увеличена скорость вычислений и скорость операций ввода-вывода.

Java 7

Выпуск релиза версии Java 7 состоялся в июле 2011 года. К сожалению в финальную версию Java Standard Edition 7 не был включен ряд ранее запланированных изменений, которые было решено добавить в Java Standard Edition 8.

В новой версии, получившей название Java Standard Edition 7, помимо исправления ошибок, было представлено несколько новшеств:

  • добавлен новый работающий несколько быстрее верификатор типов, получивший название верификатор «проверяющего типы» (typechecking verifier);
  • в коллекции (наборы данных) добавлены интерфейсы для организации очереди;
  • модификация загрузчика классов (class-loader);
  • URLClassLoader - освобождение ресурсов, которые держит classloader, методом close();
  • JDBC обновлён до релиза 4.1, Rowset до версии 1.1;
  • добавлен новый look-and-feel следующего поколения;
  • nio.2 - новые интерфейсы для доступа к файловой системе, масштабироемого асинхронного IO-взаимодействия, полноценной работы с zip/jar архивами как с файловой системой;
  • поддержка версии Unicode 6.0;
  • generic - изменение вывода типа при создании объекта;
  • Locale - разделены локали пользователя и графического интерфейса; форматирование текста и отображение сообщения на экране имеют независимые "локали".

Java 8

Выпуск релиза версии Java 8 состоялся в марте 2014 года. Cписок нововведений:

  • Полноценная поддержка лямбда-выражений.
  • Ключевое слово default в интерфейсах для поддержки функциональности по умолчанию.
  • Ссылки на методы.
  • Функциональные интерфейсы (предикаты, поставщики и т. д.).
  • Потоки (stream) для работы с коллекциями.
  • Новое API для работы с датами.

Технологии Java

Существуют несколько основных семейств технологий Java:

ТехнологияОписание
Java SE — Java Standard Edition Основная технология Java, включающая компиляторы, API, Java Runtime Environment; используется для создания пользовательских настольных приложений (desktop).
Java EE — Java Enterprise Edition Технология создания программного обеспечения уровня предприятия. Используется для разработки WEB-приложений.
Java ME — Java Micro Edition Технология создания программ для устройств, ограниченных по вычислительной мощности, например, мобильных телефонов.
JavaFX Технология создания графических интерфейсов корпоративных приложений и бизнеса.
Java Card Технология создания программ для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом.

Android Development Tools, Java для Android

Java активно используется для создания мобильных приложений для операционной среды Android. При этом программы компилируются в нестандартный байт-код, для их использования в виртуальной машине Dalvik. Для такой компиляции используется дополнительный инструмент, разработанный компанией Google - Software Development Kit (SDK).

Также разработку приложений можно вести в Android Studio, NetBeans или Eclipse с использованием плагина Android Development Tools (ADT) или в IntelliJ IDEA. Версия JDK при этом должна быть не ниже 5.0.

  Рейтинг@Mail.ru