Java Learning
19.4K subscribers
1.58K photos
1 video
3 files
957 links
№ 5079899194

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

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

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

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

Когда вызывается конструктор класса?

Ответ: Конструктор класса вызывается каждый раз, когда создается объект с новым ключевым словом.

Например, в следующем классе два объекта создаются с использованием ключевого слова new, и, следовательно, конструктор вызывается два раза.
👍25👎17
#Вопросы_с_собеседования

Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?

Ответ:
Да, будет, но в этом случае HashMap вырождается в связный список и теряет свои преимущества.
👍37
📌 Lombok — библиотека, генерирующая за вас бойлерплейт (шаблонный) код. Даёт возможность создавать классы ускоренно, так как не надо вручную прописывать, например, геттеры и сеттеры, всё делается с помощью аннотаций.

Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Value. Все поля класса будут финализированы и сделаны приватными.

Ознакомиться с проектом подробнее можно с помощью документации: https://projectlombok.org/
👍25👎2
#Вопросы_с_собеседования

Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?

Если возникшее исключение - наследник RuntimeException:

• для статических блоков инициализации будет выброшено java.lang.ExceptionInInitializerError;
• для нестатических будет проброшено исключение-источник.
Если возникшее исключение - наследник Error, то в обоих случаях будет выброшено java.lang.Error. Исключение: java.lang.ThreadDeath - смерть потока. В этом случае никакое исключение выброшено не будет.
👍14
Метод delete()

Удаляет символы в подстроке данной строки буфера (StringBuffer). Подстрока начинается с указанного начального индекса и распространяется до символа конечного индекса, или до конца StringBuffer, если такого символа не существует.

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

Если start (начальный индекс) равен end (конечный индекс), то изменения не производятся.

Параметры:
• start — начальный индекс, включительно;
• end — конечный индекс, не включая.
👍24
#Вопросы_с_собеседования

Оцените количество памяти на хранение одного примитива типа byte в ArrayList?

ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому 16 байт тратится на хранение упакованного объекта и 4 байта (8 для x64) - на хранение ссылки на этот объект в самой структуре данных.

Таким образом, в x32 JVM 4 байта используются на хранение одного элемента и 16 байт - на хранение упакованного объекта типа Byte. Для x64 - 8 байт и 24 байта соответственно.
👍20👎4
Извлечение даты

На картинке показано извлечение даты из строки при помощи регулярного выражения.
👍21😱13
#Вопросы_с_собеседования

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

OutputStreamWriter — «мост» между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.
InputStreamReader — аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.
👍161
👍5
Что выведет код сверху?
Anonymous Quiz
39%
HaHa
7%
Ha Ha
42%
Ha169
12%
Error
👍41👎2
Enum vs String

Используйте Enum для предопределенных состояний модели там, где это возможно. Это не только упрощает понимание кода, но и ускоряет процесс сравнения этих состояний. Сравнение по ссылке, определенно, на порядок быстрее стравнения строк или других обьектов.

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

Но в случае если это неизменные свойства, как месяц года, то смело используйте перечисление.
👍20
#Вопросы_с_собеседования

Дайте определение понятию «конструктор»

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

Звук — важный компонент многих десктопных приложений и игр. Язык программирования Java предоставляет средства для работы с ним.
👍343
Обработка исключений в Java в функциональном стиле

В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.

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

Что значит «усыпить» поток?

Это значит приостановить его на определенный промежуток времени, вызвав в ходе его выполнения статический метод Thread.sleep() передав в качестве параметра необходимое количество времени в миллисекундах. До истечения этого времени поток может быть выведен из состояния ожидания вызовом interrupt() с выбрасыванием InterruptedException.
👍20
#Вопросы_с_собеседования

Какие типы классов бывают в Java?

☕️ Top level class (Обычный класс):
✔️ Abstract class (Абстрактный класс);
✔️ Final class (Финализированный класс).
☕️ Interfaces (Интерфейс).
☕️ Enum (Перечисление).
☕️ Nested class (Вложенный класс):
✔️ Static nested class (Статический вложенный класс);
✔️ Member inner class (Простой внутренний класс);
✔️ Local inner class (Локальный класс);
✔️ Anonymous inner class (Анонимный класс).
👍35