С чего начать изучение язык программирования java

Создание своих классов

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

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

Список сущностей

Если вы не знаете, с чего начать, начните с начала.

В самом начале проектирования программы вы можете просто выписать на листик список сущностей (объектов), которые должны быть в программе. А потом запрограммировать их по такому принципу: каждая сущность — отдельный класс.

Пример

Допустим, вы хотите написать игру в шахматы. Вам понадобятся такие сущности: шахматная доска и 6 типов фигур. Фигуры ходят по-разному, имеют разную ценность — логично, что это отдельные классы. И вообще, в самом начале, чем больше классов — тем лучше.

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

Шахматы

Допустим, мы решили писать классы для шахмат: как бы эти классы выглядели?

Шахматная доска — это просто массив 8 на 8? Лучше сделайте для нее отдельный класс, который внутри хранит ссылку на массив. Тогда в класс «шахматная доска» вы сможете добавить много полезных методов, которые, например, проверяют, что клетка пустая или занята

В общем, в начале всегда можно руководствоваться принципом: Программа имеет разные Сущности, а у Сущности есть тип. Вот этот тип — это и есть класс.

Базовые конструкции

Если у вас есть опыт программирования на С/C++, то знакомство с Java пройдёт легко, поскольку базовый синтаксис этих языков очень похож.

Изучение начинается с написания простейшей программы, вроде Hello World, выводящей в консоль строку приветствия. Далее в разной степени изучается следующий «джентльменский набор»:

  • понятия класса и метода;
  • переменные и константы, их типы и основы работы с ними;
  • массивы;
  • работа со строками как объектами, String API;
  • арифметические и логические операции и выражения;
  • команды для написания нелинейных программ, включающие в себя условный оператор if-else, тернарный оператор, оператор множественного выбора switch, циклы с определённым числом повторений for, включая его вариант for each, c неопределённым числом повторений while и do-while;
  • операторы для изменения порядка выполнения break и continue;
  • введение в пакетную систему Java, импорт классов, создание объектов, вызов статических и нестатических методов.

В этот раздел также входят навыки по установке и настройке JDK, вызову компилятора и виртуальной машины JVM в командной строке.

Материал по базовым конструкциям можно найти в упомянутых выше книгах:

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

Игра «Угадай число»

Мы узнали достаточно, чтобы написать игру «Угадай число». В ней компьютер «загадывает» целое число от 0 до 9, а человек должен угадать его — есть три попытки.

Создадим класс GuessTheNumber с методом main(), импортируем нужные нам классы и добавим соответствующие объекты. Класс Scanner обеспечит чтение чисел с консоли (System.in — консоль).

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
    }
}

Объявим и инициируем три переменные: счётчик попыток count, для чтения числа с консоли — guess, для хранения загаданного числа — number.

int count = ;
int guess = -1; 
int number = random.nextInt(10);

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

while (count < 3 && guess != number) {
    System.out.print("Guess the number (0..9): ");
    guess = sc.nextInt();
    if (number != guess) {
        System.out.println("Your number is " +
            ((guess > number)? "greater"  "less"));
        count++;
    }
}

Тело цикла while повторяется, пока логическое значение в скобках возвращает true. Таким образом наш цикл будет повторяться, пока значение счётчика попыток меньше 3 и число не отгадано

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

Если условие в скобках true, то возвращается значение слева от двоеточия, если false — справа.

(guess > number)? "greater"  "less"

Остаётся добавить строку с выводом результата игры (победа или проигрыш) после цикла — тут снова используется тернарный оператор. Текст работающей программы выглядит так:

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        int count = ;
        int guess = -1;
        int number = random.nextInt(10);
        while (count < 3 && guess != number) {
            System.out.print("Guess the number (0..9): ");
            guess = sc.nextInt();
            if (number != guess) {
                System.out.println("Your number is " +
                    ((guess > number)? "greater"  "less"));
                count++;
            }
        }
        System.out.println("You " +
            ((guess == number)? "WIN!"  "Lose: " + number));
    }
}

Сохраняем программу в файл GuessTheNumber.java, компилируем (javac), вызываем JVM (java) — и пробуем выиграть у компьютера.

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

import java.util.Random;
import java.util.Scanner;
 
class GuessTheNumber {
    public static void main(String args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        do {
            //
            // Вставьте фрагмент, который должен повторяться
            //
            System.out.println("Repeat game? Yes - 1, No - 0");
        } while (sc.nextInt() == 1);
    }
}

Обратите внимание, что тело цикла do-while повторяется на тех же условиях, что и тело цикла while: логическое выражение в скобках должно быть true

Основные компоненты Java

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

Если вы желаете узнать об инструментах и классах Java всё — лучше всего прочтите официальную документацию Oracle. Дело в том, что если 1-я версия Java JDK 1.0 имела «всего-то» пару сотен классов, то теперь их число составляет несколько тысяч. На протяжении существования этого языка программирования его создатели внесли множество изменений, повышающих безопасность, переносимость и функциональность. Собственно говоря, в том числе и благодаря регулярному совершенствованию языка и его постоянной поддержке со стороны разработчиков, Java всегда «шагала в ногу» с современным развитием IT-технологий.

Где можно запускать Java-код

Поэто­му запус­кать код на Java мож­но вез­де, для чего уже была раз­ра­бо­та­на JVM, то есть вир­ту­аль­ная маши­на Java. Например:

  • уль­тра­мощ­ные серверы,
  • ком­пью­те­ры,
  • смарт­фо­ны,
  • кно­поч­ные телефоны,
  • робо­ты и мик­ро­кон­трол­ле­ры типа Arduino, Raspberry Pi и мно­гих других,
  • фитнес-браслеты,
  • GPS-трекеры,
  • умные часы,
  • умные теле­ви­зо­ры, холо­диль­ни­ки, мик­ро­вол­нов­ки, чай­ни­ки и про­чие домаш­ние гаджеты,
  • смарт-карты для досту­па в помещения.

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

Несколько слов о популярности Java

Последние годы язык программирования Java регулярно входит в тройку самых популярных языков программирования. Вы должны это знать, если периодически следите за обновлениями рейтингов TIOBE, State of Octoverse, RedMonk и прочих. Где-то рассчитывают, исходя из количества поисковых запросов, где-то — с учётом числа репозиториев на GitHub. Вне зависимости от особенностей расчётов, Java постоянно в топе.

Однако Java популярен не только из-за своей применимости. Дело в том, что зарплата Java-программиста в среднем выше, чем разработчика на Python, PHP, JavaScript. В той же Москве она составляет 150 — 200 тыс. рублей. Но если вы знаете Java, вы найдёте высокооплачиваемую работу не только в столице, но и в регионах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интеграции с CRM, Google Analytics, Яндекс.Метрикой и сторонними системами

  • Подключение бота от Chatme.ai
  • Подключение бота от Metabot
  • Подключение бота от СберБизнесБот
  • Подключение бота от JAICP
  • Подключение бота от AimyLogic
  • Чат на странице поиска Яндекса
  • Интеграция с email каналом
  • Интеграция с Dahi.ai
  • Интеграция с ВКонтакте
  • Интеграция с i2crm
  • Подключение интеграции с Facebook
  • Подключение интеграции с Telegram
  • Подключение интеграции с Viber
  • Подключение группы в Одноклассниках
  • Интеграция с Авито
  • Отслеживание событий и конверсий Jivo в Google Analytics и Яндекс Метрике
  • Интеграция с VideoForce
  • Интеграция с Zapier
  • Добавление чата в Auto.ru
  • «Интеграция с amoCRM»
  • Интеграция с Битрикс24
  • Интеграция с Creatio
  • Интеграция с EnvyCrm
  • Интеграция с FreshOffice
  • Интеграция с САМО-турагент
  • Интеграция с GetCourse
  • Интеграция с InSales CRM
  • Интеграция с Мегаплан
  • Интеграция с МойСклад
  • Интеграция с Pipedrive CRM
  • Интеграция с CRM Ramex
  • Включение функции Омниканальность
  • Интеграция с РемОнлайн
  • Интеграция с RetailCRM
  • Интеграция со Slack
  • Интеграция с WireCRM
  • Интеграция с Y-clients
  • Интеграция с Yoolla
  • Интеграция с Ploomes
  • Интеграция с Piperun
  • Интеграция с Zoho
  • Интеграция с CRM RegionSoft
  • Интеграция с U-ON.Travel CRM

Язык 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 Virtual Machine (JVM) — виртуальная машина Java. Представляет собой программный модуль, используемый для интерпретации исходного байт-кода в машинный код, а также для исполнения этого кода;
Java Runtime Environment (JRE) — среда выполнения Java. Включает реализацию JVM для конкретной платформы и комплект библиотек, используемых для выполнения Java-программ;
— Java Development Kit (JDK) — набор инструментов программиста, используемых для написания Java-программ. Сюда входят компилятор, JRE, стандартные библиотеки Java, документация, разные утилиты.
— исходный код — текстовый файл на Java с расширением .java;
— байт-код — низкоуровневый машинно-независимый код, представляющий набор инструкций для JVM;
— машинный код — комплект машинных инструкций в двоичном формате, которые выполняются процессором;
— компиляция — процесс преобразования исходного кода в байт-код;
— интерпретация — процесс преобразования байт-кода в машинный код;
— платформа — программно-аппаратная среда, где осуществляется выполнение программ и приложений. Самые популярные платформы —Microsoft Windows, Linux, Solaris, Mac OS.

Лучше ориентироваться в основных терминах поможет следующая таблица:

Как запустить Java на Windows (XP, 7, 8 и 10)

Для освоения Java основ программирования и запуска платформы на Windows потребуется JAVA SE Development Kit (JDK) и IDE для разработки проектов. Следуйте пошаговой инструкции, приведенной ниже:

Установка Java

После скачивания запустите установочный файл и следуйте инструкциям, которые будут появляться на экране. Нажмите «Next». Выберите все функции, нажав «This feature will be installed on local hard drive» и скопируйте место установки (оно выделено жёлтым) в «Блокнот», после чего снова нажмите «Next».

  • В процессе установки появится запрос об установке JRE. Нажмите «Next, а затем «Finish для завершения установки.
  • Теперь необходимо отредактировать переменную PATH. Перейдите в Панель управления > Система и безопасность > Система. В левой панели выберите «Дополнительные параметры системы».

Нажмите «Переменные среды». В разделе «Системные переменные» найдите переменную PATH и в следующем окне нажмите «Изменить».

Выберите весь текст в поле «Значение переменной» и скопируйте его в отдельный текстовый файл. Так будет легче его отредактировать и проверить на наличие ошибок. Посмотрите, есть ли в скопированном тексте строка: C:ProgramDataOracleJavajavapath;. Если да, то можно переходить к следующему шагу

Если нет, то вставьте скопированное ранее место установки в начало переменной и добавьте в конце строки bin вот так: C:Program Files (x86)Javajdk1.8.0_112bin; Обратите внимание, что ваша версия JDK (jdk1.8.0_112) может отличаться. Скопируйте значение переменной и вставьте его в окошко PATH

  • Нажмите «ОК», чтобы сохранить внесенные изменения.
  • Чтобы проверить, правильно ли установлена платформа для введения в программирование Java, откройте командную строку, набрав cmd в строке поиска Windows или через команду «Выполнить…» (Windows — R). Введите команду java -version. Если отображается текущая версия Java, значит, установка прошла успешно. Если нет, сверьтесь со страничкой помощи Oracle.

Установка IntelliJ IDEA

  • Перейдите на страницу загрузки IntelliJ IDEA.
  • Скачайте бесплатную версию Community Edition, нажав «Загрузить».

После загрузки запустите файл установки и следуйте инструкциям, которые будут появляться на экране. Затем создайте ярлык на рабочем столе для 64-битной версии и добавьте ассоциации с расширением .java. Нажмите «Next» и продолжайте установку.

  • После установки откройте IntelliJ IDEA, нажав на значок на рабочем столе.
  • Выберите «Don’t import settings («Не импортировать настройки») и нажмите «OK». После этого принимаем политику приватности Jetbrains, нажав «Accept».
  • Теперь можно настроить интерфейс под себя. Также можно пропустить этот шаг и оставить всё по умолчанию, нажав кнопку «Skip All and Set Defaults».
  • Программа покажет страницу приветствия. Нажмите «Create New Project» («Создать новый проект»).
  • В следующем окне выберите «Java» в левой панели и нажмите «New в верхней части окна программы для выбора JDK. Здесь надо выбрать местоположение, куда установили JDK во время установки Java, после чего нажать «Next».
  • IntelliJ IDEA найдёт JDK и распознает его. Никакие другие опции отмечать не нужно, просто нажмите «Next.
  • На следующем экране введите имя проекта: HelloWorld и нажмите «Finish». Если программа скажет, что директории не существует, нажмите «ОК». Если вы не видите левой панели, перейдите в меню Views > Tool Windows > Project.
  • Чтобы задать имя класса, выберите в левой панели папку src. Кликните по ней правой кнопкой мыши, зайдите в New > Java и задайте имя класса. В имени класса не должно быть пробелов.
  • Напишите код и сохраните проект Java урока программирования.
  • Для запуска программы, зайдите в меню Run > Run… Нажмите на HelloWorld — программа скомпилирует файл и запустит его.

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

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

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

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

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

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

Исключения (Exception)

В мире программирования возникновение ошибок и непредвиденных ситуаций при выполнении программы называют исключением. Они могут возникать в результате неправильных действий пользователя, отсутствии необходимого ресурса на диске или потери соединения с сервером по сети. Причинами исключений при выполнении программы также могут быть ошибки программирования или неправильное использование API. Ваша программа должна чётко знать, как поступать в такой ситуации. Для этого в Java предусмотрен механизм исключений.

При возникновении ошибки в процессе выполнения программы JVM создаёт объект нужного типа из иерархии исключений Java — множества возможных исключительных ситуаций, унаследованных от общего «предка» — класса Throwable. Исключение можно также создать вручную с помощью оператора throw. При этом выполнение основного кода программы прерывается, а обработчик исключений JVM пытается найти способ обработать исключение.

Блоки кода, для которых предусмотрена обработка исключений в Java, создаются с помощью конструкций try{}catch, try{}catch{}finally, try{}finally{}.

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

После выполнения блока catch управление передаётся в необязательный блок finally. Если подходящий блок catch не найден, JVM останавливает выполнение программы и выводит стек вызовов методов (stack trace), выполнив перед этим код блока finally при его наличии.

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

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

Обобщённое программирование

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

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

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

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

Потоки ввода-вывода

Основная функциональность работы с потоками ввода-вывода сосредоточена в классах из пакета java.io.

Ключевым здесь является понятие потока. В программировании этот термин описывает различные концепции. Применительно к работе с файлами и вводом-выводом речь идёт о потоке (stream), который используется для чтения или записи информации (файлов, сетевых сокетов, консоли и так далее).

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

Объект, из которого можно читать данные, называется потоком ввода, а объект, в который можно записывать — потоком вывода. Например, если надо прочитать содержимое файла, то используем поток ввода, а если надо записать в файл — поток вывода.

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

  • «Java. Библиотека профессионала. Том 1. Основы» — глава 2;
  • «Java 8. Полное руководство» — глава 13, 20, 21.
Добавить комментарий

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

Adblock
detector