Как научиться программировать на java

Содержание

Предыстория

Команда Galactic Rush потерпела крушение на неизвестной планете. При падении корабль врезался в гору и оказался почти полностью засыпан обломками скалы. Несколько дней ушло на тщетные попытки освободить корабль. Экипаж потерял всякую надежду вернуться домой и начал обживаться на новом месте…


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

Научный глава экспедиции, Профессор Нудлс, потом вспоминал: — Через несколько дней я нашёл выход. Я додумался взять прошивку робота Диего, члена нашего экипажа, переделать её на прошивку каменщика и загрузить диким роботам.

— Но неудачи, казалось, преследовали нас. После небольшого исследования выяснилось, что у роботов нет разъёма для загрузки прошивки. У них вообще не было никакого разъёма для перепрошивки!

— Билаабо, единственный инопланетянин в составе экипажа, вспомнил, что когда-то на своей родной планете видел робота, который знал программирование. И не просто знал, а сам правил баги в своей собственной прошивке.

— Именно в этот момент меня посетила гениальная идея. Ведь когда-то давно я научил одного способного робота программированию на Паскале.

— Я приказал поймать самого талантливого молодого робота и обучить его программированию на Java с нуля. Умея программировать, он смог бы написать себе любую прошивку и помочь нам!

В общем, мы поймали один сообразительный экземпляр. Диего предложил назвать его Амиго, в честь своего брата, которого никогда не имел.

— Я предложил Амиго металлические бусы за каждый месяц обучения, и десять долларов в год за последующую работу по устранению завала. Дикарям и этого много, ведь мы бесплатно занимаемся их просвещением.

Диего потом напишет в своих мемуарах:

— Я был возмущён таким неприкрытым грабежом моего собрата, но вся команда стала на сторону профессора и Риши. Конечно же, я согласился (для вида) и предложил помочь научить Амиго. Хе-хе! Тем более, что никто не может обучить робота программированию лучше, чем другой робот.

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

— Ты начинаешь с первого уровня. Твоя задача – прокачать Амиго до 40 уровня. Но давай начнем с малого. Для начала дойди до второго уровня уроков по Java. Может быть тебе так понравится, что ты не заметишь, как пройдешь курс и пойдешь работать ; )

P.S.

А теперь давай перейдем к обучению программированию с нуля — жми на кнопку «Открыть следующую лекцию…».

Именование

5.2 Правила для разных типов идентификаторов

5.2.8 Имена переменных типа

  • Одиночная заглавная буква, за которой может следовать обычное число (например, E, T, X, T2)
  • Имя в виде имени класса (см. Раздел 5.2.2), за которым следует заглавная буква T (примеры: RequestT, FooBarT).

5.3 «Верблюжий» стиль (camelCase)

  • … в каждом слове, чтобы достичь стиля UpperCamelCase, или
  • … в каждом слове, кроме первого, чтобы достичь стиля lowerCamelCase
Исходная форма Правильно Неправильно
«XML HTTP request» XmlHttpRequest XMLHTTPRequest
«new customer ID» newCustomerId newCustomerID
«inner stopwatch» innerStopwatch innerStopWatch
«supports IPv6 on iOS?» supportsIpv6OnIos supportsIPv6OnIOS
«YouTube importer» YouTubeImporter YoutubeImporter*

Примечание

Исходный файл. Основы

2.3.1 Символы пробела

  1. Все прочие пробельные символы в символьных и строковых литералах экранируются
  2. Символы табуляции не используются для отступов

2.3.3 Символы не из таблицы ASCII

Пример Примечание
String unitAbbrev = «μs» Отлично: прекрасно воспринимается даже без комментария
String unitAbbrev = «\u03bcs» // «μs» Допускается, но нет причин так делать
String unitAbbrev = «\u03bcs» // Греческая буква mu, «s» Допускается, но неуклюже и может привести к ошибкам
String unitAbbrev = «\u03bcs» Плохо: читающий понятия не имеет, что это такое
return ‘\ufeff’ + content // знак порядка байтов Хорошо: используйте экранирование для непечатаемых символов и комментируйте при необходимости

Что изучать?

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

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

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

Нельзя ли подробнее?


Исто­рия Java и JavaScript в общих чер­тах выгля­дит так.

Нача­ло девя­но­стых. В ком­па­нии Sun Microsystems пилят язык про­грам­ми­ро­ва­ния, кото­рый мож­но будет исполь­зо­вать для умных устройств — теле­при­ста­вок, холо­диль­ни­ков и вся­ко­го тако­го. Зада­ча была при­ду­мать такую систе­му, что­бы код писал­ся один раз, а испол­нять его мож­но было бы на раз­ном желе­зе. В 1995 году выхо­дят пер­вые вер­сии это­го язы­ка, он назы­ва­ет­ся Java.

Парал­лель­но с этим в дру­гой обла­сти идёт вой­на бра­у­зе­ров. Тех­но­ло­гии веба ещё очень сла­бые, пло­хо стан­дар­ти­зи­ро­ван­ные, HTML ещё мало что уме­ет, дизай­на мало. В ходу несколь­ко бра­у­зе­ров, каж­дый из кото­рых рису­ет веб-страницы по-своему. Один из этих бра­у­зе­ров — Netscape Navigator.

Созда­те­ли Netscape Navigator меч­та­ют, что­бы бра­у­зе­ры уме­ли кра­си­во себя вести; что­бы там был интер­ак­тив и ани­ма­ции; что­бы в бра­у­зе­ре мож­но было запус­кать про­грам­мы и делать хотя бы про­стые вещи (а не толь­ко читать). И они раз­ра­ба­ты­ва­ют тех­но­ло­гию Mocha — язык скрип­то­ва­ния, кото­рый умел рабо­тать напря­мую с веб-страницей. В те вре­ме­на это было ново и инте­рес­но.

Сло­во за сло­во, Netscape вхо­дит в состав Sun Microsystems, и в поры­ве мар­ке­тин­го­во­го кре­а­ти­ва язык Mocha пере­име­но­вы­ва­ют в JavaScript, что­бы попи­а­рить одно на дру­гом. Яко­бы JavaScript — это ком­па­ньон Java для веба (хотя раз­ра­ба­ты­ва­ли JavaScript совсем дру­гие люди и с дру­ги­ми зада­ча­ми).

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

А похо­жие назва­ния язы­ков — это то, что быва­ет, когда мар­ке­то­ло­гов пус­ка­ют в про­грам­ми­ро­ва­ние. Не надо так.

Язык Java

Java

  • Базовые инструменты для написания и запуска программ на Java.
  • Библиотеки и классы — ядро языка. Они обеспечивают основные функциональные возможности программирования на Java: обработку исключений, многопоточность, коллекции, логирование, рефлексию, безопасность, работу с сетью, работу с XML, сериализацию, регулярные выражения.
  • Инструменты для развертывания и автоматического запуска приложений.
  • Инструменты для создания фронтенда (GUI, интерфейса пользователя). Это классы библиотек JavaFX, Swing и Java2D.
  • Библиотеки, для работы с базами данных, удаленно по сети, такие как JDBC, JNDI, RMI и Java RMI-IIOP.
  • Невысокий порог вхождения. Изучать Java проще, чем большинство языков с Си-подобным синтаксисом.

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

  • Переносимость. Благодаря использованию интерпретатора — виртуальной машины Java, — программы переносятся на различные платформы и устройства.

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

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

  • Безопасность. Благодаря встроенной в JVM верификации байт-кода, отсутствии в Java ручного управления памятью, слежением за переполнением стека, а также наличию различных API, которые позволяют контролировать безопасность, на этом языке можно создавать действительно безопасные приложения.

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

  • Интерпретируемость. Java-интерпретатор может выполнять байт-коды Java на любой машине, на которой имеется JVM и JRE.

  • Распределенность. У Java есть инструменты для создания распределенных приложений.

Как начать программировать на Java?

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

Что нужно для программирования на Java?

Для начала вам нужно установить программное обеспечение для разработки и запуска программ — JDK (Java Development Kit). После этого настройте JDK на компьютере, скачайте и установите одну из IDE (Integrated Development Environment) — это среда для разработки программного обеспечения. Самая популярная IDE — IntelliJ IDEA. Альтернативы — Eclipse, NetBeans, JCreator и даже обычный блокнот.

Установка Java на компьютер

JDK

  1. Выбрать и скачать установочный файл в зависимости от вашей операционной системы.
  2. Выполнить установку, следуя рекомендациям программы-установщика.
  3. Настроить переменную окружения, если вы используете Windows.

Жизненный цикл программы

Integrated Development Environment (IDE)

Компилятор

Исполнение программы

  1. В оперативной памяти компьютера запускается JVM. По сути это программа, которая служит для выполнения написанных нами Java-программ.
  2. С помощью начального загрузчика классов JVM загружает и инициализирует наш класс в памяти компьютера. В нашем примере это класс .
  3. Далее в нашем классе JVM ищет метод .
  4. Выполняется код метода . Если это необходимо для выполнения программы, производиться загрузка и инициализация других классов.
  5. После выполнения кода производится уборка мусора — очистка памяти и закрытие программы JVM.

IDE

  • IntelliJ IDEA
  • Eclipse
  • NetBeans

IntelliJ IDEAздесьв начале третьего уровняонлайн-курса JavaRush

За сколько можно выучить Java?

На изучение основ Java и выработку навыка программирования, скорее всего, уйдет от 6 до 12 месяцев, в зависимости от интенсивности вашего обучения. Чтобы сделать этот процесс систематическим, составьте план обучения, соберите необходимые источники и выделяйте несколько часов в день на занятия. Не забывайте о том, что ключевое в обучении программированию — это практика.

Заключение

  1. Установите Java на компьютер
  2. Изучите основные понятия
  3. Установите среду разработки
  4. Напишите и запустите свою первую программу.

Какие преимущества у Java

Кроссплатформенность. У Java есть специальная программа, исполняющая код, — виртуальная машина Java или Java Virtual Machine. Написали программный код один раз — работает с любой аппаратной платформой или операционной системой: от смарткарт до приложений для умных домов.

Комьюнити. Как мы уже сказали, Java — достаточно распространённый язык: им пользуется большое количество разработчиков, и решение практически любой проблемы, которая может возникнуть при работе с Java, уже кто-то придумал. Благодаря тысячам библиотек и форумов, можно найти готовое решение почти в любой ситуации. На GitHub, например, есть открытые проекты и документация, а на форуме Stack Overflow можно обратиться за помощью к комьюнити.

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

Java: что за зверь?

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

Что это значит?

С мультифункциональностью всё достаточно просто: Java действительно почти «волшебная таблетка» — на ней можно разрабатывать десктопные приложения, приложения под Android, заниматься веб-разработкой… Подробнее об этом ниже.

Строгая (сильная) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования. Это добавляет мороки: какие-то части приходится прописывать самому, а свободы у вас меньше, — зато в обмен на это вы получаете надёжность.

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

Дистрибутивы 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, включая их описания: ОС, архитектуру, окна лицензирования, поддержки и обслуживания.

Форматирование

блочной конструкции

4.1 Фигурные скобки

4.1.3 Пустые блоки могут быть сжатыми

4.4 Ограничение ширины строки в 100 символов

Исключения:

  1. Строки, в которых соблюдение ограничения по ширине невозможно (например, длинная ссылка URL в Javadoc или длинная JSNI-ссылка на метод)
  2. Объявления package и import (см. Разделы 3.2 и 3.3)
  3. Строки с командами в комментариях, которые могут быть скопированы и вставлены для выполнения в терминале

4.5 Перенос строки

4.5.1 Где делать перенос

  • разделяющая точка «.»
  • двойное двоеточие ссылочного метода «::»
  • амперсанд в скобках дженерика <T extends Foo & Bar>
  • разделитель в catch-блоке catch (FooException | BarException e)

4.6.1 Отступы

  • исключение: пустая строка между двумя последовательными полями (без кода между ними) используется опционально. При необходимости пустые строки используются для логического группирования полей
  • исключение: пустые строки между константами класса enum (см. Раздел 4.8.1)

4.6.2 Пробелы

  • &commat;SomeAnnotation({a, b})
  • String[][] x = {{«foo»}}; — пробел между {{ не нужен согласно п. 8 ниже
  • амперсанд внутри угловых скобок: <T extends Foo & Bar>
  • разделитель в блоке catch, содержащий несколько исключений: catch (FooException | BarException e)
  • двоеточие «:» в for-each
  • стрелка в лямбда-выражении: (String str) -> str.length()
  • двойное двоеточие «::» ссылочного метода, которое пишется как Object::toString
  • разделяющая точка «.», которая пишется как object.toString()

4.8 Особые конструкции

Почему здравый смысл важнее паттернов, а Active Record не так уж и плох

Так уж вышло, что разработчики, особенно молодые, любят паттерны, любят спорить о том, какой паттерн нужно применять здесь или там. Спорить до хрипоты: это фасад или прокси, а может даже синглтон. А если у вас не чистая, гексагональная архитектура, то некоторые разработчики готовы сжечь на костре Святой Инквизиции. При этом они забывают, что паттерны — это лишь возможные решения

У паттернов, также как и у любых принципов, есть границы применимости, и важно их понимать. Дорога в ад вымощена слепым и религиозным следованием пусть даже и авторитетным словам

А наличие во фреймворке нужных паттернов никак не гарантирует их правильного и осознанного применения.

JNI и Delphi. Использование Java методов при помощи JNI

Recovery Mode

Всем доброго времени суток! Сегодня мы рассмотрим такую тему, как использовать Java методы при помощи JNI. На самом деле все очень просто. Давайте сразу начнем с примера: Допустим у нас есть некое Java приложение на котором есть простая кнопка и при нажатии на эту кнопку будет исполняться некий код.

Как мы видим в событии клика на кнопку будет исполняться просто код для удаления файла. На Java все выглядит ясно и просто, но как же это будет выглядеть на Delphi с использованием JNI. На самом деле все проще чем кажется. Для этого нам нужно разобрать заглянуть и в класс File, который находится по адресу java.io.File. Из этого класса нам нужно:

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

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

Java против Python

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

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

Типизация

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

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

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

Читаемость

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

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

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


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

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

Язык программирования Java

Последнее обновление: 15.04.2018

На сегодняшний момент язык Java является одним из самых распространенных и популярных языков программирования. Первая версия языка появилась еще в 1996 году в недрах компании Sun Microsystems, впоследствии поглощенной компанией Oracle. Java задумывался как универсальный язык программирования, который можно применять для различного рода задач. И к настоящему времени язык Java проделал большой путь, было издано множество различных версий. Текущей версией является Java 12, которая вышла в марте 2019 года. А Java превратилась из просто универсального языка в целую платформу и экосистему, которая объединяет различные технологии, используемые для целого ряда задач: от создания десктопных приложений до написания крупных веб-порталов и сервисов. Кроме того, язык Java активно применяется для создания программного обеспечения для множества устройств: обычных ПК, планшетов, смартфонов и мобильных телефонов и даже бытовой техники. Достаточно вспомнить популярность мобильной ОС Android, большинство программ для которой пишутся именно на Java.

Особенности Java

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

Подобная архитектура обеспечивает кроссплатформенность и аппаратную переносимость программ на Java, благодаря чему подобные программы без перекомпиляции могут выполняться на различных платформах — Windows, Linux, Mac OS и т.д. Для каждой из платформ может быть своя реализация виртуальной машины JVM, но каждая из них может выполнять один и тот же код.

Java является языком с Си-подобным синтаксисом и близок в этом отношении к C/C++ и C#. Поэтому, если вы знакомы с одним из этих языков, то овладеть Java будет легче.

Еще одной ключевой особенностью Java является то, что она поддерживает автоматическую сборку мусора. А это значит, что вам не надо освобождать вручную память от ранее использовавшихся объектов, как в С++, так как сборщик мусора это сделает автоматически за вас.

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

Установка Java

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

Однако, так как мы собираемся не только запускать программы, но и разрабатывать их, нам потребуется специальный комплект для разработки JDK (Java Development Kit). JDK уже содержит JRE, а также включает ряд дополнительных программ и утилит, в частности компилятор Java.

Итак, с вышеупомянутого адреса загрузим программу установки JDK для последней версии Java.

Затем нас перебросит на страницу, где надо выбрать версию для целевой ОС — Windows, MacOS или Linux:

Для каждой ОС есть два варианта загрузки: в виде установщика, либо в виде архива, который не надо устанавливать. Например, моя ОС — Windows, поэтому я загружаю файл jdk_12_windows-x64_bin.exe, который представляет программу установки.

После загрузки запустим программу установки:

Нажмем на кнопку Next. На следующем экране необходимо указать, в какую папку будет производиться установка:

Оставим выбор папки по умолчанию и нажмем на Next для выполнения установки.

После завершения установки JDK мы увидим вот такое окно:

Итак, после установки JDK создадим первую программу на Java.

Вперед

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

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

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

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

А что с работой?

Прежде чем учить какой-то язык программирования, вы наверняка хотите знать: «А что же потом?»

Поэтому мы собрали для вас небольшую статистику по вакансиям.

На Яндекс.Работе в Москве от 900 до 1000 вакансий для Java-разработчиков, а на HeadHunter — около 2000 (все данные приведены за декабрь 2019 года).

Вакансии, в которых указана зарплата, начинаются от 70 тысяч рублей. Большинство предложений попадает в диапазон от 100 до 200 тысяч, а продвинутым разработчикам предлагают до 300 тысяч рублей.

Как вы видите, Java-разработчики востребованы, и даже по московским меркам у них хорошая зарплата (по данным Банка заработных плат HeadHunter, средняя зарплата по Москве в третьем квартале 2019 года составила 85 707 рублей).


С этим читают