О технологии Java

Java позволяет писать множество типов программ: приложения, апплеты, сервлеты.

Есть 3 главные Java платформы для языка программирования Java:
  • Java SE (Standard Edition) - базовая функциональность. Документация по Java Standard Edition (SE).
  • Java EE (Enterprise Edition) - надмножество над Java SE, предназначена для разработки корпоративных приложений.
  • Java ME (Micro Edition) - подмножество Java SE, предназначена для разработки мобильные и встроенных приложений.
Каждая платформа предоставляет заточенные под железо/ОС JVM и API. Java программа разработанная под одну платформу, не обязательно будет работать на JVM другой Java платформы. JVM на которой запускается Java-программа должна быть совместимо с той JVM на которой эта программа разрабатывалась.

API и инструменты для разработки и запуска Java-приложений упакованы в так называемый  JDK. JVM и библиотеки среды исполнения также упакованы в отдельный JRE (Java Runtime Environment).

Java - строго статически типизированный язык. Компилятор гарантирует выполнимость кода в среде исполнения (runtime), если код скомпилировался без ошибок. Надежность (reliability) Java обеспечивается отсутствием указателей, проверкой индексов массивов и строк во время исполнения, автоматической сборка мусора. Обработка исключений без сомнений является главным фактором способствующим разработке устойчивых (robust) систем.

В языке Java много заимствовано из C++. Но в целях простоты, не стали заимствовать препроцессор, управление указателями, перегрузку операторов, множественное наследование классов. В Java предпочли автоматическую сборку мусора, проблемам ручного управления памятью, которые приводят к утечкам памяти. Несмотря на всё это, многим кажется, что вряд ли такие присутствующие в Java вещи как синтаксис вложенных классов или подстановочные знаки (wild cards) для универсальных шаблонов (generics) упрощают язык.

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

The Java ® Language Specification: Java SE 8 Edition

Основные положения Java:
  • Код в Java инкапсулируется в классы.
  • Есть 2 типа значений:
    • Объекты являющиеся экземплярами классов и массивов.
    • Атомарные значения примитивных типов данных.
  • Ссылки хранят ссылочные значения отсылающие к объектам. Ссылки используются для манипулирования объектами.
  • Объекты в Java не могут содержать другие объекты. Они могут только содержать ссылки на другие объекты.
  • Во время исполнения заботу о больше не используемых объектах берет на себя среда исполнения.

Java предоставляет многоуровневую защиту от вредоносного кода. Язык не допускает прямого доступа к памяти. Верификатор байт-кода проверяется на безопасность любой не доверенный код (untrusted code), который загружается в JVM. Модель песочницы используется для ограничения и исполнения любого не доверенного кода, тем самым сокращая урон, который может быть нанесен этим кодом.

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

Комментариев нет:

Отправить комментарий