Skip to main content

Java - Chapter One

3 votes

Прошу прощения за несоблюдение сроков публикации, я был слишком увлечён семинаром Smile

В этой главе я рассмотрю само явление Java как языка, краткую его историю, а также внутреннее устройство среды разработки.

Родина Java — компания Sun Microsystems. Началось всё с идеи использовать новый объектно-ориентированный язык Oak для написания приложений, работающих в только что появившемся браузером Mosaic, который был создан Марком Андерссеном и Эриком Бина, в Национальном центре применения суперкомпьютеров университета Иллинойса. Этот браузер стал первым браузером с GUI и работающим под Windows.

Mosaic

Позже Oak превратился из сырого ЯП в отдельный продукт, был написан Oak-компилятор и самостоятельный Oak-браузер WebRunner. В 1995-ом году компания Sun Microsystems решила представить свои наработки в одном целом под названием Java. WebRunner был переименован в HotJava. Вскоре компания Netscape Communications заявила о поддержке технологии java-апплетов её браузером Netscape Navigator (который использовал в качестве основы Mosaic).

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

За что же любят Java?

• Java похож на C, но проще, чем C++

• Java — архитектурно-нейтральная и переносимая платформа.
— Компилируется в код виртуальной машины (или байт-код).
— Следует концепции «Write once, run anywhere» — написал один раз — запускай, где хочешь.

• Java имеет неплохую производительность, что достигается импользованием трансляторов Just-In-Time (JIT, «непосредственно перед выполнением»).

• Java устойчив к ошибкам и защищен — встроенные возможности защищают локальную машину от «плохого» или ненадежного кода.

• Java поддерживает многопоточность, обеспечивает безопасность и др., что на
традиционных языках может быть выполнено только с привлечением сторонних инструментов.

Думаю, на этом с историей и кратким описанием платформы мы можем закончить и перейти к её строению.

Мы рассмотрим:

• Java как платформу
• Различные выпуски Java
• Виртуальную машину Java
• Хранение Java-классов в файловой системе
• Прочие мелочи и не очень мелочи, связанные с работой Java

Итак, Java как платформа включает в себя:

— Язык программирования
— Software Development Kit (SDK, набор средств разработки ПО)
— Runtime Environment (JRE, среда выполнения)
— Стандартные библиотеки в форме пакетов классов
— Ссылки на реализации

Так можно представить совокупность этих элементов:

Строение Java

Остановимся подробнее на Java Virtual Machine (JVM). Это основная часть всей среды (Runtime Environment), её задача — обеспечивать компиляцию байт-кода, который приходит от интерпретатора исходного кода javac, в машинный код для процессора. Последним занимаются Just-In-Time компиляторы. Как правило, это HotSpot от Sun Microsystems. Существуют также Ahead-Of-Time компиляторы, позволяющие разработчикам осуществить прекомпиляцию файлов классов в родной для конкретной платформы код.

В целом процесс выполнения кода выглядит так:

Процесс исполнения

Как и большинство виртуальных машин, Java Virtual Machine имеет stack-ориентированную архитектуру, свойственную микроконтроллерам и микропроцессорам.

Именно при помощи JVM Java защищает операционную систему
от возможного вреда неизвестных Java-программ, то есть эту виртуальную машину можно смело назвать Java-песочницей.

Динамическая загрузка классов в JVM

Все программы на Java состоят из классов, которые хранят исходный код. О классах я напишу в следующей главе.

Пример

Так как в виртуальной машине компилятор работают по принципу JIT, классы загружаются не все сразу, а по мере надобности, динамически. Это позволяет весьма эффективно управлять используемой памятью. Также требуется вовремя выгружать ненужные объекты. Объект считается ненужным, когда на него не ссылаются какие-либо указатели. Это получило название «Сборка мусора», Garbage Collection. Шикарная статья, целиком и полностью посвящённая Garbage Collection, есть на Хабре.

Выпуски Java-платформы

Java Standard Edition (SE, стандартный выпуск)
—Платформа для разработки и выполнения Java-приложений.
—Включает доступ к базам данных, технологию CORBA-интерфейсов, защиту в локальной сети и в Интернете.
—SE — основная платформа Java-технологии.
—Используется для автономных Java-приложений и апплетов.

Java Enterprise Edition (EE, корпоративный выпуск)
—Платформа для разработки, развертывания и управления многоуровневыми, сервис-центричными приложениями в масштабе предприятия.
—Основывается на API стандартного выпуска (SE).
—Включает распределенную связь, сквозной контроль, масштабируемую архитектуру и управление транзакциями.

Java Micro Edition (ME, микровыпуск)
—Предназначен для встроенных устройств и бытовых товаров.

Принципы хранения классов Java в файловой системе

• Java-класс должен постоянно храниться в файле с таким же именем, как у класса.

• Каждый файл содержит только один класс, за исключением, например, исходного кода private-класса, который используется только одним public-классом, и может быть сохранён в том же файле.

• Классы почти всегда сгруппированы в пакеты.

• Все классы одного пакета должны постоянно храниться в такой же папке. Имя пакета дает путь к файлу.

• Также классы пакета могут быть упакованными в сжатом архиве, называемом JAR-файлом, с расширением *.jar (Конечно, внутри JAR-файла имена должны быть правильными).

• Имена файлов на всех платформах чувствительны к регистру.

Взаимодействие Java-приложений с окружающей средой

• В Java SE ввод и вывод может осуществляться через:
— Консоль ввода/вывода (командную строку)
— Графический интерфейс пользователя (GUI — Graphical User Interface)
— Файлы и другие ресурсы системы
— Базы данных
— Сеть

• Безопасность в Java SE может конфигурировать «песочницу» для защиты локальной среды выполнения.

• Java SE обычно используется для автономных программ. Программы Java SE могут быть распределены по сети и отправлять сообщения друг другу через удаленный вызов методов.

Апплеты — специальные классы, предназначенные для внедрения в Web-страницы и запуска Web-браузерами:
— Запускаются в «песочнице» для защиты локальной станции, на
которой находится браузер.
— Могут взаимодействовать и со средой браузера, и с
пользователем.

Итог

Сейчас мы имеем высокоразвитую, поддерживаемую и широко признанную платформу для разработки. На Java можно писать почти всё, что угодно — от простых браузерных приложений до игр (например, хорошо всем известный Minecraft написан на Java). Что немаловажно, на Java-программистов спрос очень немаленький, и падать пока не собирается.

Внутренние особенности языка и среды сделали Java неповторимой.

Ответы

Алексей Пименов посоветовал рассмотреть инструменты для сборки проектов Ant и Maven, а также определиться с областью разработки.

Я обязательно расскажу об Ant и Maven, но позже, на том этапе, когда будет, что собирать Smile
Что касается области разработки, то это будут прежде всего десктопные приложения.

venzel

Вот, пожалуй, и всё, что я хотел рассказать в первой главе. В следующих главах я расскажу про типы данных, операторы, и, наконец, про классы. До следующей главы! Smile [Следующая глава: тыц!, станет кликабельно, когда напишу.]

При написании статьи были использованы следующие материалы:
Безымянная методичка из МИРЭА — "Обзор Java-технологии, раздел 7".
Картузов А.В. — "Программирование на языке JAVA".
Википедия.


Для форматирования текста в адекватный вид — "Типограф" Студии Артемия Лебедева.

Аватар пользователя kirill_zhelyabin

Прочитав статью, понял что я хочу изучать java. 2 статью жду с нетерпением!!

Аватар пользователя Бакина Маргарита

Денис, ты молодчина! Последовательно, интересно...твой пост увлекает и мотивирует Smile спасибо!