Быстрый старт с java: от знакомства до вашей первой игры
Содержание:
- Java 8
- Изолированное изучение кода
- iPhone 5S ошибка 9: советы от производителя
- Практическая информация
- Скачать Java 8 на Windows 10
- «Java-разработчик» от Skillbox
- Java от programmerslife
- Условные выражения
- Как начать писать на Java
- Только практика: CodeAcademy
- Поразрядные операции
- Создайте план обучения
- Переменные в Java
- Для продвинутых
- Основы Java: ваша первая программа
- В чем разница между версиями Java?
Java 8
Functional Interface
@FunctionalInterface
-
Методы с модификатором default позволяют добавлять новые методы в интерфейсы, не нарушая их существующую реализацию.
Да-да, мы добавляем реализованный метод в интерфейс, и при имплементации данного метода его можно не переопределять, а использовать как унаследованный. Но если класс реализует два интерфейса с данным методом, у нас будет ошибка компиляции, а если реализует интерфейсы и наследует класс с определенным одинаковым методом, метод класса родителя будет перекрывать методы интерфейса и эксепшен не вылезет.
-
Методы static в интерфейсе работают так же, как и static методы в классе. Не забываем: наследовать static методы нельзя, как нельзя вызывать и static метод из класса-наследника.
Predicate — принимает аргументом некоторое значение T, возвращает boolean.
Пример:
Consumer — принимает аргумент типа Т, ничего не возвращает (void).
Пример:
Supplier — ничего не принимает на вход, но возвращает некоторое значение T.
Пример:
Function — принимает на вход параметр типа Т, возвращает значение типа R.
Пример:
UnaryOperator — принимает аргумент Т и возвращает значение типа Т.
Пример:
Method reference
-
Ссылка на конструктор:
-
Ссылка на статический метод:
-
Ссылка на нестатический метод объекта определенного типа:
-
Ссылка на обычный(нестатический) метод конкретного объекта
API Time
- LocalDate — это конкретная дата, как пример — 2010-01-09;
- LocalTime — время, учитывающее часовой пояс — 19:45:55 (аналог LocalDate);
- LocalDateTime — комбо LocalDate + LocalTime — 2020-01-04 15:37:47;
- ZoneId — представляет часовые пояса;
- Clock — с помощью этого типа можно достучаться до текущего времени и дате.
Optional
java.utilnullOptional.ofnullNullPointerException
- Особенности Java 8: максимальное руководство на JavaRush — часть первая и вторая;
Изолированное изучение кода
Новички часто теряются в догадках, стоит ли вступать в онлайн-сообщества разработчиков или посещать профильные мероприятия. Запомните одно: никто не желает вам зла. Сообщество программистов всегда готово помочь. Ведь так и появляются те самые источники открытых данных. Все программисты когда-либо работали в команде, и каждый из них в свое время с чего-то начинал.
Посмотрите, сколько форумов и интернет-ресурсов посвящено программированию. Разработчики с радостью делятся накопленными знаниями и всегда открыты для сотрудничества. Здесь вы сможете начать свое обучение, получить подсказки от опытных коллег, а затем найти свой первый проект по разработке.
iPhone 5S ошибка 9: советы от производителя
Некоторые советы дает сама Apple. Компания утверждает, что эта ошибка всплывает при утрате связи между iOS-гаджетов и ПК. А именно речь идет об обрыве связи с утилитой iTunes, осуществляемой через USB-шнур.
Иногда подобное случается, когда юзер сам отключает гаджет от ноутбука или ПК в процессе прошивки.
Чаще всего возникает ошибка 9 при восстановлении iPhone пятой версии, но не редкость, когда такое случается на 6S и других моделях телефонов.
Решения этой проблемы Apple предлагает следующее:
- Устранение неисправностей подключения по USB.
- Использование другого шнура.
- Выбор другого порта ПК или ноутбука.
- Прошивка на другом ноутбуке или ПК.
- Тщательный анализ стороннего софта и устранение конфликтов с «антивирусниками».
Как видите, все предложенные Apple варианты носят общий характер. Безусловно, все их стоит опробовать, если ошибка 9 появилась у вас в процессе прошивки смартфона. Но посмотрим, что советуют специалисты, исходя их своего практического опыта.
Практическая информация
Во-первых, давайте взглянем на некоторые общие практические вопросы, которые возникают у людей при попытке выбрать правильную версию Java для своего проекта.
Какую версию Java я должен использовать?
Новые версии Java теперь выходят каждые 6 месяцев. Следовательно, Java 15 запланирована на сентябрь 2020 года, Java 16 на март 2021 года и так далее. В прошлом циклы выпуска Java были намного длиннее, до 3-5 лет. Этот график демонстрирует это:
С появлением такого количества новых версий в действительности имеются следующие основные сценарии использования:
- Унаследованные проекты в компаниях часто связаны с использованием Java 8 (см. Раздел «Почему компании все еще застревают на Java 8?» Ниже). Таким образом, вы также будете вынуждены использовать Java 8.
- Некоторые унаследованные проекты даже работают на Java 1.5 (выпущен в 2004 г.) или 1.6 (выпущен в 2006 г.) — сожалею, друзья!
- Если вы уверены, что используете самые последние IDE, интегрированные среды и инструменты сборки и запускаете новый проект, вы можете без колебаний использовать Java 11 (LTS) или даже самую последнюю версию Java 14.
Почему компании все еще застряли на Java 8?
Существует множество разных причин, по которым компании все еще придерживаются Java 8. Вот некоторые из них:
- В некоторых компаниях действуют политики, позволяющие использовать только версии LTS, и полагаются на поставщиков своих ОС для предоставления этих сборок, что требует времени.
Подводя итог, у вас есть сочетание практических вопросов (обновление ваших инструментов, библиотек, фреймворков) и политических проблем.
Почему некоторые версии Java называются 1.X?
Java до версии 9 просто имела другую схему именования. Итак, Java 8 также может называться 1.8, Java 5 может называться 1.5 и т.д. Когда вы выполнили команду java -version с этими версиями, вы получили такой вывод:
Это просто означает Java 8. С переходом к основанным на времени выпускам с Java 9 также изменилась схема именования, и версии Java больше не имеют префикса 1.x. Теперь номер версии выглядит так:
Скачать Java 8 на Windows 10
Скачайте с официального сайта бесплатно последнюю версию Java для компьютера с Windows 10 или обновите устаревшую модификацию 8 update на нашем сайте, кликнув по одной из кнопок ниже. Выберите разрядность для загрузки Java на русском языке.
Системные требования:
Операционная система | Windows 10 (8u51 или поздняя) |
Архитектура | х64, х86 |
Размер оперативной памяти | 128 Мб |
Место на жестком диске | Не менее 124 Мб |
Процессор | Pentium 2 поколения с тактовой частотой от 266 МГц |
Браузер | Internet Explorer 9 и выше, Firefox, Chrome |
В зависимости от разрядности ОС выбирайте 64- или 32-битную версию. Если используете 32- и 64-разрядные браузеры, скачайте и установите обе версии Джавы.
Инструкция по установке ПО
Интерфейс мастера установки виртуальной машины Java на английском языке. Но инсталляция простая, в несколько кликов. Время установки отличается в зависимости от скорости интернет-соединения.
Как установить Java 32/64 bit на Windows 10:
- Запустите установочный файл двойным кликом. По умолчанию файл загружается на компьютер в папку «Загрузки», если иной путь не указан в настройках браузера.
- В первом окне нажмите «Установить».
- Дальше нажмите OK.
- Дождитесь окончания установки, закройте окно мастера и перезагрузите компьютер.
Настройка программы
В некоторых случаях может понадобиться внести изменения в настройки виртуальной машины в ОС Windows 10.
- Чтобы открыть Java Control Panel, нажмите меню «Пуск».
- Прокрутите список установленных приложений в самый низ, откройте папку «Служебные Windows».
- Выберите «Панель управления».
- Переключите режим просмотра на «Крупные значки».
- Откройте настройки Джавы двойным кликом.
- Выберите вкладку Security.
- Отметьте нужный режим безопасности. В режиме Very High (очень высокий) будут работать только программы, имеющие специальный сертификат. Остальные приложения будут блокироваться.
- Отметьте галочкой пункт Enable Java content for browser and Web Start applications для автоматического запуска плагина в браузере.
- Нажмите Apply, чтобы применить изменения, и OK.
- Перезагрузите компьютер.
«Java-разработчик» от Skillbox
Длительность | 4 месяца |
Уровень | с нуля |
Для кого подходит | ● Новичкам в разработке ● Начинающим программистам |
Формат | видеолекции + домашнее задание + обратная связь от ментора |
Гарантии | Помощь в составлении резюме |
Итоги | Диплом в соответствии с установленным образцом + проекты в портфолио |
Цена | ● Полная – 75 тыс. руб. в месяц; ● 46 тыс. руб. при единовременной оплате и только для первых 20-ти студентов ● Есть система рассрочки без первого платежа – 3 900 рублей в месяц! ● Гарантия возврата денег в течение 14 дней. |
Ссылка |
- Вводная часть
- Знакомством с Java-синтаксисом
- Изучение Git – системы по контролю отдельных версий
- Classes и objects
- Даты, а также строки и числа
- Коллекции
- Массивы
- Специфика ООП для Java
- Осуществление исключений и отладки, логгирования и тестирования
- Работа с сетью и файлами
- Работа с базой MySQL
- Применение многопоточности
- Создание веб-приложений
- Использование нереляционных баз данных и очередей
- Оптимизация и производительность
- Работа с распределёнными хранилищами и вычислениями
- Завершающая часть
Бонус-модули:
- Паттерны проектирования
- Алгоритмы данных и их структура
- Протокол HTTP
Преподаватели:
- Пилипенко Даниил — директор Symbio Way
- Овчинников Михаил — один из методистов в Skillbox, часто выступает докладчиком на крупнейших IT-конференциях в России.
По окончании вы сможете:
- Свободно ориентироваться в Java
- Собирать и подготавливать данные для анализа
- Импортировать и экспортировать их
- Понимать архитектуры и структуры баз данных (сокр. БД)
- Группировать и фильтровать данные из БД
- Работать с разными форматами файлов
- Создавать и править Desktop-приложения — от разработки интерфейса и событий, до их обработки и кастомизации интерфейса
- Разрабатывать приложения на Android
- Знать языки Kotlin и Scala
- Писать сложные SQL-запросы
Тизер курса
Моё мнение: Отличный курс для Java-программистов. Модули охватывают не только необходимые темы, но и дополнительные. Например, не только основы Java-программирования, но и работа над производительностью, оптимизацей. Отдельный приятный момент — бонус-модули. Там предлагаются готовые шаблоны проектирования, но которым ученик сможет легко сделать что-то аналогичное. Skillbox предлагает комфортные условия оплаты и отсрочку по первому платежу.
Эта программа позволит вам освоить Java без проблем, но вот здесь немного меньше практики, чем в первом курсе из этой подборки, потому что не учитывается возможность совместной работы в составе команды разработки. Но если вам нужен только онлайн-курс, завязанный на Java, это отличный вариант!
Получить скидку →
Java от programmerslife
Длительность | 3 месяца |
Уровень | с нуля |
Для кого подходит | ● Новичкам в разработке ● Начинающим программистам |
Формат | видеолекции + домашнее задание + обратная связь от ментора |
Гарантии | Гарантии не даются |
Итоги | Навык Java-программирования + проекты в портфолио |
Цена | 10 000 рублей |
Ссылка |
- Инсталлирование JDK
- Создание простейшего начального проекта
- Установка Git (Smart Git) и последующее освоение
- Освоение GitHub. Настраивание gitignore-файла
- Использование else, if — условных операторов
- Понятие функций и классов
- Setters и Getters
- Вложенность classes. Понятие final-class
- Интерфейсы и классы управления файлами
- Коллекции — Set и List, Map и Queue, а также реализация их в виде Array List и Hash Map, Hash Set, и Array Deque.
- Google-библиотеки Json
- Освоение процессов и потоков в терминах ОС
- HTTP протоколы
- Соединение всех знаний вместе
Преподаватель:
Мельничук Иван — программист с 10-летним опытом.
По окончании вы сможете:
- Самостоятельно устанавливать программу и работать с Java
- Управлять базами данных на Java и с комментариями
- Работать с List и Map, Set и Queue
- Работать с Spring-фреймворком
- Знать проектировочные шаблоны DAO, DTO, Factory.
- Составлять запросы для SQL
- Применять Json — потоковый парсер и DOM-парсер
- Использовать Gson и API-библиотеки
- Работать с HTTP
Мои впечатления: Хороший и недорогой курс для всех, кто хочет быстро освоить Java-разработку. Минус в том, что учеба ограничивается только одним преподавателем. Хотя, у него и отличный опыт работы. Полноценным специалистом после этого не стать, скорее всего, не получится, но для начала неплохой вариант. Ещё из неприятных моментов — нет никаких гарантий трудоустройства, а по окончанию учебы не выдаётся никаких документов.
Условные выражения
Последнее обновление: 16.04.2018
Условные выражения представляют собой некоторое условие и возвращают значение типа boolean, то есть значение true
(если условие истинно), или значение false (если условие ложно). К условным выражениям относятся операции сравнения и логические
операции.
Операции сравнения
В операциях сравнения сравниваются два операнда, и возвращается значение типа — , если выражение верно,
и , если выражение неверно.
-
сравнивает два операнда на равенство и возвращает (если операнды равны) и (если операнды не равны)
int a = 10; int b = 4; boolean c = a == b; // false boolean d = a == 10; // true
-
сравнивает два операнда и возвращает , если операнды НЕ равны, и , если операнды равны
int a = 10; int b = 4; boolean c = a != b; // true boolean d = a != 10; // false
-
< (меньше чем)
Возвращает , если первый операнд меньше второго, иначе возвращает
int a = 10; int b = 4; boolean c = a < b; // false
-
> (больше чем)
Возвращает , если первый операнд больше второго, иначе возвращает
int a = 10; int b = 4; boolean c = a > b; // true
-
>= (больше или равно)
Возвращает , если первый операнд больше второго или равен второму, иначе возвращает
boolean c = 10 >= 10; // true boolean b = 10 >= 4; // true boolean d = 10 >= 20; // false
-
<= (меньше или равно)
Возвращает , если первый операнд меньше второго или равен второму, иначе возвращает
boolean c = 10 <= 10; // true boolean b = 10 <= 4; // false boolean d = 10 <= 20; // true
Логические операции
Также в Java есть логические операции, которые также представляют условие и возвращают true или false и обычно объединяют несколько операций
сравнения. К логическим операциям относят следующие:
-
(c равно , если либо a, либо b (либо и a, и b) равны , иначе c будет равно )
-
(c равно , если и a, и b равны , иначе c будет равно )
-
(c равно , если b равно , иначе c будет равно )
-
(c равно , если либо a, либо b (но не одновременно) равны , иначе c будет равно )
-
(c равно , если либо a, либо b (либо и a, и b) равны , иначе c будет равно )
-
(c равно , если и a, и b равны , иначе c будет равно )
Здесь у нас две пары операций и (а также и ) выполняют
похожие действия, однако же они не равнозначны.
Выражение будет вычислять сначала оба значения — a и b и на их основе выводить результат.
В выражении же
вначале будет вычисляться значение a, и если оно равно , то вычисление значения b уже смысла не имеет,
так как у нас в любом случае уже c будет равно . Значение b будет вычисляться только в том случае, если a равно
То же самое касается пары операций . В выражении будут вычисляться оба значения — a и b.
В выражении же сначала будет вычисляться значение a,
и если оно равно , то вычисление значения b уже не имеет смысла, так как значение c в любом случае равно .
Значение b будет вычисляться только в том случае, если a равно
Таким образом, операции и более удобны в вычислениях, позволяя сократить время на вычисление значения выражения и тем самым повышая
производительность. А операции и больше подходят для выполнения поразрядных операций над числами.
Примеры:
boolean a1 = (5 > 6) || (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается true boolean a2 = (5 > 6) || (4 > 6); // 5 > 6 - false, 4 > 6 - false, поэтому возвращается false boolean a3 = (5 > 6) && (4 < 6); // 5 > 6 - false, поэтому возвращается false (4 < 6 - true, но не вычисляется) boolean a4 = (50 > 6) && (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается true boolean a5 = (5 > 6) ^ (4 < 6); // 5 > 6 - true, поэтому возвращается true (4 < 6 - false) boolean a6 = (50 > 6) ^ (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается false
НазадВперед
Как начать писать на Java
Если вы планируете разрабатывать приложения на Java на своем настольном компьютере, то вам нужно будет загрузить и установить JDK.
Вы можете получить последнюю версию JDK непосредственно с сайта Oracle. Как только вы установите его, ваш компьютер будет иметь возможность понимать и запускать код на Java. Тем не менее, вам все равно понадобится некоторое вспомогательное ПО, чтобы было действительно удобно писать код. Это так называемая «интегрированная среда разработки» или IDE: интерфейс, используемый разработчиками для ввода текста кода и вызова JDK.
При разработке для Android вы будете использовать IDE Android Studio. Она не только послужит интерфейсом для кода на Java (или Kotlin), но и станет мостом для доступа к специфичным для Android вызовам из SDK.
Для целей нашего краткого руководства по Java может быть и проще написать свой код непосредственно в приложении-компиляторе Java. Они могут быть скачаны для Android и iOS, можно даже найти веб-приложения, которые работают в вашем браузере. Эти инструменты предоставляют все необходимое в одном месте и позволяют сразу начать тестирование кода. Например, compilejava.net.
Только практика: CodeAcademy
Это, пожалуй, одна из самых известных онлайн-платформ для изучения разных языков программирования. И, конечно же, тут есть специальный раздел для изучающих Java. Здесь вы с самого первого урока начнете писать код. Если задание покажется слишком сложным (а для новичков — это совершенно нормально), то можете воспользоваться полезными подсказками. Логика обучения проста: читаете задание, пишите код, запускаете его, смотрите результат, переходите к следующему уроку. Задания постепенно усложняются до тех пор, пока вы не научитесь писать код с чистого листа. Есть очень полезный раздел FAQ и возможность обсуждения задания с другими учениками.
Данный курс может стать отличным подспорьем при изучении Java. Как уже было сказано выше, для успешного освоения Java нужно писать много кода.
Поразрядные операции
Последнее обновление: 30.10.2018
Поразрядные операции выполняются над отдельными разрядами или битами чисел. В данных операциях в качестве операндов могут выступать только целые числа.
Каждое число имеет определенное двоичное представление. Например, число 4 в двоичной системе 100, а число 5 — 101 и так далее.
К примеру, возьмем следующие переменные:
byte b = 7; // 0000 0111 short s = 7; // 0000 0000 0000 0111
Тип byte занимает 1 байт или 8 бит, соответственно представлен 8 разрядами. Поэтому значение переменной b в двоичном коде будет
равно . Тип short занимает в памяти 2 байта или 16 бит, поэтому число данного типа будет представлено
16 разрядами. И в данном случае переменная s в двоичной системе будет иметь значение .
Для записи чисел со знаком в Java применяется дополнительный код (two’s complement), при котором
старший разряд является знаковым. Если его значение равно 0, то число положительное, и его двоичное представление не отличается
от представления беззнакового числа. Например, 0000 0001 в десятичной системе 1.
Если старший разряд равен 1, то мы имеем дело с отрицательным числом. Например, 1111 1111 в десятичной системе представляет -1.
Соответственно, 1111 0011 представляет -13.
Логические операции
Логические операции над числами представляют поразрядные операции. В данном случае числа рассматриваются в двоичном представлении, например, 2 в двоичной системе
равно 10 и имеет два разряда, число 7 — 111 и имеет три разряда.
-
Умножение производится поразрядно, и если у обоих операндов значения разрядов равно 1,
то операция возвращает 1, иначе возвращается число 0. Например:int a1 = 2; //010 int b1 = 5;//101 System.out.println(a1&b1); // результат 0 int a2 = 4; //100 int b2 = 5; //101 System.out.println(a2 & b2); // результат 4
В первом случае у нас два числа 2 и 5. 2 в двоичном виде представляет число 010, а 5 — 101. Поразрядное умножение чисел (0*1, 1*0, 0*1) дает результат 000.
Во втором случае у нас вместо двойки число 4, у которого в первом разряде 1, так же как и у числа 5, поэтому здесь результатом операции
(1*1, 0*0, 0 *1) = 100 будет число 4 в десятичном формате. -
(логическое сложение)
Данная операция также производится по двоичным разрядам, но теперь возвращается единица,
если хотя бы у одного числа в данном разряде имеется единица (операция «логическое ИЛИ»). Например:int a1 = 2; //010 int b1 = 5;//101 System.out.println(a1|b1); // результат 7 - 111 int a2 = 4; //100 int b2 = 5;//101 System.out.println(a2 | b2); // результат 5 - 101
-
(логическое исключающее ИЛИ)
Также эту операцию называют XOR, нередко ее применяют для простого шифрования:
int number = 45; // 1001 Значение, которое надо зашифровать - в двоичной форме 101101 int key = 102; //Ключ шифрования - в двоичной системе 1100110 int encrypt = number ^ key; //Результатом будет число 1001011 или 75 System.out.println("Зашифрованное число: " +encrypt); int decrypt = encrypt ^ key; // Результатом будет исходное число 45 System.out.println("Расшифрованное число: " + decrypt);
Здесь также производятся поразрядные операции. Если у нас значения текущего разряда у обоих чисел разные, то возвращается 1, иначе возвращается 0.
Например, результатом выражения 9^5 будет число 12. А чтобы расшифровать число, мы применяем обратную операцию к результату. -
(логическое отрицание)
Поразрядная операция, которая инвертирует все разряды числа: если значение разряда равно 1,
то оно становится равным нулю, и наоборот.byte a = 12; // 0000 1100 System.out.println(~a); // 1111 0011 или -13
Операции сдвига
Операции сдвига также производятся над разрядами чисел. Сдвиг может происходить вправо и влево.
-
— сдвигает число a влево на b разрядов. Например, выражение сдвигает число 4 (которое в двоичном
представлении 100) на один разряд влево, в результате получается число 1000 или число 8 в десятичном представлении. -
— смещает число a вправо на b разрядов. Например, сдвигает число 16
(которое в двоичной системе 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении. -
— в отличие от предыдущих типов сдвигов данная операция представляет беззнаковый сдвиг — сдвигает число a вправо на b разрядов.
Например, выражение будет равно 1073741822.
Таким образом, если исходное число, которое надо сдвинуть в ту или другую сторону, делится на два, то фактически получается умножение или деление на два.
Поэтому подобную операцию можно использовать вместо непосредственного умножения или деления на два, так как операция сдвига на аппаратном уровне менее дорогостоящая операция
в отличие от операции деления или умножения.
НазадВперед
Создайте план обучения
Готовы ли вы сделать Java-разработку своей профессией? Если да, то выделяйте на ежедневное обучение минимум 2–3 (в рабочие дни) — 5 часов (в выходные). Таким образом, где-то за 3–6 месяцев вы дорастете до уровня Junior-разработчика.
Процесс обучения лучше разбить на несколько этапов:
- установка JDK (Java Development Kit) с сайта Oracle и среды выполнения Java (IntelliJ IDEA, Eclipse или NetBeans);
- изучение синтаксиса Java;
- изучение Java Core;
- изучение Java Collections;
- изучение популярных библиотек и фреймворков;
- изучение часто используемых API (например, сервлетов, JSP, JDBC, JUnit);
- освоение Git и т.д.
Старайтесь придерживаться этого плана и находите «золотую середину» между теорией и практикой. Программирование — это навык, требующий ежедневной тренировки. Если вы закончили изучение определенной темы, то выполните несколько задач по разработке (от 3 до 10, в зависимости от сложности).
Изучения Java можно проводить по хорошо известному принципу Парето (правило «80/20»). 20 — это теория, а 80 — практические задания. Это не преувеличение. Для того, чтобы научиться программировать и развить нужные навыки, нужно в 4 раза больше реальной практики, чем чтения учебников. К сожалению, если сразу не написать код, то уже завтра вы забудете о том, чему успели научиться. К счастью, есть полезные ресурсы, которые помогут вам с программой обучения.
Переменные в Java
Теперь пришло время рассказать о некоторых более важных вещах, лежащих в основе Java. Мало что может быть более фундаментальным в программировании, чем обучение использованию переменных!
Переменная по сути является «контейнером» для некоторых данных. Это означает, что вы выберете слово, которое будет представлять какое-то значение. Нам также необходимо определить переменные, основанные на типе данных, на которые они будут ссылаться.
Вот три основных типа переменных, которые мы собираемся ввести в этом руководстве по Java:
- Целые числа (integers) – как целые числа.
- Плавающие точки (floats) – или «переменные с плавающей точкой». Они содержат все числа, в том числе те, которые представляют десятичные дроби. «Плавающая точка» относится к десятичному разряду.
- Строки (strings)– строки содержат буквенно-цифровые символы и символы. Обычно строка используется для хранения чьего-то имени или, возможно, предложения.
Как только мы определяем переменную, мы можем вставить ее в наш код, чтобы изменить выходные данные. Например:
В этом примере кода мы определили строковую переменную с именем . Мы сделали это, используя тип данных , за которым следует имя нашей переменной, а затем данные. Когда вы помещаете что-то в двойные кавычки, то Java интерпретирует это дословно как строку.
Теперь мы печатаем на экране, как и раньше, но на этот раз заменяем «Hello world!» на «Hello + имя». Этот код показывает строку «Hello», за которой следует любое значение, содержащееся в следующей строковой переменной!
Самое замечательное в использовании переменных заключается в том, что они позволяют нам манипулировать данными, чтобы наш код мог вести себя динамически. Изменяя значение , вы можете изменить поведение программы, не изменяя никакого фактического кода!
Для продвинутых
- Раздел Java на developer.com собрал в себе руководства как по целым пластам языка, вроде Enterprise Edition, так и разъяснения отдельных нюансов, вроде новомодных лямбда-выражений. Вот, например, статья, прочитав которую, вы разберётесь с тем, что такое аннотации, зачем они нужны и как правильно их использовать.
- На сайте Tutorials Point есть раздел с исчерпывающим количеством туториалов по Java. Также там есть отдельный раздел для Java 8.
- Java2S — коллекция примеров на все случаи жизни. Примечательно, что здесь есть не только чистая Java, но и работа с разными библиотеками, например JUnit. Хорошо описаны и нововведения Java 8 — Date-Time API, лямбды, потоки (streams).
- Oskar Veerhoek — канал на YouTube, посвящённый OpenGL. Если вы собираетесь связать свою жизнь с программированием, маловероятно, что вам никогда не придётся работать с графикой. В течение курса из 41 видео автор расскажет вам, как работать с OpenGL в Java. Курс начинается с самых основ и написания 2D Minecraft’а, а заканчивается шейдерами, освещением и созданием 3D комнаты.
Основы Java: ваша первая программа
Зайдите на compilejava.net, и вас встретит редактор с кучей готовых примеров.
(Если же вы предпочитаете использовать другую IDE или стороннее приложение, это тоже прекрасно! Скорее всего, ваш новый проект будет состоять из аналогичного кода).
Удалите все, кроме следующего:
Это то, что мы, программисты, мы называем «шаблоном» (этот код скопирован из учебника Java от Фила Данфи). Шаблонный код – так можно назвать любой код, который встречается внутри практически любой программы.
Первая строка здесь определяет «класс», который по сути является модулем кода. Затем нам нужен метод внутри этого класса, который представляет собой небольшой блок кода, выполняющий задачу. В каждой программе Java должен быть метод main, так как он сообщает Java, где начинается программа.
Об остальном поговорим чуть ниже, не беспокойтесь. Все, что нам нужно знать для этого урока Java прямо сейчас, – это то, что код, который мы действительно хотим запустить, должен быть помещен в фигурные скобки под словом «main».
Поместите сюда следующий оператор:
Этот оператор напишет слова: «Hello world!» на вашем экране. Нажмите «Compile & Execute» и вы увидите его в действии.
Поздравляю! Вы только что написали свое первое Java-приложение!
В чем разница между версиями Java?
Должен ли я изучать конкретную?
Придя из других языков программирования с большими перерывами между выпусками, как, например, Python 2–3, вы можете спросить, применимо ли это к Java.
Java особенная в этом отношении, поскольку она чрезвычайно обратно совместима. Это означает, что ваша программа на Java 5 или 8 гарантированно будет работать с виртуальной машиной Java 8-14 — с некоторыми исключениями, о которых вам сейчас не нужно беспокоиться.
Очевидно, что это не работает наоборот, скажем, ваша программа использует функции Java 14, которые просто недоступны в Java 8 JVM.
Это означает несколько вещей:
- Вы не просто «изучаете» конкретную версию Java, например Java 12.
- Скорее, вам нужно получить хорошую основу для всех языковых возможностей вплоть до Java 8.
- И затем, из этого руководства вы можете узнать, какие дополнительные функции появились в Java 9-14, чтобы использовать их всегда, когда это возможно.
Каковы примеры этих новых возможностей новых версий Java?
Взгляните на раздел «Возможности Java 8-14» ниже.
Но, как правило: старые, более длинные циклы выпуска (3-5 лет, вплоть до Java 8) означали множество новых функций в каждом выпуске.
Шестимесячный цикл выпуска означает меньшее количество функций на выпуск, поэтому вы можете быстро освоить языковые функции Java 9-14.
В чем разница между JRE и JDK?
До сих пор мы говорили только о Java. Но что именно означает «Java»?
Во-первых, вам нужно провести различие между JRE (Java Runtime Environment) и JDK (Java Development Kit).
Исторически, вы загружали только JRE, если вас интересовали только программы Java. JRE включает, помимо прочего, виртуальную машину Java (JVM) и инструмент командной строки «java».
Для разработки новых программ на Java вам нужно было загрузить JDK. JDK включает в себя все, что есть в JRE, а также компилятор javac и несколько других инструментов, таких как javadoc (генератор документации Java) и jdb (отладчик Java).
Теперь, почему я говорю в прошедшем времени?
Вплоть до Java 8 веб-сайт Oracle предлагал JRE и JDK в качестве отдельных загрузок, хотя JDK также всегда включал JRE в отдельной папке. В Java 9 это различие практически исчезло, и вы всегда загружаете JDK. Структура каталогов JDK также изменилась, так как в ней больше не было явной папки JRE.
Таким образом, хотя некоторые дистрибутивы (см. Раздел «Дистрибутивы Java») по-прежнему предлагают отдельную загрузку JRE, похоже, существует тенденция предлагать только JDK. Следовательно, теперь мы будем использовать Java и JDK взаимозаменяемо.
Как мне установить Java или JDK?
На данный момент не обращайте внимания на образы Java-Docker, оболочки MSI или пакеты для конкретной платформы. В конце концов, Java — это просто файл .zip; ни больше ни меньше.
Поэтому все, что вам нужно сделать, чтобы установить Java на свой компьютер, — это разархивировать файл jdk-{5-14}.zip. Вам даже не нужны права администратора для этого.
Ваш распакованный файл Java будет выглядеть так:
Магия происходит в каталоге /bin, который в Windows выглядит следующим образом:
Поэтому все, что вам нужно сделать, это разархивировать этот файл и поместить каталог /bin в переменную PATH, чтобы вы могли вызывать команду java из любого места.
В случае, если вам интересно, установщики с графическим интерфейсом, такие как Oracle или AdoptOpenJDK, выполняет распаковку и изменение переменной PATH вместо вас.
Чтобы убедиться, что вы правильно установили Java, вы можете просто выполнить команду java -version. Если вывод выглядит так, как показано ниже, вы готовы!
Теперь остался один вопрос: откуда вам взять этот .zip файл с Java? Что подводит нас к теме дистрибутивов.