Язык и платформа Java - различия

Важнейшая проблема, с которой мы начнем наш разговор, — это разница между языком Java и платформой Java. Это весьма важно понимать разницу  для будущих профессиональных программистов на языке Java, чтобы создавать гибкие, эффективные и элегантные приложения под базы данных Oracle. Удивительно, но разные авторы по-разному определяют и феномен языка, и феномен платформы. Из-за этого может возникать неясность и некоторая путаница и в том, чем отличаются язык и платформа, и в том, к чему относятся те или иные программные функции, используемые в коде приложения.

Четко очертим эти различия прямо сейчас, так как эта разница затрагивает суть самых разных тем программирования. Итак, вот эти определения.

  • Язык Java — это статически типизированный объектно-ориентированный язык, над которым мы немного пошутили в разделе «Об этой книге». Надеемся, что вы уже довольно хорошо знакомы с ним. Одно из самых очевидных качеств языка Java заключается в том, что он пригоден для чтения человеком (или, по крайней мере, должен таким быть!).
  • Платформа Java — это программное обеспечение, предоставляющее нам среду времени исполнения. Это виртуальная машина Java (JVM), линкующая и выполняющая ваш код в том виде, в каком он ей предоставляется. Код предоставляется в виде файлов классов, непригодных для чтения человеком. Иными словами, машина не интерпретирует непосредственно файлы с исходным кодом на языке Java, а требует предварительного преобразования этого кода в файлы классов.

Одна из основных причин успеха  Java как системы ПО заключается в ее стандартизации. Это означает, что Java имеет спецификации, описывающие, как должна работать платформа. Стандартизация позволяет различным производителям и участникам разнообразных проектов создавать реализации, которые теоретически должны работать одинаково. Такие спецификации не гарантируют, насколько высока будет производительность конкретной реализации одной конкретной задачи, но вполне гарантируют правильность результатов.

Существует несколько отдельных спецификаций, управляющих системой Java. Самые важные из них — это спецификация языка Java (JLS) и спецификация виртуальной машины Java (VMSpec). В версии Java 7 это разделение соблюдается очень строго; на самом деле VMSpec уже нигде не ссылается на JLS. Если вы усматриваете в этом признак того, насколько серьезно в Java 7 поставлена работа с исходными языками, не являющимися Java, то нам нравится ход ваших мыслей, продолжайте в том же духе. Ниже мы подробнее обсудим разницу между двумя этими спецификациями.

При внимательном изучении такого дуализма напрашивается вопрос: «А какова же связь между языком и платформой?» Если в Java 7 они настолько разделены, то как они стыкуются и образуют общую систему Java?

Связь между языком и платформой заключается в совместном использовании файлов классов (файлов в формате .class). Рекомендуем серьезно изучить определение файлов классов. Эти сведения вам точно не помешают, а знание этой темы — один из способов, позволяющих хорошему Java-программисту стать выдающимся. На рис. 1. показан полный процесс создания и использования кода Java.

Язык и платформа Java - создание программы

Рис. 1. Исходный код Java преобразуется в файлы .class, затем с ним производятся манипуляции в период загрузки, после чего он подвергается динамической компиляции

Как понятно из рисунка, код Java начинается в виде исходного кода, написанного программистом и пригодного для чтения человеком. После этого javac компилирует его в файл .class. Затем эта информация загружается в виртуальную машину Java. Обратите внимание, что манипуляции с классами и их изменение зачастую осуществляются в ходе процесса загрузки. Многие популярные фреймворки (особенно те, в названии которых присутствует слово Enterprise) преобразуют классы в ходе загрузки.

Итак, когда мы немного разъяснили разницу между языком и платформой Java, поговорим о некоторых заметных изменениях синтаксиса языка, появившихся в Java 7. Начнем с небольших синтаксических перемен, объединенных в рамках проекта «Монета». Данный пример будет поучительным для программистов, которые стремятся создавать эффективные программы под СУБД Oracle.

 

Вас заинтересует / Intresting for you:

Oracle IDE: JDeveloper, SQL De...
Oracle IDE: JDeveloper, SQL De... 4540 просмотров Ольга Потемкина Tue, 21 Nov 2017, 13:18:46
Oracle и Java: использование P...
Oracle и Java: использование P... 5771 просмотров sepia Tue, 08 May 2018, 08:52:34
Oracle Text и PL/SQL: многоязы...
Oracle Text и PL/SQL: многоязы... 3497 просмотров Максим Николенко Fri, 18 Oct 2019, 12:41:03
Apex Oracle обучающий видеокур...
Apex Oracle обучающий видеокур... 8818 просмотров Дэн Sun, 05 Aug 2018, 16:36:33
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #8045 7 года 2 мес. назад
"предоставляющее нам среду времени исполнения"
Эка загнул! Ну в целом толково все объясняешь. Спсб!