TGViewer
Channel Public Channel
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

@java_interview_lib

Вопросы с собеседований по Java и ответы на них.

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

Учиться у нас: clc.to/3wECtA

Для обратной связи: @proglibrary_feeedback_bot
Subscribers
6.41K
Photos
438
Videos
12
Links
733

Showing posts older than #36 · Back to latest

Older Posts 20 shown
Post #35 1.43K
✍️«Библиотека программиста» собирает кейсы использования нейросетей

Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?

Заполняйте форму — лучшие истории появятся в нашей подборке по теме.

👉Ссылка тут👈
  • 👍 1
Post #34 1.34K
Может ли имя класса не совпадать с именем файла?

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

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

Так что ответ — может.
  • 👍 14
Post #33 1.33K
Что такое сигнатура метода?

Сигнатура метода — это уникальная комбинация имени метода и списка его параметров. Сигнатура метода определяет, какие аргументы должны быть переданы методу при его вызове.

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

Важно отметить, что сигнатура метода не включает в себя возвращаемый тип и модификаторы доступа.
  • 👍 16
Post #32 1.39K
Как преобразовать строку в целое число?

Ответ на картинке.
  • 👍 12
Post #31 1.44K
Какие виды ссылок на методы вы знаете?

☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
  • 👍 6
  • 🤯 4
  • 👏 1
Post #30 1.49K
Как переименовать файл?

Переименовать файл можно, переместив содержимое первого файла в новый файл и удалив предыдущий файл. Java обрабатывает эту операцию, используя метод resolveSibiling. Он используется для разрешения данного пути относительно родительского пути этого пути.
  • 👍 3
  • 👎 1
  • 🔥 1
  • 🤔 1
Post #29 1.48K
Может ли статический метод быть переопределён или перегружен?

Перегружен — да. Всё работает точно так же, как и с обычными методами — 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.

Переопределён — нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода — это вполне корректная языковая конструкция.

В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
  • 👏 12
Post #28 1.51K
Что такое класс 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() — может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
  • 👍 12
Post #27 1.35K
Что значит «усыпить» поток?

Это значит приостановить его на определенный промежуток времени, вызвав в ходе его выполнения статический метод Thread.sleep() передав в качестве параметра необходимое количество времени в миллисекундах. До истечения этого времени поток может быть выведен из состояния ожидания вызовом interrupt() с выбрасыванием InterruptedException.
  • 🔥 8
  • 👍 1
Post #26 1.56K
Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?

Для этого в LinkedList есть обратный итератор, который можно получить, вызвав метод descendingIterator().
  • ❤ 11
  • 👍 7
Post #25 1.54K
Выполнится ли блок finally, если блок try или catch выполняют инструкцию return?

Да, блок finally выполнится, даже если return выполнился в блоке try или catch. Это один из самых популярных и сложных вопросов по Java. Запомните: единственный способ остановить выполнение блока finally — использовать System.exit().
  • 👍 8
Post #24 1.72K
Как устроен HashMap?

HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение» вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент. Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
  • 👍 11
Post #23 1.64K
Какие возможности Spring предоставляет для коммуникации с базой данных?

Spring предоставляет мощный набор инструментов для работы с базами данных. Ниже перечислены некоторые из них:

— Spring JDBC: Абстракции над JDBC (Java Database Connectivity), что упрощает взаимодействие с базой данных через простые API.

— Spring Data JPA: Spring абстракция над JPA (Java Persistence API) и упрощает взаимодействие с объектно-реляционными базами данных (ORM).

— Spring ORM: Spring ORM интегрирует ORM-фреймворки, такие как Hibernate, с Spring Framework. Он обеспечивает удобную интеграцию между Spring и ORM-фреймворками, предоставляя возможности управления транзакциями, упрощенный доступ к данным и возможности кэширования.

— Spring Data JDBC: Альтернативный подход к доступу к данным с использованием JDBC. В отличие от ORM, Spring Data JDBC предлагает простую и прямолинейную модель доступа к данным без использования объектно-реляционного отображения (ORM).

— Spring Transactions: Spring предоставляет механизм управления транзакциями для работы с базами данных. Он позволяет объявлять транзакции с помощью аннотаций или XML-конфигурации.

— Spring Batch: Spring Batch предоставляет возможности для пакетной обработки данных, включая чтение, обработку и запись данных в базу данных.
  • 👍 10
Post #22 1.29K
Что такое ключевое слово final и где его использовать?

Ключевое слово final можно использовать для переменных, методов и классов.
1. final переменную нельзя переназначить на другой объект.
2. final класс бесплоден, у него не может быть наследников.
3. final метод не может быть переопределен у предка.

Пробежали по верхам, теперь обсудим более подробно final переменные. Java даёт нам два способа создать переменную и присвоить ей некоторое значение:
1. Можно объявить переменную и инициализировать ее позже.
2. Можно объявить переменную и сразу же назначить ее.
Пример с использованием final переменной для этих случаев приведен выше на картинке.
  • 🔥 7
  • ❤ 1
  • 👎 1
Post #21 1.31K
Кто еще не подписан на наш главный канал — очень рекомендуем!

В «Библиотеке программиста» вас ждут фундаментальные IT-темы, Git, рынок труда, главные новости и, конечно же, мемы😎

Вот вам топ недавних постов:
🔍про коммиты в ветках Git
🔍новость о создании сверхразумного ИИ
🔍подборка инфографик на фундаментальные темы
🔍дайджест нейросетей для разработки

👉Подписаться👈
  • 👍 1
Post #20 1.22K
Зачем нужны и какие бывают блоки инициализации?

Блоки инициализации используются для выполнения определенного кода при создании объекта. Их использование позволяет вынести логику инициализации полей объекта за пределы конструкторов.

Бывают два типа блоков инициализации:

1. Блоки инициализации экземпляра — выполняются при создании каждого нового экземпляра класса. Они объявляются с помощью ключевого слова instance и фигурных скобок.

2. Статические блоки инициализации — выполняются один раз при загрузке класса. Они объявляются с помощью ключевого слова static и фигурных скобок.
  • 👎 5
  • 👍 3
Post #19 1.26K
Что такое маркерный интерфейс? Каковы известные примеры таких интерфейсов в Java?

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

☕️ Serializable используется для явного указания того, что этот класс может быть сериализован;
☕️ Cloneable позволяет клонировать объекты с помощью метода clone (без интерфейса Cloneable этот метод выдает исключение CloneNotSupportedException);
☕️ Remote используется в RMI для указания интерфейса, методы которого можно вызывать удаленно.
  • 👍 3
  • ❤ 1
Post #18 1.26K
Назовите основные классы потоков ввода/вывода.

Разделяют два вида потоков ввода/вывода:
• байтовые - java.io.InputStream, java.io.OutputStream;
• символьные - java.io.Reader, java.io.Writer.
  • 👍 8
  • 👎 1
  • 🤯 1
Post #17 1.33K
Как одной строчкой преобразовать HashSet в ArrayList?

Ответ на картинке.
  • 👎 12
  • 👍 9
Post #16 1.41K
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?

Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
  • 🔥 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →