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
#Вопросы_с_собеседования

Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().
👍22😱2🤔1
Метод Collections.shuffle

Метод shuffle() случайным образом перемешивает все элементы переданного списка.
👍26🤔1
Что будет выведено на экран в результате выполнения следующего кода: public class SomeClass { static int x = 5; public static void main(String[] args) { int x; int y = 5; if (y > 3) x = 1; System.out.println(x); } }
Anonymous Quiz
41%
сообщение об ошибке компиляции
36%
1
2%
3
13%
предупреждение о потенциальной ошибке
8%
5
👍132🔥1
#Вопросы_с_собеседования

Что такое маркерный интерфейс? Каковы известные примеры таких интерфейсов в Java?

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

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

Скомпилируется ли код с картинки?

Ответ:
Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.
👍20😱4
Что такое ReadWriteLock?

ReadWriteLock — это интерфейс, расширяющий базовый интерфейс Lock. Используется для улучшения производительности в многопоточном процессе и оперирует парой связанных блокировок (одна - для операций чтения, другая - для записи). Блокировка чтения может удерживаться одновременно несколькими читающими потоками, до тех пор, пока не появится записывающий. Блокировка записи является эксклюзивной.

Существует реализующий интерфейс ReadWriteLock класс ReentrantReadWriteLock, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.
👍81
#Вопросы_с_собеседования

Зачем нужны и какие бывают блоки инициализации?

Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.

• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
👍143
JVM internals

Статья объясняет внутреннюю архитектуру виртуальной машины Java (JVM).

Смотреть статью
👍8🔥21
#Вопросы_с_собеседования

Как не допустить сериализацию?

Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.

Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации.
👍102🔥1
#Вопросы_с_собеседования

Напишите программу на Java для вставки данного элемента в очередь с приоритетами

Ответ на картинке.
👍13🤔4
#вопросы_с_собеседований
Какие существуют типы автовайринга Spring Bean?

В среде Spring существует четыре типа автовайринга.
✔️ autowire byName
✔️ autowire byType
✔️ autowire by constructor
✔️ autowiring by @Autowired and @Qualifier annotations

До Spring 3.1 также поддерживалась autowire by autodetect, которая была похожа на автовайринг по конструктору или по типу. Для получения более подробной информации об этих опциях можете обратиться к статье.
👍61
#Вопросы_с_собеседования

Что такое Instance Variable?

Instance Variable — переменная, которая определена внутри класса, и она существует вплоть до того момента, пока существует объект.

Пример — класс Bee, в котором есть две переменные nectarCapacity и maxNectarCapacity.
👍61
Что выведет данный код?
Anonymous Quiz
33%
Error
38%
[5, 0]
2%
5 {0}
17%
[0, 5]
11%
Узнать ответ
👍5😢5
Извлекаем имя из адреса электронной почты

Метод extractNameFromEmail принимает строку с адресом электронной почты и возвращает подстроку до символа "@" (если символ "@" присутствует в строке) в качестве имени.
👍23
Как между собой связаны Iterable и Iterator?

Интерфейс Iterable имеет только один метод - iterator(), который возвращает Iterator.
👍12
Object[] vs custom Class

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

Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore

Ответ на картинке.
👍17
Какие подклассы класса Reader вы знаете, для чего они предназначены?

Reader - абстрактный класс, описывающий символьный ввод;
BufferedReader - буферизованный входной символьный поток;
CharArrayReader - входной поток, который читает из символьного массива;
FileReader - входной поток, читающий файл;
FilterReader - абстрактный класс, предоставляющий интерфейс для классов-надстроек;
InputStreamReader - входной поток, транслирующий байты в символы;
LineNumberReader - входной поток, подсчитывающий строки;
PipedReader - входной канал;
PushbackReader - входной поток, позволяющий возвращать символы обратно в поток;
StringReader - входной поток, читающий из строки.
👍15🔥1