Java Learning
18.8K subscribers
1.62K photos
1 video
3 files
994 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

Что такое «ссылка на метод»?

Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:

имя_класса::имя_статического_метода для статического метода;
объект_класса::имя_метода для метода экземпляра;
название_класса::new для конструктора.
Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.

Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
👍23
#Вопросы_с_собеседования

Что такое Map.of()?

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

Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.
👍161
#Вопросы_с_собеседования

Что выведет код сверху?

Ответ:
Программа не выдаст ошибки компиляции. Поскольку a больше 20, а b больше 25, будет выведена 1. Второй оператор if не будет истинным, так как a не больше 30, поэтому будет выполнен блок else, который выведет 3. Таким образом, на выходе будет 1, а затем 3. Обратите пристальное внимание на операторы if и else if. Если бы вместо второго оператора if был оператор else if, то на выходе была бы только 1.
👍45😱32🔥1😢1
Шаблон проектирования: Chain of Responsibility

Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.

Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.

Смотреть статью
👍6🔥2🤔1😢1
Может ли имя класса не совпадать с именем файла?

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

Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.

Так что ответ – может.
👍231
Log4j

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

После подключения и быстрой настройки библиотеки работа с логами будет сведена к коду на картинке. После выполнения кода в лог будет записано что-то вроде:

2022-02-05 15:00 DEBUG MainClass:5 — Сообщение об баге

2022-02-05 15:00 ERROR MainClass:6 — Сообщениe об ошибке

2022-02-05 15:00 WARN MainClass:7 — Предупреждение

2022-02-05 15:00 INFO MainClass:8 — Информация

Подробнее о библиотеке можно узнать на сайте разработчика.
👍102
#Вопросы_с_собеседования

FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
👍27
Манипуляции с байт-кодом Java

В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.

Смотреть статью
👍6😱2
#Вопросы_с_собеседования

🎙️ Какие два класса не наследуются от Object?

Ответ:
Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍874🔥2
Как долго вы изучаете Java?
Anonymous Poll
45%
Менее года
37%
1-2 года
8%
3 года
10%
4+ лет
👍14😢8
👍1
Какая строка первой вызовет ошибку компиляции?
Anonymous Quiz
51%
l1
6%
l2
6%
l3
26%
l4
11%
Узнать ответ
🤔20👍19🔥3
Узнаем IP-адрес своего компьютера

InetAddress.getLocalHost() используется для поиска частных IP - адресов, используемых в локальной сети или любой другой локальной сети.

Подробнее объяснение кода можно найти здесь.
👍24
#Вопросы_с_собеседования

Где разрешена инициализация статических/нестатических полей?

☕️ Статические поля можно инициализировать при объявлении, в статическом или нестатическом блоке инициализации.
☕️ Нестатические поля можно инициализировать при объявлении, в нестатическом блоке инициализации или в конструкторе.
👍23
Строка на 1,5 гигабайта

Смотреть статью
👍18😱71
Получение обратного массива

Используем библиотеку Apache Commons Lang.

Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета java.lang.*.
👍19
🔥3
Что выведет код сверху?
Anonymous Quiz
36%
HaHa
6%
Ha Ha
44%
Ha169
14%
Error
👍35
Что такое класс Object? Какие в нем есть методы?

Object это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы:

public boolean equals(Object obj) – служит для сравнения объектов по значению;

int hashCode() – возвращает hash код для объекта;

String toString() – возвращает строковое представление объекта;

Class getClass() – возвращает класс объекта во время выполнения;

protected Object clone() – создает и возвращает копию объекта;

void notify() – возобновляет поток, ожидающий монитор;

void notifyAll() – возобновляет все потоки, ожидающие монитор;

void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
👍27🔥3
#Вопросы_с_собеседования

Какие типы ключевых слов используются в обработке исключений Java?

try
catch
finally
throw
throws
👍34