Java platform что это - IT Новости
Microclimate.su

IT Новости
31 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java platform что это

Платформа Java — виртуальная машина Java, как и зачем она используется

Java переводится как «кофе». Почему же так назвали серьёзный язык программирования? Да просто потому что программисты-разработчики очень любили кофе!

Целью разработчиков было создать инструмент позволяющий писать код, который будет полностью переносимым (кроссплатформенным) и в то же время эффективным, стабильным и будет быстро выполняться.

Java Virtual Machine или JVM — это программа, являющаяся прослойкой между операционной системой и Java программой.

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

Другие достижения разработчиков

  • Разработчики достигли значительного сокращения времени на создание сложных программ, благодаря читаемому и понятному коду, синтаксис которого похож на C/C++.
  • Предотвращение несанкционированного выполнения вредоносного кода за счёт системы безопасности.
  • Добились элегантного решения таких сложных задач как многопоточность, сетевое взаимодействие, создание распределённых приложений, работа с потоками данных, предотвращение утечки памяти, перехватывание и обработка ошибок и исключений.
  • Была разработана технология апплетов — динамически загружаемых программ, которые работают в среде веб браузера и позволяют вносить интерактивность в веб страницы.
  • Разработана технология WEB-start, предоставляющая возможность запускать программу онлайн, кликом по ссылке на веб странице. При этом программа загружается, кэшируется и запускается, не требуется процесс установки и обновления подобного программного обеспечения, также достигается кроссплатформенность.
  • И, наконец, была разработана платформа JavaFX, она основана на Java и используется для быстрого создания замечательных приложений с современным пользовательским интерфейсом. Эта технология также используется для запуска и разработки RIA — Rich Internet Applications, для создания программного обеспечения по работе с мультимедиа и для программирования на языке JavaFX Script.

Разделение платформы на три составляющие

  • Java Standard Edition (Java SE) — кроме JVM, предоставляет набор библиотек для создания десктоп приложений, как консольных, так и оконных с продвинутым пользовательским интерфейсом.
  • Java Enterprise Edition (Java EE) — надстройка над Java SE, предоставляет набор библиотек для создания web приложений, от обычных сайтов, до сложнейших корпоративных веб приложений.
  • Java Micro Edition (Java ME) — вариант виртуальной машины, оптимизированной для работы на портативных устройствах — карманных компьютерах и мобильных телефонах.

В настоящее время платформа Java EE является лучшей основой для создания корпоративных (enterprise) приложений.

Что предлагает нам установка Java платформы

  • Java Runtime — среда выполнения, обеспечивается виртуальной машиной.
  • Инструменты для разработки — компилятор, отладчик, инструмент для создания документации.
  • API — Application Programming Interface, обширный набор готовых библиотек для решения типичных и нетипичных задач.

Как работают Java программы

  • Программист создаёт файл с расширением JAVA и помещает в него исходный код программы.
  • С помощью компилятора на основании исходного кода создаётся файл с расширением CLASS, в него компилятор помещает байтовый код программы — команды для виртуальной машины.
  • При запуске программы загружается и выполняется файл с байт-кодом.

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

Java platform что это

Актуальная версия Java EE имеет номер 6.0.

При переходе на версию 5.0 изменилось и название спецификации с J2EE [ ˌdʒeɪˈtuː ˌiːˈiː ] (Java 2 Platform, Enterprise Edition), на Java Platform, Enterprise Edition, сокращённо Java EE [ ˈdʒɑːvə ˌiːˈiː ].

ВерсияПолное имяДата публикации
1.0Java 2 Platform Enterprise Edition, v 1.0декабрь 1999
1.2Java 2 Platform Enterprise Edition, v 1.22000
1.2.1Java 2 Platform Enterprise Edition, v 1.2.123 мая 2000
1.3Java 2 Platform Enterprise Edition, v 1.324 сентября 2001
1.4Java 2 Platform Enterprise Edition, v 1.424 ноября 2003
5.0Java Platform, Enterprise Edition, v 511 мая 2006
6.0Java Platform, Enterprise Edition, v 66 декабря 2009

Технологии

Java EE включает в себя стандарты следующих технологий:

  • Веб-сервис
  • Сервлет ( javax.servlet и javax.servlet.http )
  • Java Server Pages
  • Enterprise JavaBean ( javax.ejb.* )
  • J2EE Connector
  • Java Message Service ( javax.jms.* )
  • Интерфейс для обработки XML
  • Java Authorization Contract for Containers
  • JavaServer Faces ( javax.faces.component.html )
  • Java Persistence API ( javax.persistence )
  • Другие технологии, полезные для разработки бизнес-приложений.

Сервер приложений

Сервер приложений J2EE (часто называемый J2EE-контейнер) — это реализация системы в соответствии со спецификацией J2EE, обеспечивающая работу модулей с логикой конкретного приложения. Включает в себя как минимум следующие сервисы:

  • EJB-контейнер, который поддерживает автоматическую синхронизацию Java объектов с базой данных (CMP — container managed persistence, BMP — bean managed persistence);
  • JMS — сервис доставки сообщений между компонентами и серверами;
  • управление ресурсами (доступ к СУБД, файловой системе, почтовому серверу и т. д.);
  • безопасность и защита данных;
  • поддержка транзакций (в том числе и распределённых, двухфазных). См. Java Transaction API.
  • веб-сервер и сервлет-сервер;
  • поддержка веб-сервисов.
  • JSF
Читать еще:  Как восстановить ворд с помощью панели управления

Разработчики J2EE-приложений также пишут свои программы в соответствии с спецификациями J2EE, что обеспечивает их работу внутри таких серверов.

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

Open Source серверы

  • Apache Geronimo (использует Apache Tomcat или Jetty)
  • Enhydra Enterprise (использует Apache Tomcat)
  • GlassFish (использует Apache Tomcat)
  • JBoss Application Server (Apache Tomcat optional)
  • JOnAS (использует Apache Tomcat)
  • Resin (собственный Servlet и EJB контейнеры)
  • Sun Java System Application Server (Референц имплементация на основе GlassFish)

Коммерческие серверы

  • ATG Dynamo Application Server (DAS)
  • IBM WebSphere
  • SAP NetWeaver Application Server
  • Oracle WebLogic (BEA)
  • Oracle Application Server
  • Orion Application Server
  • Borland Application Server

Отдельные Servlet/JSP Контейнеры

  • Apache Tomcat — Open Source
  • Caucho Technology Resin — Open Source
  • Enhydra Server — Open Source
  • Jetty — Open Source

Отдельные EJB Контейнеры

  • Apache OpenEJB — Open Source

См. также

Ссылки

Литература

  • Браун К.; Крейг Г.; Хестер Г. и др. Создание корпоративных Java-приложений для IBM WebSphere. — Кудиц-Образ, 2005. — С. 860. — ISBN 5-9579-0061-3, 0-321-18579-X

Конкурирующие технологии

В отличие от Microsoft .NET, J2EE является не продуктом, а набором спецификаций, реализации которых на данный момент существуют от SUN, IBM, Oracle, BEA и других компаний. Microsoft .NET является более закрытым продуктом. В случае технологий J2EE, заказчик получает бо́льшую защиту своих инвестиций: если один из вендоров обанкротился или продукты, реализующие J2EE не удовлетворяют заказчика, то несложно перейти на J2EE продукты другого вендора. Кроме того, для J2EE разработок можно использовать полностью свободное программное обеспечение.

Язык и платформа 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, то нам нравится ход ваших мыслей, продолжайте в том же духе. Ниже мы подробнее обсудим разницу между двумя этими спецификациями.

Читать еще:  Для входа необходимо включить javascript skype

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

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

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

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

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

Что такое Java и зачем он нужен

Про­грам­ми­сты Java ценят­ся, они дела­ют слож­ные про­ек­ты, осо­бен­но их любят в сре­де раз­ра­бот­ки под Android и в раз­лич­ных кор­по­ра­тив­ных сфе­рах. Вот что это за язык и поче­му его сто­ит изу­чать.

  • Мно­го­плат­фор­мен­ность. Рабо­та­ет на огром­ном коли­че­стве опе­ра­ци­о­нок и желе­за.
  • ООП. Для тех, кто любит чёт­кие струк­ту­ры и раз­гра­ни­че­ние дан­ных.
  • Боль­шое сооб­ще­ство и мно­го уже напи­сан­но­го кода. Нет про­блем с рабо­той и с гото­вы­ми реше­ни­я­ми.

Мину­сы — тоже крат­ко:

  • Не хва­та­ет ско­ро­сти. Ино­гда это кри­тич­но.
  • Мно­го­слов­ный код. Там, где С++ исполь­зу­ет одну коман­ду, Java тре­бу­ет пять.

Виртуальная машина

Допу­стим, у нас есть некий код на язы­ке Java. Пока неваж­но, что там за син­так­сис, как устро­е­ны клас­сы и т. д. Про­сто код. Как его испол­нить?

Если бы это был язык типа C++, нам нуж­но было бы ском­пи­ли­ро­вать его под тре­бу­е­мое желе­зо или опе­ра­ци­он­ную систе­му. Ском­пи­ли­ро­вать — то есть пре­об­ра­зо­вать понят­ный нам код в понят­ные про­цес­со­ру инструк­ции. Так как про­цес­со­ров мно­го, ком­пи­ли­ро­вать нуж­но будет по-разному. Плюс в раз­ных опе­ра­ци­он­ных систе­мах по-разному устро­е­ны ком­по­нен­ты, кноп­ки, рабо­та с сетью и т. д. Перед ком­пи­ля­ци­ей про­грам­му нуж­но будет допи­лить под эти осо­бен­но­сти.

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

Спе­ци­аль­но для про­грам­ми­стов: мы наме­рен­но упро­сти­ли прин­ци­пы рабо­ты JRE и JVM и не гово­рим про байт-код, ком­пи­ля­цию и про­чее. Вме­сто это­го мы сосре­до­то­чи­лись на прин­ци­пах, кото­рые помо­га­ют понять саму суть рабо­ты Java. Если вам кажет­ся, что из-за про­сто­ты мы не опи­са­ли что-то важ­ное — рас­ска­жи­те об этом в ком­мен­та­ри­ях.

Где можно запускать Java-код

Поэто­му запус­кать код на Java мож­но вез­де, для чего уже была раз­ра­бо­та­на JVM, то есть вир­ту­аль­ная маши­на Java. Напри­мер:

  • уль­тра­мощ­ные сер­ве­ры,
  • ком­пью­те­ры,
  • смарт­фо­ны,
  • кно­поч­ные теле­фо­ны,
  • робо­ты и мик­ро­кон­трол­ле­ры типа Arduino, Raspberry Pi и мно­гих дру­гих,
  • фитнес-браслеты,
  • GPS-трекеры,
  • умные часы,
  • умные теле­ви­зо­ры, холо­диль­ни­ки, мик­ро­вол­нов­ки, чай­ни­ки и про­чие домаш­ние гад­же­ты,
  • смарт-карты для досту­па в поме­ще­ния.

Пред­ставь­те такую ситу­а­цию: вы напи­са­ли Java-программу, кото­рая сле­дит за сво­бод­ным местом на дис­ке, и как толь­ко его ста­но­вит­ся мень­ше 20% — выво­дит сооб­ще­ние, мол, уда­ли ненуж­ные фай­лы. Теперь вы може­те запу­стить эту про­грам­му вез­де, где есть JVM. Она сама раз­бе­рёт­ся с кодом, пой­мёт, для како­го про­цес­со­ра она это дела­ет, и запу­стит вашу про­грам­му. В резуль­та­те один и тот же код будет сле­дить за сво­бод­ным местом на ком­пью­те­ре, кно­поч­ном теле­фоне, смарт­фоне, план­ше­те, умной мик­ро­вол­нов­ке или домаш­ней сиг­на­ли­за­ции.

Читать еще:  Как восстановить word с помощью панели управления

Преимущества Java-программирования

Неза­ви­си­мость от архи­тек­ту­ры и плат­фор­мы. Вы пише­те код, не заду­мы­ва­ясь об осо­бен­но­стях опе­ра­ци­он­ной систе­мы или про­цес­со­ра. Всё это берёт на себя вир­ту­аль­ная маши­на, а вы толь­ко пише­те логи­ку рабо­ты.

Объектно-ориентированное про­грам­ми­ро­ва­ние. ООП — это совре­мен­ный стан­дарт про­грам­ми­ро­ва­ния в ком­мер­че­ских и про­мыш­лен­ных систе­мах. В слу­чае с Java это полу­чит­ся само собой: дело в том, что, как и Ruby, Java — чистый ООП-язык. В нём даже функ­ции пре­вра­ти­лись в мето­ды и могут суще­ство­вать толь­ко внут­ри клас­са.

Рабо­та с памя­тью. Про­грам­ми­сту не нуж­но сле­дить за тем, сколь­ко памя­ти рас­хо­ду­ет его про­грам­ма и как её осво­бо­дить, когда какая-то пере­мен­ная боль­ше не нуж­на. Для это­го в Java встро­е­но авто­ма­ти­че­ское управ­ле­ние памя­тью: Java не допус­ка­ет её уте­чек и раз­рас­та­ния объ­ё­ма, а после завер­ше­ния про­грам­мы осво­бож­да­ет все ресур­сы.

Без­опас­ность. Вир­ту­аль­ная маши­на сама сле­дит за тем, что­бы про­грам­ма не полу­чи­ла доступ к тому, что выхо­дит за её пол­но­мо­чия. Напри­мер, Java-программа не смо­жет про­чи­тать содер­жи­мое осталь­ной опе­ра­тив­ной памя­ти или свя­зать­ся с дру­гим ком­пью­те­ром, если это не преду­смот­ре­но изна­чаль­ны­ми пра­ва­ми досту­па.

Боль­шое сооб­ще­ство и под­держ­ка. Java — тре­тий по попу­ляр­но­сти язык про­грам­ми­ро­ва­ния в мире. В Сети есть тыся­чи сай­тов, кото­рые рас­ска­зы­ва­ют об этом язы­ке, помо­га­ют разо­брать­ся в коде или содер­жат гото­вые реше­ния.

Стан­дарт в кор­по­ра­тив­ном про­грам­ми­ро­ва­нии. Боль­шим ком­па­ни­ям в про­грам­мах нуж­на надёж­ность, ста­биль­ность рабо­ты и воз­мож­ность под­дер­жи­вать их дол­гое вре­мя. Соче­та­ние ООП, управ­ле­ния памя­тью и неза­ви­си­мо­сти от архи­тек­ту­ры дела­ет Java иде­аль­ным реше­ни­ем для это­го.

Недостатки Java

Всё это зву­чит хоро­шо, но есть у Java и недо­стат­ки, весь­ма суще­ствен­ные.

Не самая высо­кая про­из­во­ди­тель­ность. У С и С++ есть толь­ко ком­пи­ля­тор, кото­рый пере­во­дит про­грам­му в машин­ный код. У Java тако­го нет, и всё дела­ет вир­ту­аль­ная маши­на. Полу­ча­ет­ся, что для выпол­не­ния Java-кода нуж­но делать двой­ную рабо­ту: про­цес­сор запус­ка­ет JVM, а JVM выпол­ня­ет сам код. Из-за тако­го под­хо­да Java-программы в полтора-два раза мед­лен­нее, чем тот же код, напи­сан­ный на С++.

Плат­ная лицен­зия. С 2019 года ком­па­ния Oracle, кото­рая вла­де­ет лицен­зи­ей на Java, раз­де­ли­ла её на две части: плат­ную и бес­плат­ную. Если вам нуж­на дол­гая под­держ­ка сре­ды раз­ра­бот­ки и ста­биль­ная рабо­та про­грамм — бери­те плат­ную лицен­зию, ино­гда ста­биль­ность важ­нее. Если вам не нуж­на под­держ­ка и вы може­те уста­но­вить каж­дую новую бес­плат­ную сбор­ку само­сто­я­тель­но — отда­вать день­ги не нуж­но.

Гро­мозд­кий код. Раз­ра­бот­чи­ки Java ста­ви­ли сво­ей целью упро­стить про­грам­ми­ро­ва­ние на С++, и им это уда­лось. Цена, кото­рую при­шлось за это запла­тить, — боль­шие и длин­ные кон­струк­ции в язы­ке, кото­рые часто меша­ют пони­ма­нию сути того, что про­ис­хо­дит. Срав­ни­те код, кото­рый рису­ет пира­мид­ку из звёз­до­чек, на Java и Python:

Кто и для чего использует Java

Для нача­ла — спи­сок ком­па­ний и тех­но­ло­гий, кото­рые исполь­зу­ют Java в каче­стве основ­но­го язы­ка про­грам­ми­ро­ва­ния:

  • Amazon,
  • LinkedIn,
  • eBay,
  • Yahoo!
  • OpenOffice,
  • IBM, Intel и Oracle.

Раз­ра­бот­ка под Android. Java до сих пор оста­ёт­ся основ­ным язы­ком мобиль­ной раз­ра­бот­ки для этой опе­ра­ци­он­ной систе­мы, несмот­ря на рас­ту­щую попу­ляр­ность Kotlin. Android Studio — офи­ци­аль­ная сре­да Java-разработки, при­знан­ная ком­па­ни­ей Google.

Тер­ми­на­лы и пла­тёж­ные систе­мы. Бла­го­да­ря вир­ту­аль­ной машине Java-код может рабо­тать на обо­ру­до­ва­нии, кото­рое сто­ит в пла­тёж­ных тер­ми­на­лах и бан­ко­ма­тах.

Рабо­та с финан­са­ми. Если нужен про­стой и надёж­ный сайт по обра­бот­ке пла­те­жей или пере­во­ду денег — исполь­зуй­те Java. Встро­ен­ные систе­мы без­опас­но­сти помо­гут избе­жать несанк­ци­о­ни­ро­ван­ных дей­ствий про­грам­мы.

Зарплаты Java-программистов

По дан­ным Хабр Карье­ры на нача­ло 2020 года, Java-программисты полу­ча­ют так:

Учи­ты­вая боль­шое коли­че­ство уже напи­сан­но­го кода, кото­рый надо под­дер­жи­вать, Java-специалисты будут вос­тре­бо­ва­ны ещё очень дол­го. Поэто­му если вы до сих пор дума­е­те над язы­ком для стар­та карье­ры про­грам­ми­ста — посмот­ри­те в сто­ро­ну Java.

С чего начать

Java — Учеб­ник для начи­на­ю­щих про­грам­ми­стов. Подой­дёт для стар­та, хотя сам учеб­ник напи­сан места­ми тяжё­лым и ака­де­ми­че­ским язы­ком.

Гер­берт Шил­дт — мож­но брать любую кни­гу, в назва­нии кото­рой есть Java 8. Если нуж­но совсем с нуля — читай­те «Java 8. Руко­вод­ство для начи­на­ю­щих».

Если вам нуж­на допол­ни­тель­ная тео­рия и нестан­дарт­ные при­ё­мы, почи­тай­те «Java. Эффек­тив­ное про­грам­ми­ро­ва­ние» Джо­шуа Бло­ха. Подой­дёт и тем, у кого уже есть опыт Java-разработки.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector