Java Developer – Telegram
Java Developer
15.7K subscribers
1.86K photos
141 videos
2 files
2.09K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

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

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

Ответ: try, catch, finally, throw, throws.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Маркерный интерфейc и примеры таких интерфейсов в Java

Маркерный интерфейс — это интерфейс без каких-либо методов. Обычно он реализуется классом или расширяется другим интерфейсом для обозначения определенного свойства. Наиболее широко известными маркерами в стандартной библиотеке Java являются следующие:

Serializable — используется для явного указания того, что этот класс может быть сериализован;
Cloneable — позволяет клонировать объекты с помощью метода clone (без интерфейса Cloneable этот метод выдает исключение CloneNotSupportedException);
Remote — используется в RMI для указания интерфейса, методы которого можно вызывать удаленно.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Hibernate

Hibernate — это ORM фреймворк для Java с открытым исходным кодом. Эта технология является крайне мощной и имеет высокие показатели производительности.

Hibernate создаёт связь между таблицами в базе данных и Java-классами и наоборот. Это избавляет разработчиков от огромного количества лишней, рутинной работы, в которой крайне легко допустить ошибку и крайне трудно потом её найти.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой сборщик мусора самый медленный?
Anonymous Quiz
15%
Parallel
23%
G1
42%
Serial
20%
CMS
👩‍💻 Механизм try-with-resources

try-with-resources — конструкция, которая появилась в Java 7. Она позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

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

Ответ: таких классов нет: все классы прямо или через предков наследуются от класса Object.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В каком классе или интерфейсе реализованы (объявлены) методы wait(), notify(), notifyAll()?
Anonymous Quiz
19%
Runnable
35%
Thread
6%
Callable
40%
Object
1
👩‍💻 Метод Map.of()

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

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем версию Java

В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");

Этот код вернет текущую версию Java, установленную на компьютере.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем размер файла с помощью Java

Здесь создается объект класса File, указывающий на файл, размер которого нужно узнать. Затем вызывается метод length(), который возвращает размер файла в байтах. Результат выводится на консоль с помощью метода println().

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Класс 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() — может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Что выведет код сверху?

Ответ: так как "a" больше 20, а "b" больше 25, будет выведена "1". Второй оператор if не будет истинным, так как "a" не больше 30, поэтому будет выполнен блок else, который выведет "3". Таким образом, на выходе будет "1", а затем "3". Обратите внимание на операторы if и else if. Если бы вместо второго оператора if был оператор else if, то на выходе была бы только "1".

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Узнаем IP-адрес своего компьютера

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Каково максимальное число значений hashCode()?

Ответ: число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какое из написаний соответствует «верблюжьему стилю» (camel case)?
Anonymous Quiz
16%
big_cat
4%
bigcat
81%
BigCat
👩‍💻 Рефлексия (Reflection)

Рефлексия (Reflection) — это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.

Возможности Java Reflection API:

Определение класса объекта;

Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;

Определение интерфейсов, реализуемых классом;

Создание экземпляра класса;

Получение и установка значений полей объекта;

Вызов методов объекта;

Создание нового массива.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Работа блока try-catch-finally

try — данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке.

catch — ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений в случае их возникновения.

finally — ключевое слово для отметки начала блока кода, который является дополнительным. Этот блок помещается после последнего блока catch. Управление передаётся в блок finally в любом случае, было выброшено исключение или нет.

Общий вид конструкции для обработки исключительной ситуации описан на картинке.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Можно ли использовать строки в конструкции switch?

Ответ: Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Ключевые слова volatile, synchronized, transient, native

volatile — этот модификатор вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа — этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект — синхронизировано будет исключительно значение этой ссылки. Все же данные, содержащиеся в объекте, синхронизированы не будут.

synchronized — это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.

transient и native к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе — сигнализирует о том, что метод реализован в платформо-зависимом коде.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Какие существуют unchecked exception?

Ответ: наиболее часто встречающиеся — ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM