Библиотека собеса по Java | вопросы с собеседований
6.32K subscribers
370 photos
4 videos
301 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Для обратной связи: @proglibrary_feeedback_bot
加入频道
Статический инициализатор

Статический инициализатор — блок кода, который выполняется при первой загрузке класса или при первом обращении к статическому члену класса (переменной или методу). Статический инициализатор обычно используется для инициализации статических переменных или выполнения других действий, которые требуются только один раз, при загрузке класса.
👍7
Статический инициализатор

Статический инициализатор — блок кода, который выполняется при первой загрузке класса или при первом обращении к статическому члену класса (переменной или методу). Статический инициализатор обычно используется для инициализации статических переменных или выполнения других действий, которые требуются только один раз, при загрузке класса.
👾6
Статический инициализатор

Статический инициализатор — блок кода, который выполняется при первой загрузке класса или при первом обращении к статическому члену класса (переменной или методу). Статический инициализатор обычно используется для инициализации статических переменных или выполнения других действий, которые требуются только один раз, при загрузке класса.
👏3👾2👍1
StampedLock

StampedLock — это механизм блокировки, представленный в Java 8. Он отличается от других механизмов блокировки, таких как synchronized и ReentrantLock, тем, что использует концепцию меток. Метка — это целое число, которое используется для отслеживания состояния блокировки.

StampedLock поддерживает три режима блокировки:

— Обычный режим (READ): в этом режиме несколько потоков могут одновременно читать данные, защищенные блокировкой.
— Редактирование (WRITE): в этом режиме только один поток может получить доступ к данным для редактирования.
— Оптимистическая блокировка (OPTIMISTIC): в этом режиме поток может получить доступ к данным для чтения, не блокируя другие потоки. Если данные были изменены другим потоком до того, как поток закончил чтение, поток получит ошибку.
👍3
LongAdder

LongAdder — это класс атомарных long-значений в Java, который предназначен для повышения производительности в многопоточных приложениях при частом изменении значения.

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

LongAdder можно использовать в следующих случаях:
— Для хранения счетчиков, которые часто обновляются несколькими потоками.
— Для реализации распределенных счетчиков, которые могут быть обновлены из любого места в сети.
— Для реализации распределенных хэш-таблиц, в которых значение хэша может быть обновлено несколькими потоками.
👍5🔥1🤔1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🤔1
Что такое трассировка стека (stacktrace) и как она связана с исключением?

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

Это очень полезный инструмент отладки, поскольку он позволяет нам точно определить, где именно в приложении было сгенерировано исключение, и первоначальные причины, которые привели к нему.
👍7🔥1
Отличия String, StringBuilder, StringBuffer

⏺️ String — иммутабельный байтовый массив;
⏺️ StringBuilder — helper-класс для построения строк, не предоставляет гарантий синхронизации;
⏺️ StringBuffer — то же, что и StringBuilder, с synchronized методами.
EventListener

EventListener (слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.
👍1
Какие типы ключевых слов используются в обработке исключений Java?

try
catch
finally
throw
throws
👍10
Интерфейс Supplier

Интерфейс Supplier — это функциональный интерфейс в языке программирования Java, определенный в пакете java.util.function. Он представляет собой интерфейс, который может использоваться для предоставления значений, но не принимает аргументов. В этом интерфейсе есть один метод, который не принимает аргументов и возвращает значение.

Метод Supplier:
T get();

Где T — это тип возвращаемого значения.

Supplier может быть полезным, когда вам нужно получить значение, но не требуется передавать какие-либо аргументы для его получения. Этот интерфейс часто используется, например, в лямбда-выражениях и стримах для предоставления значений.
👍6
Метод startsWith()

Метод startsWith() является частью класса String и используется для проверки того, начинается ли строка с определенной подстроки. Вот сигнатура метода:

public boolean startsWith(String prefix)

Этот метод возвращает true, если вызывающая строка начинается с указанного префикса (prefix), и false в противном случае.
👍9
Метод putAll()

Метод putAll() принадлежит интерфейсу Map и используется для добавления всех элементов из одной карты (Map) в другую. Этот метод принимает в качестве аргумента другую карту и добавляет все ее записи в вызывающую карту.

Например, если у вас есть две карты, содержащие данные, и вам нужно объединить их для выполнения операций на полном объеме данных, метод putAll() предоставляет простой способ объединения.
👍8
Узнаем размер каталога с помощью Java

Размер файлов в Java можно получить с помощью класса File. Встроенная функция 'fileName.length()' используется для определения размера файла в байтах.

Каталог может содержать N файлов, для расчета размера каталога требуется суммирование размеров всех файлов.
👍5
Всегда ли исполняется блок finally?

Блок finally всегда выполняется, независимо от того, было ли выброшено исключение или нет.

Это происходит по следующим причинам:

⚡️ Блок finally гарантирует, что критически важный код будет выполнен, даже если в try или catch блоках произошла ошибка.

⚡️ Если в try блоке вызвана инструкция return, блок finally отработает перед возвратом из метода.

⚡️ Если в try или catch блоке вызван метод System.exit() для завершения приложения, блок finally отработает перед завершением.

Единственный случай, когда блок finally не выполняется — это когда JVM аварийно завершается из-за ошибки.
👍3
java.lang.reflect.Constructor

Класс java.lang.reflect.Constructor представляет собой конструктор класса Java. Он используется для создания экземпляров класса, предоставляя доступ к информации о конструкторе, а также возможность его вызова.
👍1
Может ли один блок catch отлавливать несколько исключений (с одной и разных веток наследований)?

Да, в Java один блок catch может обрабатывать сразу несколько типов исключений.
Это работает следующим образом:

— При определении блока catch в круглых скобках перечисляются классы исключений через вертикальную черту «|» . Это могут быть классы исключений как с одной ветки наследования, так и с разных.

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

Это позволяет избежать дублирования кода обработки в случаях, когда разные исключения должны обрабатываться одинаково.
👍6
Сигнатура метода

Сигнатура метода — это имя метода и типы входящих параметров (причем порядок параметров имеет значение). В сигнатуру метода не входит возвращаемое значение, а также бросаемые им исключения. Сигнатура метода в сочетании с типом возвращаемого значения и перечнем бросаемых исключений называется контрактом метода.
🤔6🔥4👍1
KeyListener

KeyListener — это интерфейс в Java, который позволяет отслеживать события, связанные с клавиатурой. Он используется для определения того, когда пользователь нажимает, отпускает или печатает клавишу.
6👍2
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
DatagramPacket

DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
👍4