Центр цифрового образования ИнфинITи ГБОУ лицей № 226

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

По результатам ежегодного отчёта State of the Octoverse, который выпускает Github, язык программирования Java по итогам 2020 года занимает третье место в списке самых популярных. 

Java — язык программирования общего назначения. Относится к объектно-ориентированным языкам программирования, к языкам с сильной типизацией.

Java является объектно-ориентированным языком, относится к языкам программирования с сильной типизацией.

Создатели реализовали принцип WORA: write once, run anywhere или «пиши один раз, запускай везде». Это значит, что написанное на Java приложение можно запустить на любой платформе, если на ней установлена среда исполнения Java (JRE, Java Runtime Environment).

Эта задача решается благодаря компиляции написанного на Java кода в байт-код. Этот формат исполняет JVM или виртуальная машина Java. JVM — часть среды исполнения Java (JRE). Виртуальная машина не зависит от платформы.

В Java реализован механизм управления памятью, который называется сборщиком мусора или garbage collector. Разработчик создаёт объекты, а JRE с помощью сборщика мусора очищает память, когда объекты перестают использоваться. 

Что пишут на языке Java: сферы применения

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

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

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

На Java написано много веб-приложений. Популярные фреймворки, в том числе Spring, Stuts, JSP, используются для создания разных приложений в вебе: от ecommerce-проектов до крупных порталов, от образовательных платформ до правительственных ресурсов.

Популярная компьютерная игра Minecraft написана на Java.

Мобильная разработка — ещё одна область использования Java. На этом языке пишут приложения для устройств, работающих под управлением ОС Android.

На Java создают клиентские приложения. Простой и близкий разработчикам пример: IDE NetBeans написано на «джаве».

Также Java применяется для работы с Big Data, разработки программ для научных целей, например, обработки естественных языков, программирования приборов — от бытовых девайсов до промышленных установок.

То есть на Java можно писать разные типы приложений: веб, мобильный и десктопный софт, игры и так далее. Традиционно у этого языка сильные позиции в промышленном программировании, в сегменте крупных компаний (т.н. энтерпрайз).

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

Курс Harvard CS50 — Лекция: Что именно пишут на Java

Поздравляем с прохождением восьмой недели CS50! Надеемся, вы справились с большой и интересной задачей, которую предложил студентам Дэвид Малан. Не устаем повторять, что практика очень важна, поэтому советуем решать побольше задач.

Мы тут вам постоянно рассказываем о том, что Java — очень популярный язык. Найти информацию о том, почему Java так популярна — довольно просто, в то время как показать новичку конкретные приложения, написанные на этом языке — нет. Всё, что на поверхности видит вокруг себя так называемый «рядовой пользователь» обычно написано на чём-то другом. Сайты — это HTML + CSS + JavaScript + PHP/Ruby/Python. Игры — это C++. Операционные системы, что-то «для железа» или драйверы — C, который без плюсов. У «непосвященных» это порождает волну недоверия к языку, который «почти везде, а конкретно нигде». И абсолютно несправедливо!

Enterprise: мнимая «невидимость» Java

Такая ситуация сложилась потому, что Java остается невидимой с точки зрения пользователя. Она тихо выполняет свою работу, порой весьма сложную. Если диспетчер следит за движением самолётов и системой жизнеобеспечения аэропорта на мониторе своего компьютера, скорее всего, внутреннюю работу, всё это отслеживание позиций, регулировку, отсылку предупреждений выполняет Java. Распределенные системы для покупки билетов, банковские системы, через которые проходят миллиарды, программы для электронной коммерции? Java. Приложения, управляющие работой бизнеса или людьми в компании, — то, что скрывается за аббревиатурами CRM, ERP? Эти гигантские и сложные программы тоже очень часто написаны на Java. По сути везде, где есть распределенный средний и крупный бизнес, ищи Java.

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

Большие веб-приложения «для людей»

Пользователи часто не осознают, что за симпатичным фасадом сайта, которым они пользуются, может стоять огромное приложение, требующее сотни тысяч человеко-часов на разработку и поддержку. Очень часто сложную (или «грязную») работу выполняет Java. Большие сайты практически не бывают монолитами, использующими только один язык или технологию для бек-энда (той части сайта, которая выполняется на сервере, back-end явным образом пользователю не виден). Доля Java-кода ощутима, в частности, в следующих веб-приложениях:

  • Ebay — в основе архитектуры крупнейшего интернет-аукциона лежит именно Java;
  • Amazon — еще один сайт, которому подходит определение «крупнейший». Международный интернет-магазин и одновременно площадка для других магазинов также использует возможности Java для построения архитектуры и высокого уровня масштабирования;
  • социальная сеть Linkedin, та, которая для деловых контактов, преимущественно написана на Java;
  • Корпорация Добра, то бишь, Google активно использует Java в разработке таких сервисов, как Google Plus или GTalk;
  • Twitter. История этого приложения начиналась вовсе не с Java, а с Ruby on Rails. Это такой фреймворк, который триумфально выходит на сцену, когда необходимо создать сложное веб-приложение очень быстро. Так было и с Twitter. Однако разработчики не учли лавинообразно растущую популярность этого незамысловатого сервиса, из-за которой стала проседать производительность. Пришлось переписывать важные его части на языке, который лучше масштабируется — на Java;
  • Facebook. Долгое время самая популярная социальная сеть оставалась адептом языка PHP, что большая редкость для «гигантов». Этот язык, удобный для небольших сайтов, представляет собой большую проблему, если те начинают расти. На самом деле, и сегодня Facebook до сих пор остается PHP-шной вотчиной к вящей радости почитателей этого языка. Тем не менее, если присмотреться к Facebook изнутри, там можно найти ростки Java и множества других языков. Например, сайт использует HBase (это основанная на Java база данных) в качестве платформы для мессенджера. А масштабируемым сервисом для разработки служит такая интересная штука, как Apache Thrift. Этот программный конвейер с движком генерации кода для разработки служб работает, в частности, с Java.
  • Мобильные приложения и игры

    Вот уж где Java-программисту можно разгуляться, так это в разработке под ОС Android. Более 90 процентов всего, что было создано для этой мобильной платформы, написано с помощью Java. А это огромный рынок: по данным исследования аналитического агентства IDC, по состоянию на середину 2015 года почти 83% пользователей смартфонов предпочитают Android (почти 14% досталось Apple iOS). Android-разработчик давно уже считается отдельной профессией, а сама операционная система здорово простимулировала Java. У начинающих Java-программистов появился интересный выбор: после изучения Java Core можно углубиться в Java EE (для Enterprise), а можно приложить усилия для старта в мобильной разработке, изучив Android API.
    … Кстати, немаленькая часть самой операционной системы Android тоже написана на Java.

    Большие игры: негусто, но есть

    Больших 3D-игр А-класса на Java написано совсем немного. Не потому, что возможности языка не позволяют. Определенные проблемы с геймдевом у Java есть, но их нельзя назвать нерешаемыми. Главная причина — совсем в другом: исторически сложилось так, что самые мощные игровые движки написаны для использования с C++. Тем не менее, у Java весьма стоящий предмет для гордости, и имя ему — Minecraft. Да, любимая игра тех, кто родился в 2000 годы, настоящий кладезь креатива и созидания, была написана именно на Java. А те, кто постарше, помнят MMORPG, попадавшую в Книгу рекордов Гиннеса (из-за зашкаливающего количества игроков) — RuneScape. Кстати, она вполне себе жива и по сей день.

    Приложения от разработчиков для разработчиков

    Разработчики себя не обидят, поэтому пишут приложения для собственной работы с помощью лучших инструментов;). Вот где Java-программисты разгулялись не на шутку: на этом языке написано огромное количество известных и самых лучших приложений, которые используются в процессе разработки ПО. Например, известные IDE и текстовые редакторы — Eclipse, IntelliJ IDEA, NetBeans, RubyMine, Aptana. Система отслеживания ошибок и взаимодействия с пользователями Jira, система для документирования и создания базы знаний Confluence. Также Java хорошо проявила себя в работе с Big Data: на ней написан проект Hadoop, созданный для разработки и выполнения распределенных приложений, работающих на кластерах.

    Что еще?

    Да уйма всего, на самом-то деле. Вот еще несколько примеров из разных опер:

    OpenOffice — офисный пакет, кросс-платформенный, универсальный.

    BookSmart — бесплатное приложение для создания книг и фотоальбомов.

    UltraMixer — софт для диджеев.

    MATLAB — платформа вместе с средой разработки и языком для научных вычислений. Написан на Java и C.

    ImageJ — приложение с открытым кодом для анализа и обработки изображений.

    LWJGL — под этой страшной аббревиатурой скрывается библиотека для работы с OpenGL. Она рассчитана на тех программистов, которые хотят делать игры под Java.

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

    NetBeans Platform — Java-фреймворк, на котором написана масса «тяжелых» Enterprise-приложений, например, Nato MICE Console или Boeing Mass Properties Toolkit.

    Документация JDK 19 — Главная

      org/» typeof=»BreadcrumbList»>
    1. Главная
    2. Ява
    3. Java SE
    4. 19

    Обзор

    • Прочтите меня
    • Примечания к выпуску
    • Что нового
    • Руководство по миграции
    • Загрузить JDK
    • Руководство по установке
    • Формат строки версии

    Инструменты

    • Технические характеристики инструментов JDK
    • Руководство пользователя JShell
    • Руководство по JavaDoc
    • Руководство пользователя средства упаковки

    Язык и библиотеки

    • Обновления языка
    • Основные библиотеки
    • HTTP-клиент JDK
    • Учебники по Java
    • Модульный JDK
    • Руководство программиста API бортового регистратора
    • Руководство по интернационализации

    Технические характеристики

    • Документация API
    • Язык и ВМ
    • Имена стандартных алгоритмов безопасности Java
    • банок
    • Собственный интерфейс Java (JNI)
    • Инструментальный интерфейс JVM (JVM TI)
    • Сериализация
    • Проводной протокол отладки Java (JDWP)
    • Спецификация комментариев к документации для стандартного доклета
    • Прочие характеристики

    Безопасность

    • Руководство по безопасному кодированию
    • Руководство по безопасности

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

    • Руководство по виртуальной машине Java
    • Настройка сборки мусора

    Управление и устранение неполадок

    • Руководство по устранению неполадок
    • Руководство по мониторингу и управлению
    • Руководство по JMX

    Client Technologies

    • Руководство по специальным возможностям Java

    Документация JDK 19 — Главная