Зачем мне java: неудобные вопросы о популярном языке и ответы на них

Содержание:

Объектно-ориентированное программирование

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

Изучение ООП начинается с рассмотрения класса — элемента, составляющего основу Java. Поля класса содержат данные, методы — код. Методы могут иметь параметры и возвращать значения. Конструкторы — особые методы. Объекты создаются на основании классов. Инкапсуляция — первый принцип ООП — подразумевает связывание и сокрытие. Изучаются модификаторы полей и методов: public, protected, private. Вводится понятие перегрузки методов. Затем рассматриваются понятия и механизмы наследования и полиморфизма. Разъясняется разница между статическими полями и методами и нестатическими. Обсуждаются абстрактные классы и методы, вводится понятие интерфейса.

Материал по этому разделу можно найти в книгах:

  • «Java. Библиотека профессионала. Том 1. Основы» — главы 4, 5, 6;
  • «Java 8. Полное руководство» — главы 6, 7, 8.

Основные характеристики JavaScript

Высокоуровневый

Он даёт программисту абстракции, которые позволяют не обращать внимание на особенности аппаратного обеспечения, на котором выполняются JavaScript-программы. Язык автоматически управляет памятью, используя сборщик мусора

Разработчик, в результате, может сосредоточиться на решении стоящих перед ним задач, не отвлекаясь на низкоуровневые механизмы (хотя, надо отметить, это не отменяет необходимости в рациональном использовании памяти). Язык предлагает мощные и удобные средства для работы с данными различных типов.
Динамический. В отличие от статических языков программирования, динамические языки способны, во время выполнения программы, выполнять действия, которые статические языки выполняют во время компиляции программ. У такого подхода есть свои плюсы и минусы, но он даёт в распоряжение разработчика такие мощные возможности, как динамическая типизация, позднее связывание, рефлексия, функциональное программирование, изменение объектов во время выполнения программы, замыкания и многое другое.
Динамически типизированный. Типы переменных при JS-разработке задавать необязательно. В одну и ту же переменную можно, например, сначала записать строку, а потом — целое число.
Слабо типизированный. В отличие от языков с сильной типизацией, языки со слабой типизацией не принуждают программиста, например, использовать в неких ситуациях объекты определённых типов, выполняя, при необходимости, неявные преобразования типов. Это даёт больше гибкости, но JS-программы не являются типобезопасными, из-за этого усложняются задачи проверки типов (на решение этой проблемы направлены TypeScript и Flow).
Интерпретируемый. Широко распространено мнение, в соответствии с которым JavaScript является интерпретируемым языком программирования, что означает, что программы, написанные на нём, не нуждаются в компиляции перед выполнением. JS в этом плане противопоставляют таким языкам, как C, Java, Go. На практике же браузеры, для повышения производительности программ, выполняют компиляцию JS-кода перед его выполнением. Этот шаг, однако, прозрачен для программиста, он не требует от него дополнительных усилий.
Мультипарадигменный. JavaScript не навязывает разработчику использование какой-то конкретной парадигмы программирования, в отличие, например, от Java (объектно-ориентированное программирование) или C (императивное программирование). Писать JS-программы можно, используя объектно-ориентированную парадигму, в частности — применяя прототипы и появившиеся в стандарте ES6 классы. Программы на JS можно писать и в функциональном стиле, благодаря тому, что функции здесь являются объектами первого класса. JavaScript допускает и работу в императивном стиле, используемом в C.

Вступление. Краткая история и особенности языка

Как-то давно мы с моим товарищем и коллегой Егором готовили обучающий курс по Java Core. Но как-то не срослось и это дело не было доведено до какого-либо логического конца. И вот, спустя время, я решил, что не стоит пропадать добру и по-этому запускаю серию статей про Java Core для самых маленьких.

Начало разработки языка было положено еще в 1991 году компанией Sun Microsystems, Inc. Вначале язык был назван Oak (Дуб), но в 1995 он был переименован в Java. Публично заявили о создании языка в 1995 году. Причиной создания была потребность в независящем от платформы и архитектуры процессора языке, который можно было бы использовать для написания программ для бытовой электротехники. Но поскольку в таких устройствах применялись различные процессоры, то использование популярных на то время языков С/С++ и прочих было затруднено, поскольку написанные на них программы должны компилироваться отдельно для конкретной платформы.

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

Недостатки Java

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

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

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

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

Проверка условий

Любой язык программирования высокого уровня позволяет изменять порядок выполнения программы в зависимости от заданного условия. В Java для этого используется конструкция if. После этого ключевого слова в скобках записывается логическое выражение, затем в фигурных скобках — группа команд. Если результат логического выражения — true (истина), то эта группа команд выполняется, если false (ложь) — нет.

class ComparisonShort {
    public static void main(String args) {
        int i = 10;
        if (i == 10) {
            System.out.println("i = 10");
        }
    }
}

Результат этого примера — строка “i = 10” в консоли, так как результат логического выражения (проверка на равенство) будет true.

В качестве знаков сравнения допустимы: <, <=, >, >=, ==, !=. Добавив ключевое слово else, получаем полную форму оператора сравнения.

class ComparisonFull {
    public static void main(String args) {
        int i = 10 + 2;
        if (i == 10) {
            System.out.println("i = 10");
        } else {
            System.out.println("i != 10");
        }
    }
}

Выполнив эту программу, мы увидим в консоли сообщение “i != 10”, так как результат сравнения значения переменной i и цифры 10 будет false. Поэтому выполнится набор команд в фигурных скобках после слова else.

Пример 5: Унарный оператор

class UnaryOperator {
    public static void main(String[] args) {

        double number = 5.2;

        System.out.println(number++);
        System.out.println(number);

        System.out.println(++number);
        System.out.println(number);
    }
}

Когда вы запустите программу, на экран выведется:

5.2
6.2
7.2
7.2

Когда выполняется выражение System.out.println(number++), первым вычисляется изначальное значение. Переменная number увеличивается только после этого. Поэтому вы получите на выходе 5.2. Далее, когда выполняется System.out.println(number), показывается значение 6.2.

Тем не менее, когда выполняется System.out.println(++number), number увеличивается на 1 перед тем, как будет выведено на экран. Так же обстоят дела и с оператором Java декремента.

Полезное программное обеспечение Java: возможности

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

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

Для Java характерна кроссплатформенность (возможность использования на различных операционных системах). Например, доступно скачивание для Windows, macOS, а также Linux. В это программное обеспечение входит:

  • Исполнительная среда.
  • Вспомогательные библиотеки.
  • Виртуальная машина.
  • Базовые джава-классы.

Вспомогательная среда играет роль исполнительного компонента. Благодаря ему обеспечивается исполнение приложений и апплетов в браузере. Иногда используются одновременно 32 и 64-х разрядные браузеры. В таком случае, нужно установить две версии Джава: 32 и 64-разрядную. Подключаемый модуль будет использоваться для обоих браузеров.

Пример 6: Операторы равенства и отношений

class RelationalOperator {
    public static void main(String[] args) {

        int number1 = 5, number2 = 6;

        if (number1 > number2)
        {
                System.out.println("number1 больше, чем number2.");
        }
        else
        {
                System.out.println("number2 больше, чем number1.");
        }
    }
}

Когда вы запустите программу, в которой используются операторы сравнения Java, на экран выведется:

number2 больше, чем number1.

Здесь мы использовали оператор «>», чтобы проверить, больше ли number1, чем number2.

Так как number2 больше, чем number1, результатом выражения number1 > number2 будет false.

Кроме операторов отношений, есть оператор сравнения типов instanceof, который сравнивает объект и определенный тип.

Например:

Зачем нужна Java на компьютере или ноутбуке

Если вы увидели Java в списке установленных программ, но не знаете, зачем она нужна — эта статья для вас. Многие пользователи спрашивают, зачем нужна Java на компьютере или ноутбуке, как она установилась, и что она делает. Давайте разбираться.

Зачем нужна Java?

Java — это бесплатная платформа, которая предназначена для запуска приложений, написанных на одноименном языке программирования Java. Многие программы и веб-приложения работают на Java. Что из себя представляет эта платформа?

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

Раньше Java активно использовали для написания «апплетов» — небольших приложений, работающих прямо в браузере. Например календарь, гостевая книга или онлайн чат. Сейчас для этих целей используется JavaScript, который не требует наличия установленной Java. Но все же много сайтов в бездонном Интернете работают на этой технологии. И если у вас нет Java, тогда такие сайты не смогут корректно работать и вы не сможете взаимодействовать с ними. Сайт не реагирует на ваши действия? Возможно причина кроется в отсутствии Java.

Более широко Java использовали и используют для создания настольных приложений. Потому некоторые программы просто не смогут работать без установленной Java. Например, популярная игра Minecraft работает исключительно внутри виртуальной «машины» Java. А если вы занимаетесь программированием, то для запуска некоторых IDE (сред для разработки ПО) тоже нужна Java.

Откуда Java на моем компьютере?

Java часто устанавливается сразу после установки Windows или другой ОС как служебная программа. Возможно ее установил человек, который ставил вам Windows, или она была предустановлена на вашем ПК или ноутбуке. Или некоторое приложение, требующее Java, установило ее на ПК. Просто знайте, это вовсе не вредоносное приложение, и удалять его во время чистки компьютера не нужно. Не зря мы включили Java в список нужных программ для Windows.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Каков синтаксис Java?

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

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

На самом деле я написал целую статью о синтаксисе Java для разработки Android, кратко перечислю особенности синтаксиса:

Если вы нажимаете кнопку «запустить» или «скомпилировать» и получаете ошибку, то есть большая вероятность, что вы где-то пропустили точку с запятой!

Вы никогда не перестанете делать это, и это никогда не перестанет вас раздражать. Расслабьтесь!

С этими знаниями мы сможем глубже погрузиться в руководство по Java!

Как и для чего нужно установить Java на компьютер?

До недавнего времени архитектура Java была известна только лишь продвинутым пользователям и разработчикам, но сегодня многое изменилось. Как оказалось, многие программы в настоящее время пишутся на этом свободном языке программирования, что дает неплохие перспективы для их развития. В частности, на нем написан клиент знаменитой игры Minecraft, а потому многие пользователи стали интересоваться тем, как установить Java на компьютер. Если вам это также интересно, приглашаем прочесть эту статью.

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

Для чего нужно устанавливать Java?

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

Проводим инсталляцию приложения

Перед тем как установить Java на компьютер, необходимо проверить, не установлена ли на нем более старая версия. Для этого вам понадобится запустить на своем компьютере приложение для эмуляции режима командной строки. Если вы новичок, то нажмите на кнопку «Пуск», отыщите там пункт с названием «Выполнить», после чего введите в поле для команд «CMD» (без кавычек). Нажмите на Enter или на кнопку «ОК».

После этого перед вами появится окно командной строки, в котором на черном фоне будет мигать курсор. Скопируйте (без кавычек) и вставьте в него команду Java-version, воспользовавшись командой «Копировать-Вставить» и мышкой (клавиатурная комбинация Ctrl+V не действует). После этого можно нажать на Enter.

Если данная программа на вашем компьютере уже есть, то в первой же строчке вы увидите что-то типа: «Java-version 1.5.0». Увидев подобную надпись, вы можете ничего не устанавливать. В противном случае необходимо продолжать установку.

Но! Предыдущая операция требует от нас запуска командной строки в режиме администратора, а описанным выше способом она чаще всего стартует из-под простого пользователя. Это нам не подходит. Чтобы гарантированно запустить утилиту с администраторскими привилегиями, необходимо поступить несколько иначе.

Для этого снова нажмите на кнопку «Пуск», отыщите там поле «Найти программы и файлы», введите туда CMD, после чего в появившемся окне с результатами поиска отыщите (как правило, там будет только эта строчка) одноименный файл. Щелкните на нем правой клавишей мыши, выберите в контекстом меню пункт «Запуск от имени администратора». Все! Пора установить программу Java на компьютер.

Скачав установочный файл, два раза кликните по нему левой клавишей мыши. Появится окно «Мастера установки», в котором нужно кликнуть по кнопке Install, после чего начнется процесс инсталляции. В зависимости от мощности вашего ПК и возможностей интернета, она может занять разное время. В конце нажмите на кнопку Close.

Вот вы и узнали о том, как правильно установить Java!

Что такое Java?

Java-это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems в 1990-х годах (позже купленной Oracle).

Понятие «объектно-ориентированный» относится к способу написания структурного кода Java, а именно: разделение кода на так называемые «классы», которые запускаются вместе, чтобы обеспечить согласованное порождение объектов. Мы обсудим это позже, но достаточно сказать, что это приводит к универсальному и организованному коду, который легко редактировать и перепрофилировать.

Java находится под влиянием C и C++, поэтому она имеет много общего с этими языками (и C#). Одним из больших преимуществ Java является то, что он «платформенно-независимый». Это означает, что код, который вы пишете на одной платформе, можно легко запустить на другой. Это называется принципом «пишем один раз, запускаем где угодно» (хотя на практике это не всегда так просто, как кажется).

Чтобы запустить и использовать Java, вам нужно три вещи:

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

3–5 мая, Онлайн, Беcплатно

Среда исполнения Java (JRE) предоставляет собой «контейнер» для всех этих элементов и кода для запуска приложения. JDK – это «компилятор», который интерпретирует сам код и выполняет его. В JDK также есть инструменты разработчика, необходимые для написания кода Java (как и следует из названия).

Хорошая новость заключается в том, что разработчикам нужно только позаботиться о загрузке JDK, поскольку он поставляется вместе с двумя другими компонентами.

Минусы программирования на Java

Рассмотрим недостатки Java-программирования.

— Платное коммерческое использование

Недавно Oracle объявила, что с 2019 года компания начнет взимать плату за использование Java Standard Edition 8 в «коммерческих целях». За все новые обновления и исправления ошибок придется заплатить. Плата зависит от количества пользователей или компьютеров.

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

— Низкая производительность

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

— Отсутствие нативного дизайна

Для создания графического интерфейса пользователя (GUI) разработчики используют различные инструменты, ориентированные для конкретного языка. Для Android-приложений есть Android Studio, которая помогает создавать приложения с нативным дизайном. Однако, когда дело доходит до пользовательского интерфейса на ПК, Java-инструмента для создания нативного дизайна нет.

Есть несколько инструментов для разработки GUI для Java: самые популярные из них — Swing, SWT, JavaFX, JSF. Библиотека Swing — это старый, но надежный кросс-платформенный инструмент, интегрированный в различные Java-IDE, в том числе Eclipse и NetBeans. Однако, если вы не используете шаблоны, вы заметите несоответствия интерфейса. SWT использует собственные компоненты, но не подходит для сложного интерфейса. JavaFX — лаконичный и современный, но слишком новый. В целом, перед созданием GUI на Java нужно подробнее изучить инструменты.

— Многословный и сложный код

Многословность кода может показаться преимуществом, которое поможет при изучении языка. Однако, длинные, чрезмерно сложные предложения затрудняют чтение и просмотр кода. Как и естественные языки, многие языки программирования высокого уровня содержат лишнюю информацию. Java — это более легкая версия неприступного C ++, которая вынуждает программистов прописывать свои действия словами из английского языка. Это делает язык более понятным для неспециалистов, но менее компактным.

Сравним Java и Python и увидим, в чем преимущество лаконичного кода Python. В Python не используются точка с запятой, круглые и фигурные скобки. Вместо «и», «или» и «нет» в качестве операторов используются «&&», «||» и «!».

Сравнение Java и Python 

Есть ли у Java альтернатива?

Может показаться, что Java — абсолютный лидер и у неё нет соперников, но на самом деле всё совсем наоборот. Её часто сравнивают с С# и Python, и это только главные «противники». Давайте посмотрим на них внимательнее.

Java против Python

Java и Python соревнуются не первый год: в рейтингах они раз за разом занимают места рядом друг с другом (вот рейтинг 2019 года). Сравнивают их не просто так, у них действительно есть общие черты: оба языка очень популярные, объектно-ориентированные и работают вне зависимости от платформы.

Давайте посмотрим, что у них различается.

Типизация

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

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

Python даст вам больше гибкости и лёгкости в написании, зато Java предупредит ошибки.

Читаемость

Этот пункт связан с предыдущим, потому что то же указание типов влияет на конечный вид кода. Хотя у Java достаточно простой синтаксис по сравнению с другими языками, здесь Python выигрывает. Гораздо лучше слов эту разницу покажет пример.

Вот так может выглядеть код в Python:

То же самое, написанное в Java:

В целом у синтаксиса в Python простая ясная структура, он хорошо читается, его можно даже назвать интуитивным. Он хорошо подойдёт новичкам.

В Java код более комплексный, со множеством слов и знаков: на английском такой синтаксис называют словом «verbose», то есть «говорливый» код, многословный. Он хуже читается и может быть сложноват для новичков, хотя многие разработчики чувствуют себя комфортнее со строгим синтаксисом.

Скорость

Здесь уже Java явный победитель. По сравнению с С и С++ она, может, и не самая быстрая, но Python явно отстаёт от Java по скорости и производительности. В обоих языках приложения переводятся в байт-код (это позволяет им быть кроссплатформенными), но разница кроется в том, когда это происходит: Java компилирует заранее, с помощью JIT-компиляции (динамической компиляции), а Python — во время выполнения программы. В итоге Java значительно быстрее.

Java против С#

Как и в случае с Python, C# сравнивают с Java не просто так: это тоже объектно-ориентированный язык со статической типизацией, и даже синтаксис у Java и C# похож.

Теперь посмотрим на их различия.

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

Один из параметров языков программирования — типобезопасность (безопасность системы типов). Если язык безопасный, то после проверки согласования типов в них уже не появится ошибка во время выполнения.

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

Указатели и управление памятью

Вообще, если вам важно работать с указателями (например, вы хотите работать с памятью на более низком уровне), то лучше выбирать из совсем других языков (С, С++). Но если сравнивать эти два, C# побеждает: в отличие от Java, здесь указатели всё-таки есть, хоть и сильно ограниченные

Поддержка платформ

C# разработан компанией Microsoft для их собственной экосистемы, поэтому на нём разрабатывается ПО специально для Windows. Java в этом смысле более универсальная — на ней можно писать приложения для почти любых платформ.

Применение

Если вы хотите писать веб-приложения, мессенджеры или приложения на Android или ещё не определились и поэтому хотите что-то универсальное — ваш выбор ясен: Java замечательно подойдёт.

Если же вы хотите разрабатывать приложения для Windows, то что может быть лучше, чем язык, специально для этого созданный? Кстати, C# очень хорош для разработки игр и проектов с виртуальной реальностью.

Терминология Java, которую следует знать

Java – это набор технологий (язык программирования и компьютерная платформа), предназначенных для создания и запуска программного обеспечения. Однако термином Java часто обозначают и сам язык программирования.

Язык программирования Java – межплатформенный объектно-ориентированный язык программирования общего назначения, обладающий широкими возможностями.

Java 9 – последняя на момент написания данной статьи версия Java.

Java EE, Java Me и Java SE – эти названия обозначают Java Enterprise Edition, Micro Edition и Standard Edition, соответственно.

Java EE нацелена на приложения, запускаемые на серверах. Java ME создана для ограниченных по мощности устройств, таких как встраиваемые устройства. Java SE — стандартное издание Java для написания обычных программ.

Если вы новичок в Java-программировании, рекомендуем начать с Java SE.

JVM — Java Virtual Machine («виртуальная машина Java») — это программа, позволяющая компьютеру запускать программы, написанные на Java.

JRE – Java Runtime Environment («среда выполнения Java») включает в себя JVM, соответствующие библиотеки и другие компоненты, необходимые для запуска программ. Но в JRE нет компилятора, отладчика и других средств разработки.

JDK – Java Development Kit (комплект Java разработчика) содержит JRE и другие инструменты разработки, такие как компиляторы, отладчики и т.д.

Дистрибутивы Java

Существует множество сайтов, предлагающих загрузку Java (читай: JDK), и неясно, «кто что предлагает и с каким лицензированием». Этот раздел проливает свет на это.

Проект OpenJDK

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

И хотя поставщики не могут, скажем, удалить метод из класса String перед созданием новой сборки Java, они могут добавить брэндинг (вay!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.

Сборки OpenJDK (от Oracle) и OracleJDK

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

Впрочем все сводится к тому, требуется ли вам коммерческая поддержка (номер телефона) для используемой версии Java.

Полный обзор дистрибутива OpenJDK

Рафаэль Винтерхальтер (Rafael Winterhalter) собрал большой список всех доступных сборок OpenJDK, включая их описания: ОС, архитектуру, окна лицензирования, поддержки и обслуживания.

Hello, world!

При изучении нового языка писать программу, выводящую «Hello, world!», — это традиция. Она возникла в 1978 году, с выходом в свет книги «Язык программирования С» Брайана Кернигана и Денниса Ричи.

class HelloWorld {
    public static void main(String args) {
        System.out.println("Hello, world!");
    }
}

Код начинается с ключевого слова class.Java-программы состоят из классов — это «кирпичики» приложения. В реальных приложениях их могут быть десятки, сотни и тысячи. Затем пишется имя класса — HelloWorld. Имена классов принято писать в стиле CamelCase (все слова слитно, каждое с заглавной буквы). Классам, как и другим сущностям — методам, полям и переменным — рекомендуется давать мнемонические, «говорящие» имена.

После имени в фигурных скобках записывается тело класса. Оно может содержать поля, методы и другие классы. Поля хранят данные. Они подобны переменным, однако в Java это несколько иная сущность. Методы содержат набор команд или код. Имена методов (как и полей, переменных) принято писать в стиле camelCase, со строчной буквы.

В нашем классе только один метод — main(). Он особенный, его часто называют стартовым. Когда виртуальная машина Java получает класс для исполнения, она ищет в нём метод main. Если находит — выполняет код, который содержит метод. Если нет — выдаёт сообщение об ошибке

Важно, чтобы метод main() имел строго определённую сигнатуру: был публичным (public), статическим (static), не возвращающим никакого значения (void), с параметром в виде массива строк (String[] args). В противном случае виртуальная машина его просто не найдёт

Наш метод main() содержит лишь одну строку, которая выводит в консоль текст «Hello, world!».

Перед компиляцией сохраняем написанный код в файл. Имя файла должно соответствовать имени класса с точностью до регистра символов (Java — регистрозависимый язык). Затем открываем командную строку (или терминал) и вызываем сначала компилятор (javac), а потом виртуальную машину JVM (java).

C:\Users\User>javac HelloWorld.java
C:\Users\User>java HelloWorld
Hello, world!

После компиляции возникнет бинарный файл HelloWorld.class, содержащий байт-код. Имя этого файла (без расширения) передаётся как параметр при вызове виртуальной машины. В результате видим строку «Hello, world!» — это результат выполнения программы.

Заключение

На всякий случай прилагаю мой telegram — @biblelamp. Если вас заинтересовала тема, рекомендую почитать «Java-программирование для начинающих» Майка МакГрата и «Изучаем Java» Кэти Сьерра и Берт Бейтс. В следующих статьях мы продолжим начальное изучение Java на примере создания других игр. Следите за блогом!

Другие статьи из серии «Быстрый старт с Java»:

  • «Быстрый старт с Java: крестики-нолики»
  • «Быстрый старт с Java: «лопни шарик»

Если язык Java вас заинтересовал — приглашаем на факультет Java-разработки. Если ещё не совсем уверены — посмотрите истории успеха наших Java-выпускников:

  • Приключения бравого джависта в поисках пропитания. Как начать карьеру программиста Java, если в твоём городе пять вакансий и везде требуют опыт от года
  • «Иногда за сутки я спал один час в метро перед работой». Из белорусской типографии — в московские тимлиды.
  • Первая работа в IT с переездом в Москву: как это бывает. Опыт собеседований, тестовых заданий, учебных проектов и трудоустройства в международную компанию.
  • Взгляд изнутри: как работается в «Альфа-Банке». Рассказывает Михаил Степнов, выпускник GeekUniversity и программист банка.

Итог. Так умрет ли Java?

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

Новые языки программирования — быстрые, комфортные в применении и просты в освоении. Более молодые языки, такие как Scala (2001 г) или Kotlin (2011 г) сегодня могут позволить себе конкурировать с Java в мобильной разработке — и кстати оба компилируются в JVM — и имеют немного больше различного «синтаксического сахара». Но в основной своей массе молодые языки ориентируются на решение узких задач.

В отличие от Java, который применяется почти во всех областях прикладной разработки. Java обладает колоссальным количеством фреймворков и библиотек, с помощью которых можно решить многие задачи: от простейшей игры «змейки» до разработки корпоративных приложений в облаке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector