JavaStart
914 subscribers
903 photos
28 videos
613 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11💯32👨‍💻1
Какие типы классов бывают в Java?

Вопрос из собеседования - перечислить типы классов, которые бывают в Java.

1) Top level class (Обычный класс):
     - Abstract class (Абстрактный класс);
     - Final class (Финализированный класс).

2) Interfaces (Интерфейс);

3) Enum (Перечисление);

4) Nested class (Вложенный класс):
    - Static nested class (Статический вложенный класс);
    - Member inner class (Простой внутренний класс);
    - Local inner class (Локальный класс);
    - Anonymous inner class (Анонимный класс).

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍852👨‍💻1
Исключения в Java. Часть 1.

Что такое исключение (Java Exception)?

Исключение (или exception) в Java представляет проблему, которая возникает в ходе выполнения программы.

В случае возникновения в Java исключения (какого-то исключительного события) имеет место прекращение нормального течения программы, и программа/приложение завершаются в аварийном режиме, что не является рекомендованным, и, как следствие, подобные случаи требуют в Java обработку таких исключений.

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

– Пользователь ввел недопустимые данные;

– Файл, который необходимо открыть, не найден;

– Соединение с сетью потеряно в процессе передачи данных либо JVM исчерпала имеющийся объем памяти;

– Объект, который мы ищем в базе данных, не существует;

– Деление на ноль;

– И еще очень множество примеров.

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

Можно даже создавать свои исключения (их называют кастомными) на тот или иной случай.

В следующих постах подробно рассмотрим иерархию исключений – очень важный раздел в Java, о котором спрашивают практически на любом собеседовании java–разработчика или стажера!

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73👨‍💻2
Исключения в Java. Часть 2. Иерархия исключений (exceptions).

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

Все классы исключений в Java представляют подтипы класса java.lang.Exception. Класс исключений является подклассом класса Throwable. Помимо класса исключений существует также подкласс ошибок, образовавшихся из класса Throwable.

Контролируемые исключения (checked) – представляют собой вид исключений, которые происходят на стадии компиляции, их также именуют исключениями периода компиляции. Обозначенные исключения не следует игнорировать в ходе компиляции, они требуют должного обращения (разрешения) со стороны программиста.

Неконтролируемые исключения (unchecked) – представляют собой исключения, которые происходят во время выполнения. Они также носят название исключения на этапе выполнения. Данная категория может включать погрешности программирования, такие как логические ошибки, либо неверный способ использования API. Исключения на этапе выполнения игнорируются в ходе компиляции.

Ошибки (errors) – не являются исключениями, однако представляют проблемы, которые возникают независимо от пользователя либо программиста. Ошибки в вашем коде обычно игнорируются в виду того, что в редких случаях их обработка окажется результативной. К примеру, ошибка возникнет при переполнении стека. На этапе компиляции они также игнорируются.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
💯14👍4😁2
Исключения в Java. Часть 3. Обработка исключений. Блок try/catch.

В случае возникновения в Java исключения (exception), или исключительного события, имеет место прекращение нормального течения программы, и программа/приложение завершаются в аварийном режиме, что не является рекомендованным, и, как следствие, подобные случаи требуют в Java обработку исключений.

Использование ключевых слов try и catch позволяет производить обработку исключения в Java.

Блок try/catch размещается в начале и конце кода, который может сгенерировать исключение. Синтаксис использования try/catch выглядит как на картинке.

Код, предрасположенный к исключениям, размещается в блоке try. Оператор catch включает в себя саму обработку исключения. При возникновении исключения в блоке try, будет выполнена обработка этого исключения в блоке catch, но исключение передается в блок catch и обрабатывается только тогда, когда тип произошедшего исключения в try представлен в блоке catch (на картинке обработано исключение ArrayIndexOutOfBoundsException – номер запрашиваемого индекса массива лежит за пределами длины этого массива, именно это исключение всплывает в блоке try).

За каждым блоком try должен немедленно следовать блок catch, либо блок finally (о нем расскажу в одном из след постах).

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
Исключения в Java. Часть 4. Многократные блоки catch.

За блоком try могут следовать несколько блоков catch.
Синтаксис многократных блоков catch выглядит следующим образом:

try {
   // Защищенный код
} catch (ИсключениеТип1 e1) {
   // Блок catch
} catch (ИсключениеТип2 e2) {
   // Блок catch
} catch (ИсключениеТип3 e3) {
   // Блок catch
}

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

В обратном случае, исключение переходит ко второму оператору catch. Это продолжается до тех пор, пока не будет произведен перехват совпадающего исключения, либо оно не пройдет через все операторы, в случае чего выполнение текущего метода будет прекращено, и исключение будет перенесено к предшествующему методу в стеке вызовов.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨‍💻32
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6😁4👍2👨‍💻1
Исключения в Java. Часть 5. Перехват многотипных исключений.

Начиная с Java 7, мы с вами можем произвести одинаковую обработку более чем одного исключения при использовании одного блока catch, данное свойство упрощает код, убирая лишние повторяющиеся ключевые слова catch вместе с повторяющимися скобками, которые только увеличивают количество строк.

Но важно понимать, что мы делаем одну конкретную обработку для определенных типов исключений. Если мы знаем, что можем получить другой тип исключения и, например, нам нужно по-другому его обработать (например, вывести другой текст в консоль, более информативный), то мы должны добавить ещё один блок catch на конкретное исключение.

На картинке представлена модель реализации обработки нескольких типов исключений.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥2
👍5🎉41
Исключения в Java. Часть 6.1. Ключевые слова throws/throw.

В случае если метод не может осуществить обработку контролируемого исключения, производится соответствующее уведомление при использовании ключевого слова throws в Java.

Ключевое слово throws появляется в конце сигнатуры метода.

При использовании ключевого слова throw вы можете произвести обработку вновь выявленного исключения, либо исключения, которое было только что перехвачено.

Следует внимательно различать ключевые слова throw и throws в Java, так как throws используется для отложенной обработки контролируемого исключения, а throw, в свою очередь, используется для вызова заданного исключения.

Представленный на картинке метод отображает, что им генерируется RemoteException. В данном методе у нас нет обработки исключения с помощью блока try/catch, а значит обработать это исключение мы должны будем в другом методе, в том, в котором этот метод (deposit(double amount)) будет вызываться далее.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👨‍💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16💯32👍2🤓1
Исключения в Java. Часть 6.2. Ключевые слова throws/throw.

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

К примеру, следующий метод на Картинке оповещает о том, что им генерируются RemoteException и InsufficientFundsException.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2👨‍💻21
Какое значение переменной boolean в Java по умолчанию?
Anonymous Quiz
3%
0
11%
null
63%
false
19%
true
3%
undefined
2%
Посмотреть ответ
👍52👨‍💻2
Исключения в Java. Часть 7. Блок finally.

В Java finally следует за блоком catch. Блок finally в коде выполняется всегда независимо от наличия исключения.

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

Синтаксис можно увидеть на Картинке.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨‍💻32
Конструкция try–with–resources в Java.

Наверное, один из самых распространенных вопросов на собеседовании на junior java разработчика или trainee – Что такое try–with–resources?

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

Конструкция try–with–resources, также именуемая как автоматическое управление ресурсами, представляет новый механизм обработки исключений, который был представлен в 7-ой версии Java, осуществляя автоматическое закрытие всех ресурсов, используемых в рамках блока try catch. А значит нам больше не нужен блок finally в таком случае.

Чтобы воспользоваться данным оператором, вам всего лишь нужно разместить заданные ресурсы в круглых скобках ключевого слова try, после чего созданный ресурс будет автоматически закрыт по окончании блока. На картинке представлен синтаксис конструкции try–with–resources.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73💯1