Справочник java
Содержание:
- Инструменты, которые понадобятся
- Структура программы
- Переменные в Java
- Курс от HEDU по Java
- Логические операторы
- Для продвинутых
- Дистрибутивы Java
- Изолированное изучение кода
- В чем разница между версиями Java?
- Язык Java
- Как начать программировать на Java?
- Что нужно для программирования на Java?
- Установка Java на компьютер
- Жизненный цикл программы
- За сколько можно выучить Java?
- Заключение
- 3. Конкурсы по программированию: Codewars
- Стандартные библиотеки Java
- Вечная классика «джавистов»
Инструменты, которые понадобятся
Для выполнения примеров, рассмотренных в этом учебнике, Вам нужен компьютер Pentium 200 МГц с минимальной оперативной памятью 64 Мб (рекомендуется оперативная память 128 Мб).
Вам также понадобится следующее программное обеспечение:
- Linux 7.1, Windows 95/98/2000/7/8 и выше или другая операционная система.
- JDK 5 и выше.
- Notepad или любой другой текстовый редактор.
Самоучитель обеспечит необходимыми навыками для создания GUI, сетевых и веб-приложений.
Ознакомившись с особенностями истории появления и преимуществами Java, Вы закончили урок введения в язык программирования. Следующий урок будет Вас вести к изучению языка и документации. Проинструктирует Вас о том, как установить и подготовить среду для разработки приложений.
Поделитесь:
Структура программы
Последнее обновление: 12.04.2018
Основным строительным блоком программы на языке Java являются инструкции (statement).
Каждая инструкция выполняет некоторое действие, например, вызовы методов, объявление переменных и присвоение им значений. После завершения инструкции в Java ставится точка с запятой (;). Данный знак указывает компилятору на
конец инструкции. Например:
System.out.println("Hello Java!");
Данная строка представляет вызов метода , который выводит на консоль строку «Hello Java!». В данном случае вызов
метода является инструкцией и поэтому завершается точкой с запятой.
Кроме отдельных инструкций распространенной конструкцией является блок кода. Блок кода содержит набор инструкций, он заключается в фигурные скобки, а инструкции помещаются между открывающей и закрывающей фигурными скобками:
{ System.out.println("Hello!"); System.out.println("Welcome to Java!"); }
В этом блоке кода две инструкции, которые выводят на консоль определенную строку.
Выполнение программы. Метод main
Java является объектно-ориентированным языком, поэтому всю программу можно представить как набор взаимодействующих между собой классов и объектов.
В первой главе при создании первого приложения программа была определена следующим образом:
public class Program{ public static void main (String args[]){ System.out.println("Hello Java!"); } }
То есть основу нашей программы составляет класс Program. При определении класса вначале идет модификатор доступа public,
который указывает, что данный класс будет доступен всем, то есть мы сможем его запустить из командной строки. Далее идет ключевое слово class,
а затем название класса. После названия класса идет блок кода, в котором расположено содержимое класса.
Входной точкой в программу на языке Java является метод main, который определен в классе Program. Именно с него начинается
выполнение программы. Он обязательно должен присутствовать в программе. При этом его заголовок может быть только таким:
public static void main (String args[])
При запуске приложения виртуальная машина Java ищет в главном классе программы метод main с подобным заголовком, и после его обнаружения запускает его.
Вначале заголовка метода идет модификатор , который указывает, что метод будет доступен извне. Слово указывает, что метод
main — статический, а слово — что он не возвращает никакого значения. Далее в скобках у нас идут параметры метода — —
это массив args, который хранит значения типа String, то есть строки. При запуске программы через этот массив мы можем передать в программу различные данные.
После заголовка метода идет его блок, который содержит набор выполняемых инструкций.
Комментарии
Код программы может содержать комментарии. Комментарии позволяют понять смысл программы, что делают те или иные ее части. При компиляции комментарии
игнорируются и не оказывают никакого влияния на работу приложения и на его размер.
В Java есть два типа комментариев: однострочный и многострочный. Однострочный комментарий размещается на одной строке после двойного слеша //.
А многострочный комментарий заключается между символами /* текст комментария */. Он может размещаться на нескольких строках.
Например:
/* многострочный комментарий Объявление нового класса, который содержит код программы */ public class Program{ // начало объявления класса Program // определение метода main public static void main (String args[]){ // объявление нового метода System.out.println("Hello Java!"); // вывод строки на консоль } // конец объявления нового метода } // конец объявления класса Program
НазадВперед
Переменные в Java
Теперь пришло время рассказать о некоторых более важных вещах, лежащих в основе Java. Мало что может быть более фундаментальным в программировании, чем обучение использованию переменных!
Переменная по сути является «контейнером» для некоторых данных. Это означает, что вы выберете слово, которое будет представлять какое-то значение. Нам также необходимо определить переменные, основанные на типе данных, на которые они будут ссылаться.
Вот три основных типа переменных, которые мы собираемся ввести в этом руководстве по Java:
- Целые числа (integers) – как целые числа.
- Плавающие точки (floats) – или «переменные с плавающей точкой». Они содержат все числа, в том числе те, которые представляют десятичные дроби. «Плавающая точка» относится к десятичному разряду.
- Строки (strings)– строки содержат буквенно-цифровые символы и символы. Обычно строка используется для хранения чьего-то имени или, возможно, предложения.
Как только мы определяем переменную, мы можем вставить ее в наш код, чтобы изменить выходные данные. Например:
В этом примере кода мы определили строковую переменную с именем . Мы сделали это, используя тип данных , за которым следует имя нашей переменной, а затем данные. Когда вы помещаете что-то в двойные кавычки, то Java интерпретирует это дословно как строку.
Теперь мы печатаем на экране, как и раньше, но на этот раз заменяем «Hello world!» на «Hello + имя». Этот код показывает строку «Hello», за которой следует любое значение, содержащееся в следующей строковой переменной!
Самое замечательное в использовании переменных заключается в том, что они позволяют нам манипулировать данными, чтобы наш код мог вести себя динамически. Изменяя значение , вы можете изменить поведение программы, не изменяя никакого фактического кода!
Курс от HEDU по Java
Длительность | 3 месяца |
Уровень | с нуля |
Для кого подходит | Программистам без опыта и с небольшим опытом |
Формат | вебинар раз в неделю + домашнее задание + обратная связь от ментора |
Гарантии | Пообщайтесь с преподавателем и манерой обучения бесплатно |
Итоги | Сертификат в соответствии с установленным образцом + проекты в портфолио |
Цена | ● Персональное обучение (включая скайп-консультации) — индивидуально. ● Если обратная связь не нужна, то 15 000 руб. С обратной связью, но без скайп-консультаций: от 15 000 руб. |
Ссылка |
- Изучение примитивных типов данных
- Основы ООП (объектно-ориентированное программирование). Часть I
- Основы ООП. Часть II
- Работа с interface и massive
- Работа с generic и Ява-файлами
- Streams
- Lambda expressions
По окончании вы сможете:
- Свободно ориентироваться в Java, принципах многопоточности
- Работать с выражениями Lambda и различными типами данных
- Разбираться в особенностях ООП
- Работать в составе команды
- Легко найти хорошую и высокооплачиваемую работу в IT-сфере
Моё мнение:
Платформа не предоставляет данные по преподавателям, но познакомиться можно самостоятельно. Для этого можно пройти бесплатный урок и сразу же задать все необходимые вопросы ментору, что является несомненным бонусом. Программа полностью вводит в курс Java-программирования, обучает работе с переменными и инструментами. Для новичков в профессии неплохой вариант освоения новых знаний.
Получить скидку →
Логические операторы
Предположим, логическая переменная A имеет значение true, а переменная B хранит false. В следующей таблице перечислены логические операторы в Java:
Оператор | Описание | Пример |
&& | Называется логический оператор «И». Если оба операнда являются не равны нулю, то условие становится истинным | (A && B) — значение false |
|| | Называется логический оператор «ИЛИ». Если любой из двух операндов не равен нулю, то условие становится истинным | (A || B) — значение true |
! | Называется логический оператор «НЕ». Использование меняет логическое состояние своего операнда. Если условие имеет значение true, то оператор логического «НЕ» будет делать false | !(A && B) — значение true |
Пример
Следующий простой пример показывает, программно логические операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:
Это произведет следующий результат:
Для продвинутых
- Раздел 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
Существует множество сайтов, предлагающих загрузку Java (читай: JDK), и неясно, «кто что предлагает и с каким лицензированием». Этот раздел проливает свет на это.
Проект OpenJDK
Однако это всего лишь исходный код, а не распространяемая сборка (представьте: ваш файл .zip со скомпилированной командой java для вашей конкретной операционной системы). Теоретически вы и я могли бы создать сборку из этого исходного кода, назвать ее, скажем, MarcoJDK, и начать ее дистрибуцию. Но наш дистрибутив не будет сертифицирован, чтобы можно было называть этот дистрибутив совместимым с Java SE.
И хотя поставщики не могут, скажем, удалить метод из класса String перед созданием новой сборки Java, они могут добавить брэндинг (вay!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.
Сборки OpenJDK (от Oracle) и OracleJDK
Один из поставщиков, который создает Java из исходного кода, — это Oracle. Это приводит к двум разным дистрибутивам Java, что поначалу может казаться очень запутанными.
Впрочем все сводится к тому, требуется ли вам коммерческая поддержка (номер телефона) для используемой версии Java.
Полный обзор дистрибутива OpenJDK
Рафаэль Винтерхальтер (Rafael Winterhalter) собрал большой список всех доступных сборок OpenJDK, включая их описания: ОС, архитектуру, окна лицензирования, поддержки и обслуживания.
Изолированное изучение кода
Новички часто теряются в догадках, стоит ли вступать в онлайн-сообщества разработчиков или посещать профильные мероприятия. Запомните одно: никто не желает вам зла. Сообщество программистов всегда готово помочь. Ведь так и появляются те самые источники открытых данных. Все программисты когда-либо работали в команде, и каждый из них в свое время с чего-то начинал.
Посмотрите, сколько форумов и интернет-ресурсов посвящено программированию. Разработчики с радостью делятся накопленными знаниями и всегда открыты для сотрудничества. Здесь вы сможете начать свое обучение, получить подсказки от опытных коллег, а затем найти свой первый проект по разработке.
В чем разница между версиями 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? Что подводит нас к теме дистрибутивов.
Язык 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
- Выбрать и скачать установочный файл в зависимости от вашей операционной системы.
- Выполнить установку, следуя рекомендациям программы-установщика.
- Настроить переменную окружения, если вы используете Windows.
Жизненный цикл программы
Integrated Development Environment (IDE)
Компилятор
Исполнение программы
- В оперативной памяти компьютера запускается JVM. По сути это программа, которая служит для выполнения написанных нами Java-программ.
- С помощью начального загрузчика классов JVM загружает и инициализирует наш класс в памяти компьютера. В нашем примере это класс .
- Далее в нашем классе JVM ищет метод .
- Выполняется код метода . Если это необходимо для выполнения программы, производиться загрузка и инициализация других классов.
- После выполнения кода производится уборка мусора — очистка памяти и закрытие программы JVM.
IDE
- IntelliJ IDEA
- Eclipse
- NetBeans
IntelliJ IDEAздесьв начале третьего уровняонлайн-курса JavaRush
За сколько можно выучить Java?
На изучение основ Java и выработку навыка программирования, скорее всего, уйдет от 6 до 12 месяцев, в зависимости от интенсивности вашего обучения. Чтобы сделать этот процесс систематическим, составьте план обучения, соберите необходимые источники и выделяйте несколько часов в день на занятия. Не забывайте о том, что ключевое в обучении программированию — это практика.
Заключение
- Установите Java на компьютер
- Изучите основные понятия
- Установите среду разработки
- Напишите и запустите свою первую программу.
3. Конкурсы по программированию: Codewars
Есть еще одна онлайн-платформа с акцентом на практику. Хотя, конечно, она больше подходит для тех, у кого за плечами есть опыт в разработке. Codewars позволяет отточить свои навыки в каком-то языке программирования с помощью обучающих задач (ката).
Вы можете писать свой код в браузере и пошагово проверять его в тестовых сценариях. Также можете сравнивать свой код с чужим, расширять базу знаний и обсуждать лучшие варианты. Каждое задание представляет собой конкурс с другими программистами, и ему присваивается свой рейтинг. Как только вы научитесь решать не самые простые задачи, то сможете отточить свои навыки и поучаствовать в более сложных конкурсах. Основное отличие данной платформы — здесь вы можете учиться и практиковаться в группе.
Стандартные библиотеки Java
- java.lang. Эта библиотека всегда импортируется в любое Java-приложение, поскольку содержит всё то, без чего вы в принципе не сможете программировать (String, Double, Enum, Math и так далее).
- В java.util вы можете найти все коллекции и структуры данных, доступные в Java.
- Далее, у нас есть java.io для чтения файлов, работающих потоками, объектами класса Pipe и так далее.
- О первых трёх вы, скорее всего, уже слышали. А вот с java.nio, альтернативой java.io, знают уже не все. Эта библиотека отвечает за неблокирующий ввод-вывод, позволяя, как вы могли догадаться, интенсивно использовать операции ввода-вывода.
- java.net используется для работы с сокетами, создания подключений или коротких сетевых приложений.
- В Java у нас также есть библиотеки для работы с GUI: javax.swing (довольно устаревшее расширение ещё более старого java.awt).
- Мы даже можем воспроизводить музыку и создавать MIDI-файлы с помощью java.sound.
Вечная классика «джавистов»
В этом разделе мы просто вспомним о самых известных и почти «священных» книгах по Java. По ним учились многие нынешние «сеньоры». Но несмотря на постоянные обновления языка, эти книги выдержали проверку временем и сегодня не теряют актуальности. Они посвящены не столько нюансам синтаксиса и применению каких-то инструментам, сколько базовому пониманию особенностей языка и программирования в его среде.
Java. Эффективное программирование
Автор — Джошуа Блох.
Это великолепное произведение от одного из самых известных специалистов по Java подойдет тем, кто стремится не просто познакомиться с азами языка программирования, но научиться писать на нем красивый, понятный код. Возможно, вы уже сталкивались с библиотеками этого автора (например, их можно увидеть в Java Collection). А если нет, то столкнетесь еще и не раз.
Этот учебник не подойдет новичкам. Сначала нужно выучить основы кода, освоиться с синтаксисом, и только после этого приступать к «Эффективному программированию». В книге собраны 57 важнейших правил работы в Jav, с которыми разработчики сталкиваются на практике регулярно.
Каждое правило описано в виде отдельной главы (эссе), где описаны базовые принципы работы, важные особенности, примеры Java-кода с использованием этого правила, а также рассказаны интересные случаи из обширной практики автора.
Книга поможет сформировать хороший стиль программирования на Java, получать чистый, хорошо читабельный код. Если вы хотите понять суть ОПП на Java, обязательно прочтите этот классический труд Блоха.
Философия Java
Автор — Брюс Эккель.
Эта книга – еще один фундаментальный учебник для всех, кто хочет не просто познакомиться с Java, но писать классный код. Ее суть заключается в названии – здесь речь пойдет именно о философии языка программирования, о понимании его сути.
В сравнении с Блохом, учебник Эккеля несколько проще для новичков, но все равно, он предназначен не для изучения синтаксиса, а для понимания сути программирования. Впрочем, если вы знакомы с C/C++ и другими «си-подобными» языками, чтение вам не доставит особых неудобств.
Здесь не будет простейших примеров из серии «привет, мир» или типовых консольных форм и тому подобного. Собранные в книге примеры наглядно показывают, как надо, и как не надо программировать на Java. Какие средства стоит использовать в том или ином случае. Как писать объектно-ориентированный код. И вообще, как правильно пользоваться возможностями Java для решения разных типов задач.
Очень интересны сравнения с другими языками, они помогают глубже понять особенности Java людям, уже знакомым с программированием на практике. В принципе, эта книга говорит о том же, что и Блох, но – немного иначе и совсем с другими примерами. А потому эти два издания прекрасно дополняют друг друга.