ПоставщикамБлог

Программирование на Java

Программирование на Java

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Разработка ведётся сообществом, организованным через Java Community Process, язык и основные реализующие его технологии распространяются по лицензии GPL. Права на торговую марку принадлежат корпорации Oracle.

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

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:

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

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10—30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

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

Наиболее популярные продукты категории Программирование на Java Все продукты категории

Diceus Разработка ПО
8
13
Infinite MLM Software
0
0
EffectiveSoft Разработка ПО
10
10

Поставщики Программирование на Java

Ardas
FRA...
  • FRA
  • GBR
  • UKR
  • USA
Andersen
DEU...
  • DEU
  • GBR
  • GEO
  • HUN
  • KAZ
  • LTU
  • POL
  • UKR
Echo
CAN...
  • CAN
  • GBR
  • UKR
  • USA
DIO-soft
BLR...
  • BLR
  • MDA
  • POL
  • UKR
  • USA
Digicode
BLR...
  • BLR
  • CRI
  • ISR
  • UKR
  • USA
LineUp
FRA...
  • FRA
  • ITA
  • POL
  • RUS
  • UKR
  • USA
INSCALE
DNK...
  • DNK
  • MKD
  • MYS
  • PRT
  • UKR

Производители Программирование на Java

Ardas
FRA...
  • FRA
  • GBR
  • UKR
  • USA
Andersen
DEU...
  • DEU
  • GBR
  • GEO
  • HUN
  • KAZ
  • LTU
  • POL
  • UKR
Echo
CAN...
  • CAN
  • GBR
  • UKR
  • USA
DIO-soft
BLR...
  • BLR
  • MDA
  • POL
  • UKR
  • USA
Digicode
BLR...
  • BLR
  • CRI
  • ISR
  • UKR
  • USA
LineUp
FRA...
  • FRA
  • ITA
  • POL
  • RUS
  • UKR
  • USA
INSCALE
DNK...
  • DNK
  • MKD
  • MYS
  • PRT
  • UKR

F.A.Q. Программирование на Java

Что такое технология Java и каково ее применение?

Java представляет собой язык программирования и платформу вычислений, которая была впервые выпущена Sun Microsystems в 1995 г. Существует множество приложений и веб-сайтов, которые не работают при отсутствии установленной Java, и с каждым днем число таких веб-сайтов и приложений увеличивается. Java отличается быстротой, высоким уровнем защиты и надежностью. От портативных компьютеров до центров данных, от игровых консолей до суперкомпьютеров, используемых для научных разработок, от сотовых телефонов до сети Интернет — Java повсюду!

Какова производительность Java?

Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке C. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие, как внутренние классы, класс StringBuffer, упрощённые логические вычисления и так далее). Кроме того, была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. По состоянию на февраль 2012 года, код Java 7 приблизительно в 1,8 раза медленнее кода, написанного на языке Си.

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

Каковы основные возможности Java?

  • Автоматическое управление памятью.
  • Расширенные возможности обработки исключительных ситуаций.
  • Богатый набор средств фильтрации ввода-вывода.
  • Набор стандартных коллекций: массив, список, стек и т. п.
  • Наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI).
  • Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы.
  • Встроенные в язык средства создания многопоточных приложений, которые потом были портированы на многие языки (например Python).
  • Унифицированный доступ к базам данных: на уровне отдельных SQL-запросов — на основе JDBC, SQLJ; на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects (англ.) и Java Persistence API.
  • Поддержка обобщений (начиная с версии 1.5).
  • Поддержка лямбд, замыканий, встроенные возможности функционального программирования
Материалы