Немного о языке Java
Java появился в 1995 году благодаря инженерам компании Sun Microsystems и, в частности, Джеймсу Гослингу. Инженеры разработали его как язык программирования для управления бытовой и домашней техникой.
Но в итоге язык оказался нужен всем.
Для чего нужен Java?
Любая программа на смартфоне или компьютере состоит из двух частей: frontend и backend. Чтобы лучше понять, что это такое, представьте, что программа — это автомобиль.
Frontend — это все, что вы видите перед креслом водителя: руль, кнопки, рычаги, стрелки приборов.
Backend — это все то, что находится под капотом и на самом деле заставляет автомобиль двигаться.
Java — это язык backend-разработки, на котором собирают «двигатель» приложения, чтобы он был мощным, надежным, безопасным, быстрым, универсальным и просто красивым.
Java используют системы с тысячами пользователей. Вот только несколько примеров:
Финансовая сфера и банки — Сбер, Тинькофф, Альфабанк.
Социальные сети — Facebook, Twitter, LinkedIn, Одноклассники.
Маркетплейсы — Ozon, Яндекс.Маркет, Amazon.
Онлайн-кинотеатры и видеохостинги — YouTube, Кинопоиск, Netflix.
Игры — Minecraft, Assasin’s Creed, The Sims 3 (мобильная версия).
Android-приложения — WhatsApp, Telegram, Viber.
Другие быстрорастущие компании, например Apple, Microsoft, Google, также используют Java,
Одна из причин популярности языка — кроссплатформенность: программы на Java одинаково хорошо работают на разных устройствах. Это выгодно для бизнеса: во-первых, стоимость разработки ниже; во-вторых, чем больше устройств, на которые можно установить ПО, тем больше его аудитория.
Терминология 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 и другие инструменты разработки, такие как компиляторы, отладчики и т.д.
Void отсутствие конкретного типа¶
Тип данных можно назвать полной противоположностью типа , так как этот тип означает отсутствие конкретного типа. Основное предназначение типа — явно указывать на то, что у функции или метода отсутствует возвращаемое значение.
Тип данных указывается с помощью ключевого слова (не путать с одноимённым оператором из JavaScript) и, в отличие от таких типов, как и , не имеет никаких значений.
Тип является подтипом и супертипом для и .
Однако с активным флагом , тип данных совместим лишь с и .
Кому-то может показаться, что примеры чересчур излишни, или что примеры, в которых результат вызова функции, не имеющей возвращаемого значения, присваивается полям с различными типами, не имеет никакого отношения к реальности. Да, это так. Но целью данных примеров является научить думать как компилятор TypeScript.
Когда функции в качестве возвращаемого типа указан тип , может показаться, что возвращая различные значения с помощью оператора , компилятор выбрасывает ошибки из-за понимания что функция помечена как ничего не возвращающая. Но это не так. Ошибка возникает по причине несовместимости типов.
Нельзя не упомянуть, что для функций и методов, которые ничего не возвращают и у которых отсутствует аннотация типа возвращаемого значения, вывод типов определяет принадлежность к типу .
В отличие от и , тип не имеет ни одного значения, которое могло бы явно продемонстрировать присвоение. Однако компилятор понимает, что имеет дело с типом при вызове функции или метода, которые не возвращают значение. Это становится ещё нагляднее, когда вывод типов устанавливает тип, полученный при вызове функции или метода, которые ничего не возвращают.
Тип является уникальным для TypeScript. В JavaScript подобного типа не существует.
Как запустить Java на Mac OS
Вот что нужно сделать для Java программирование с нуля и установки платформы на Mac OS X или macOS:
- Скачайте свежую версию Java (JDK) со страницы загрузки Java SE.
- Дважды кликните по скачанному DMG-файлу и следуйте инструкциям программы-установщика.
- Для верификации установки откройте терминал и введите следующую команду:
javac –version
Если Java установлена верно, на экран будет выведена версия программы (например, javac 1.8.0_60).
Следующим шагом будет установка IDE (интегрированной среды разработки) для написания и запуска Java-кода. Мы установим бесплатную версию IntelliJ IDEA и запустим на ней Java. Вот что нужно для этого сделать:
Перейдите на страницу загрузки IntelliJ и скачайте бесплатную версию Community Edition.
- Откройте скачанный DMG-файл и следуйте инструкциям по установке. Для быстрого доступа можно переместить IntelliJ IDEA в папку «Программы».
- Откройте IntelliJ IDEA. Выберите опцию «Don’t import settings («Не импортировать настройки») и нажмите «Ok. После этого примите политику приватности Jetbrains, нажав на кнопку «Accept.
- Теперь можно настроить интерфейс под себя. Также можно пропустить этот шаг и оставить всё по умолчанию. Если не уверены, просто пропускайте этот шаг, нажав кнопку «Skip All and Set Defaults («Пропустить всё и установить настройки по умолчанию»).
- Программа покажет вам страницу приветствия. Нажмите на кнопку «Create New Project («Создать новый проект»).
- В следующем окне выберите «Java в левой панели и нажмите «New вверху окна программы для выбора «JDK. Здесь надо выбрать место, куда установили JDK, после чего нажать Next.
- У вас будет вариант создать проект из шаблона («Create project from template). Игнорируем его и нажимаем кнопку «Next.
- На следующем шаге установки языка программирования Java введите имя проекта и нажмите кнопку «Finish.
- В левой панели вы увидите свой проект. Если панели не видно, перейдите в меню Views > Tool Windows > Project.
- Зайдите в Hello > New > Java и задайте имя класса. Мы назвали его First.
- Напишите Java-код и сохраните проект.
- Для запуска только что написанной программы, зайдите в Run > Run… Нажмите на First (то есть имя созданного нами файла) — программа скомпилирует файл и запустит его.
Методы в классах
Теперь, когда мы разобрались, что такое методы, давайте создадим два метода — eat и run — в классе Pet.
Пусть первый из них принимает на вход параметр типа int и увеличивает на это значение поле weight (сколько скушал питомец, на столько и потолстел). А после этого печатает в консоль «Я поел» и возвращает новый вес.
Второй из методов run пусть уменьшает вес на 1, но только если он больше 5, и печатает в консоль: «Я бегу». Иначе, если вес меньше или равен 5: «Я не могу бежать».
Теперь мы можем вызвать эти методы у объектов класса Pet. Чтобы это сделать, нужно обратиться к объекту, поставить точку и таким способом вызвать необходимый метод.
Иногда в каком-то методе требуется создать параметр, у которого имя совпадает с именем поля класса. В таких случаях, чтобы обратиться внутри метода именно к полю класса, а не к параметру нашего метода, используется ключевое слово this.
Для иллюстрации этого создадим метод, setName, который будет устанавливать переданное значение в поле name, а затем сообщать в консоль, что нашего питомца теперь зовут по-другому.
В результате с помощью this.name мы обращаемся к полю name и заносим в него значение из параметра метода name.
Также мы можем вызывать один метод вслед за другим. Давайте сделаем так, чтобы метод eat возвращал текущее животное с помощью this.
Теперь мы можем написать так:
Где можно запускать Java-код
Поэтому запускать код на Java можно везде, для чего уже была разработана JVM, то есть виртуальная машина Java. Например:
- ультрамощные серверы,
- компьютеры,
- смартфоны,
- кнопочные телефоны,
- роботы и микроконтроллеры типа Arduino, Raspberry Pi и многих других,
- фитнес-браслеты,
- GPS-трекеры,
- умные часы,
- умные телевизоры, холодильники, микроволновки, чайники и прочие домашние гаджеты,
- смарт-карты для доступа в помещения.
Представьте такую ситуацию: вы написали Java-программу, которая следит за свободным местом на диске, и как только его становится меньше 20% — выводит сообщение, мол, удали ненужные файлы. Теперь вы можете запустить эту программу везде, где есть JVM. Она сама разберётся с кодом, поймёт, для какого процессора она это делает, и запустит вашу программу. В результате один и тот же код будет следить за свободным местом на компьютере, кнопочном телефоне, смартфоне, планшете, умной микроволновке или домашней сигнализации.
Автоформатирование в IDE
В каждой популярной среде разработки есть встроенные средства для автоформатирования кода. В таблице приведены горячие клавиши для форматирования открытого файла в популярных IDE.
JetBrains IntelliJ IDEA | Eclipse IDE | |
---|---|---|
Windows\Linux | Ctrl + Alt + L | Ctrl + Shift + F |
MacOs | ⌘ + ⌥ + L | ⌘ + Shift + F |
Форматирование пакета или всего проекта в IntelliJ IDEA
Выберите в дереве проекта нужный пакет и вызовите Reformat, используя горячие клавиши. Как вариант, можно нажать по пакету правой кнопкой мыши и выбрать Reformat Code. Откроется диалоговое окно, в котором, кроме форматирования, будет предложено оптимизировать импорты (удалить лишние и привести в порядок существующие в соответствии с Code Style). Рекомендуется отметить этот пункт и нажать ОК.
Результат выполнения команды автоформатирования:
Минусы Java
Выделить недостатки языка так же четко, как и преимущества, гораздо сложнее. Минусы довольно расплывчатые. Первое, что приходит на ум – порог вхождения. Да, я упомянул ранее, что Java похож на JavaScript, но начать изучать второй гораздо проще. Java, несмотря на огромное сообщество поклонников и безумную популярность, все еще дается новичкам сложнее.
Java создавался для решения относительно комплексных задач. Поэтому использовать его для написания небольших скриптов не рекомендуется. Это как вспахивать грядку на небольшом дачном участке с помощью промышленного комбайна. Можно, но зачем?
А еще из-за того, что весь код запускается в виртуальных машинах, Java сложнее оптимизировать. Поэтому производительность Java-приложений временами может ощутимо снижаться. В частности, это было заметно на ранних этапах развития Android. Тогда он заработал себе репутацию вечно зависающего и до жути медлительного продукта. Всему виной был Java.
Кратчайшая история Java
Группа инженеров из компании Sun Microsystems под руководством Джеймса Гослинга разрабатывала Java как язык для программирования бытовых устройств. Он должен был стать альтернативой C/C++ как более простой и кроссплатформенный язык.
Изначально его назвали Oak («Дуб») — в честь дерева, которое росло у Гослинга во дворе, — но такое название, увы, уже было занято другим языком. Поэтому язык назвали Java в честь марки кофе (а кофе, как известно, лучший друг программиста). Поэтому и на официальной эмблеме изображена чашка.
Еще у Java есть свой талисман — Duke, красноносое существо. Его создали для презентации нового контроллера Star7, прародителя интернета вещей, умеющего управлять домашней и офисной техникой.
Duke — талисман Java
Вместо заключения
Если начнёте изучать Java, не ошибётесь — это перспективный язык программирования, полный самых разнообразных возможностей.
Перед тем, как приступить к изучению Java, воспользуйтесь несколькими советами:
- Не читайте обучающие статьи и примеры как роман. Единственный способ стать хорошим программистом — писать много кода.
- Если переходите с другого языка программирования (скажем, C#), не надо писать код в стиле C#.
- Найдите онлайн-сообщества, посвященные Java. Когда научитесь писать простые программы на Java, найдите популярные сайты и форумы, посвященные Java. Пробуйте решать проблемы, возникающие у других программистов. Это отличный способ расширить собственные знания. К тому же, если у вас возникнет загвоздка, вы будете знать, где можно попросить помощи.
Надеемся, эта статья подтолкнёт вас к изучению Java и поможет начать работу над первыми программами.
Пожалуйста, оставьте свои комментарии по текущей теме материала. За комментарии, дизлайки, подписки, отклики, лайки низкий вам поклон!
МКМихаил Кузнецовавтор-переводчик статьи «Learn Java Programming. The Definitive Guide»
Какие программы можно писать на Java
В общем-то, любые. Java тем и хорош, что это язык общего назначения – уже в базовой комплектации он подходит для разработки под целый арсенал программных платформ. Нужен виджет для веба? Java подходит. Нужно сделать универсальное приложение для Windows, Linux и macOS? Не проблема. Разрабатывать под Android тоже можно.
Сценариев использования Java много. Язык действительно универсален и подходит для разработки любого ПО под любое ПО. Поэтому лучшим ответом на вопрос, какие программы можно писать на Java, будет – те, что вы сами захотите создать.
Java и Android
Исторически сложилось так, что Java стал одним из флагманских языков для разработки под Android. Виртуальные машины, встроенные в мобильную операционную систему Google, позволяют инициализировать Java-код. По этой причине внушительное количество ПО, созданного для Android, было написано на языке Sun Microsystems.
Сейчас есть и другие языки для создания приложений под Android, но Java все еще остается одним из наиболее популярных.
Примеры лучших программ, написанных на Java
-
В 2004 году инженеры NASA использовали утилиту Maestro Science Activity Planner, написанную на Java, для управления ровером Spirit, пока тот бороздил просторы «красной» планеты.
-
Уже на протяжении 20 лет специалисты в сфере космической отрасли используют JavaFX Deep Space Trajectory Explorer для навигации за пределами Земли.
-
Поиск, встроенный в самую популярную веб-энциклопедию (Википедию), был изначально написан на Java, а потом заменен на Elasticsearch, движок, который тоже основан на Java.
-
Одна из популярнейших игр – Minecraft – была создана Марком Перссоном в 2009 году и написана на Java. На этом же языке пишутся различные модификации и дополнения к игре.
-
IntelliJ IDEA – универсальная, продвинутая среда разработки тоже основана на Java.
И таких примеров масса. Java-приложения используются астронавтами, инженерами, медиками, системными администраторами и т.д. Практически любую сферу деятельности этот язык так или иначе затронул.
Оператор ! (Definite Assignment Assertion)¶
Для повышения типобезопасности программы, правила накладываемые опцией (глава Опции компилятора), действуют также на переменные инициализирующихся в чужом контексте.
Чтобы избежать ошибки при обращении к переменным, которые инициализированы в чужом контексте, нужно использовать definite assignment assertions. definite assignment assertions также указывается с помощью символа восклицательного знака () и располагается после идентификатора переменной. Указывая данный оператор каждый раз при обращении к переменной, разработчик сообщает компилятору, что берет на себя все проблемы, которые могут быть вызваны отсутствием значения у переменной.
Приоритет операторов в Java
Приоритет операторов определяет группирование терминов в выражении. Это влияет как вычисляется выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например оператор умножения имеет более высокий приоритет, чем оператор сложения:
Например, x = 7 + 3 * 2. Здесь x присваивается значение 13, не 20, потому что оператор «*» имеет более высокий приоритет, чем «+», так что сначала перемножается «3 * 2», а затем добавляется «7».
В таблице операторы с наивысшим приоритетом размещаются в верхней части, и уровень приоритета снижается к нижней части таблицы. В выражении высокий приоритет операторов в Java будет оцениваться слева направо.
Категория | Оператор | Ассоциативность |
Постфикс | () [] . (точка) | Слева направо |
Унарный | ++ — — ! ~ | Справа налево |
Мультипликативный | * / % | Слева направо |
Аддитивный | + — | Слева направо |
Сдвиг | >> >>> | Слева направо |
Реляционный | > >= | Слева направо |
Равенство | == != | Слева направо |
Побитовое «И» («AND») | & | Слева направо |
Побитовое исключающее «ИЛИ» («XOR») | ^ | Слева направо |
Побитовое «ИЛИ» («OR») | | | Слева направо |
Логическое «И» («AND») | && | Слева направо |
Логическое «ИЛИ» («OR») | || | Слева направо |
Условный | ?: | Справа налево |
Присваивание | = += -= *= /= %= >>= | Справа налево |
Запятая | , | Слева направо |
В следующем уроке поговорим об управлении циклом в программировании на Java. В этом уроке будут описаны различные типы циклов, как циклы могут быть использованы в разработке программ, и для каких целей они используются.
Поделитесь:
Насколько востребован Java?
Если ввести на HH.ru запрос «Java», то по всей России найдется 10 с лишним тысяч вакансий. За рубежом найдется в разы больше предложений. Так что спрос на Java-разработчиков есть. Это я к тому, что начав учить язык, не нужно переживать, что потом не получится найти работу со стабильным доходом. Если станете хорошим специалистом, то однозначно получится. Минимальная зарплата – от 100 000 рублей.
Сотрудники требуются в банковские организации (много вакансий от Сбера), в стартапы всех мастей, включая AR/VR-проекты. Даже в крупные зарубежные компании зовут, и платят от полумиллиона рублей, предоставляя кучу других бонусов.
Инструменты, которые понадобятся
Для выполнения примеров, рассмотренных в этом учебнике, Вам нужен компьютер Pentium 200 МГц с минимальной оперативной памятью 64 Мб (рекомендуется оперативная память 128 Мб).
Вам также понадобится следующее программное обеспечение:
- Linux 7.1, Windows 95/98/2000/7/8 и выше или другая операционная система.
- JDK 5 и выше.
- Notepad или любой другой текстовый редактор.
Самоучитель обеспечит необходимыми навыками для создания GUI, сетевых и веб-приложений.
Ознакомившись с особенностями истории появления и преимуществами языка Java, Вы закончили урок введения в язык программирования. Следующий урок будет Вас вести к изучению языка и документации. Проинструктирует Вас о том, как установить и подготовить среду для разработки приложений.
Поделитесь:
Побитовые операторы
Java определяет несколько побитовых операторов, которые могут быть применены для целочисленных типов: int, long, short, char и byte. В Java побитовый оператор работает над битами и выполняет операцию бит за битом. Предположим, если a = 60; и b = 13; то в двоичном формате они будут следующие:
a = 0011 1100
b = 0000 1101
——————
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Предположим целочисленные переменная A равна 60, а переменная B равна 13. В следующей таблице перечислены побитовые операторы в Java:
Оператор | Описание | Пример |
& (побитовое и) | Бинарный оператор AND копирует бит в результат, если он существует в обоих операндах. | (A & B) даст 12, который является 0000 1100 |
| (побитовое или) | Бинарный оператор OR копирует бит, если он существует в любом из операндов. | (A | B) даст 61 который равен 0011 1101 |
^ (побитовое логическое или) | Бинарный оператор XOR копирует бит, если он установлен в одном операнде, но не в обоих. | (A ^ B) даст 49, которая является 0011 0001 |
~ (побитовое дополнение) | Бинарный оператор дополнения и имеет эффект «отражения» бит. | (~ A) даст -61, которая является формой дополнением 1100 0011 в двоичной записи |
Бинарный оператор сдвига влево. Значение левых операндов перемещается влево на количество бит, заданных правым операндом. | A | |
>> (сдвиг вправо) | Бинарный оператор сдвига вправо. Значение правых операндов перемещается вправо на количество бит, заданных левых операндом. | A >> 2 даст 15, который является 1111 |
>>> (нулевой сдвиг вправо) | Нулевой оператор сдвига вправо. Значение левых операндов перемещается вправо на количество бит, заданных правым операндом, а сдвинутые значения заполняются нулями. | A >>> 2 даст 15, который является 0000 1111 |
Пример
Следующий простой пример показывает, программно побитовые операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
Будет получен следующий результат:
Порядок выполнения операторов
Когда в выражении несколько логических операторов, результат вычисляется с учётом их приоритета. Если нет логических скобок, то операции выполняются в таком порядке:
- ! (NOT)
- & (AND)
- ^ (XOR)
- | (OR)
- && (условный AND)
- || (условный OR)
Если одинаковые операции стоят по соседству, то раньше выполняется та, что левее.
Первый пример
Вычислим true ^ true & false:
- Выбираем самый приоритетный оператор (если таких больше одного — тот, что левее). У нас самый приоритетный & (он здесь такой один).
- Смотрим, что слева и справа от него: это true и false соответственно.
- Вычисляем выражение true & false — получаем false.
- В исходном выражении заменяем true & false результатом его вычисления (false) — и получаем: true ^ false.
- Вычислив это выражение, получаем результат true.
Или короче:
- true ^ true & false
- true ^ false
- true
Второй пример
Заменим & на &&:
Теперь самый приоритетный оператор в выражении это ^ — и порядок вычислений будет уже другой:
- true ^ true && false
- false && false
- false
Как логические операторы работают с целыми числами
Мы уже знаем, что логические операции применимы к логическим аргументам (операндам). Каждый логический операнд — это выражение, которое является истинным (true) или ложным (false) — то есть возвращает булево значение. Иными словами, логический операнд — это выражение типа boolean.
Выходит, применять логические операторы к целочисленным аргументам нельзя?
Можно. Внутри Java все целочисленные типы представлены двоичными числами разной длины. И к ним уже применимы бинарные логические операторы ^, | и &.
Только в этом случае они работают с двоичным представлением операндов — выполняют операции над их битами попарно (рассматривая их как логические единицы и нули). Поэтому и сами операторы ^, | и & зовутся побитовыми.
Как ^, | и & работают с целочисленными операндами
Рассмотрим пример:
Чтобы повторить вычисления Java, нужно:
- Перевести значения обоих операндов в двоичную систему счисления.
- Расположить результаты перевода друг под другом.
- Сравнять в них число разрядов (дополнить лидирующими нулями).
- Применить к битам из каждого столбца оператор (&, | или ^).
- Записать результат каждой операции ниже в том же столбце.
- Перевести итог в десятичную форму.
Потренируемся: вычислим сами 3 & 5
Число 3 в двоичной системе счисления имеет вид 11, а число 5 — 101.
Так как у числа 5 три разряда в двоичной системе, а у числа 3 — всего два, добавим лидирующий ноль к числу 3 в двоичной системе и получим 011.
Берём цифры из обоих чисел и применяем к ним попарно оператор & (AND):
3(10) = 011(2) | 1 | 1 | |
& | & | & | |
5(10) = 101(2) | 1 | 1 | |
= | = | = | |
001(2) = 1(10) | 1 |
«1С Бухгалтерия 8.3 — понятный самоучитель для начинающих» от «Школы 1С»
Пройти курс
Продолжительность: 41 урок. Максимальная длительность урока — 12 минут.
Формат обучения: видеоуроки. Смотреть их можно в любое удобное время.
В роликах зрителям объясняют, как:
- оприходовать товары, материалы на склад, списывать в производство или розницу;
- начислять зарплату, отпускные, компенсации за неиспользованный отпуск, больничные;
- оформлять отгрузку товаров, выписывать счета-фактуры, в том числе на авансовый платёж;
- создавать платёжные поручения, обрабатывать банковские выписки;
- ставить на учёт основные средства, начислять амортизацию;
- списывать канцтовары, ГСМ;
- вести учёт расходов будущих периодов.
- подробное изложение с демонстрацией каждой операции;
- упор сделан на практическое использование 1С.
- отсутствие возможности уточнить непонятные моменты — обратная связь с лектором отсутствует;
- материал относится к 2018 году — информация не обновляется.