#Вопросы_с_собеседования
Как происходит удаление элементов из ArrayList? Как меняется в этом случае размер ArrayList?
При удалении произвольного элемента из списка, все элементы, находящиеся «правее» смещаются на одну ячейку влево и реальный размер массива (его емкость, capacity) не изменяется никак. Механизм автоматического «расширения» массива существует, а вот автоматического «сжатия» нет, можно только явно выполнить «сжатие» командой trimToSize().
Как происходит удаление элементов из ArrayList? Как меняется в этом случае размер ArrayList?
При удалении произвольного элемента из списка, все элементы, находящиеся «правее» смещаются на одну ячейку влево и реальный размер массива (его емкость, capacity) не изменяется никак. Механизм автоматического «расширения» массива существует, а вот автоматического «сжатия» нет, можно только явно выполнить «сжатие» командой trimToSize().
👍29
JFreeChart
JFreeChart — это обширная бесплатная библиотека диаграмм для платформы Java(tm), которую можно использовать на стороне клиента (JavaFX и Swing) или на стороне сервера (с экспортом в несколько форматов, включая SVG, PNG и PDF).
Вся документация лежит здесь.
JFreeChart — это обширная бесплатная библиотека диаграмм для платформы Java(tm), которую можно использовать на стороне клиента (JavaFX и Swing) или на стороне сервера (с экспортом в несколько форматов, включая SVG, PNG и PDF).
Вся документация лежит здесь.
GitHub
GitHub - jfree/jfreechart: A 2D chart library for Java applications (JavaFX, Swing or server-side).
A 2D chart library for Java applications (JavaFX, Swing or server-side). - jfree/jfreechart
👍8😱1
👍26👎3❤1
#Вопросы_с_собеседования
В чем разница между this() и super()?
super() и this() являются специальными ключевыми словами, которые используются для вызова конструктора.
В чем разница между this() и super()?
super() и this() являются специальными ключевыми словами, которые используются для вызова конструктора.
👍29😱3
#вопросы_с_собеседований
Опишите работу блока try-catch-finally.
try — это ключевое слово используется для отметки начала блока кода, который потенциально может выдать ошибку. catch — ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений в случае их возникновения. finally — слово для отметки начала необязательного блока кода. Этот блок помещается после последнего блока catch. Управление передаётся в блок finally вне зависимости от того, было выброшено исключение или нет.
Общий вид конструкции показан на картинке.
Опишите работу блока try-catch-finally.
try — это ключевое слово используется для отметки начала блока кода, который потенциально может выдать ошибку. catch — ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений в случае их возникновения. finally — слово для отметки начала необязательного блока кода. Этот блок помещается после последнего блока catch. Управление передаётся в блок finally вне зависимости от того, было выброшено исключение или нет.
Общий вид конструкции показан на картинке.
👍28
#Вопросы_с_собеседования
❓Сколько необходимо дополнительной памяти при вызове ArrayList.add()?
Если в массиве достаточно места для размещения нового элемента, то дополнительной памяти не требуется. Иначе происходит создание нового массива размером в 1,5 раза превышающим существующий (это верно для JDK выше 1.7, в более ранних версиях размер увеличения иной).
❓Сколько необходимо дополнительной памяти при вызове ArrayList.add()?
Если в массиве достаточно места для размещения нового элемента, то дополнительной памяти не требуется. Иначе происходит создание нового массива размером в 1,5 раза превышающим существующий (это верно для JDK выше 1.7, в более ранних версиях размер увеличения иной).
👍20
TelegramBots
Это библиотека для создания телеграм-ботов на Java. Разработка движется от способности бота вести себя так или иначе. Вы создаёте объект Ability и конкретизируете входные данные, место действия (группа или персональный чат), права доступа (кто может использовать данную способность — кто угодно, админ или только создатель бота), сами действия и то, что происходит после их завершения. Каждая новая функция бота — новая способность, которую вы можете настроить отдельно. Для каждой Ability — своя встроенная база данных.
Бот автоматически ведёт историю контактов с пользователями, актуализирует имена и ники. Есть готовые механизмы разжалования админов, банов и снятия банов.
https://github.com/rubenlagus/TelegramBots
Это библиотека для создания телеграм-ботов на Java. Разработка движется от способности бота вести себя так или иначе. Вы создаёте объект Ability и конкретизируете входные данные, место действия (группа или персональный чат), права доступа (кто может использовать данную способность — кто угодно, админ или только создатель бота), сами действия и то, что происходит после их завершения. Каждая новая функция бота — новая способность, которую вы можете настроить отдельно. Для каждой Ability — своя встроенная база данных.
Бот автоматически ведёт историю контактов с пользователями, актуализирует имена и ники. Есть готовые механизмы разжалования админов, банов и снятия банов.
https://github.com/rubenlagus/TelegramBots
GitHub
GitHub - rubenlagus/TelegramBots: Java library to create bots using Telegram Bots API
Java library to create bots using Telegram Bots API - rubenlagus/TelegramBots
👍17
👍35😱13
#Вопросы_с_собеседования
❓В чем отличия TreeSet и HashSet?
TreeSet обеспечивает упорядоченно хранение элементов в виде красно-черного дерева. Сложность выполнения основных операций не хуже O(log(N)) (Логарифмическое время).
HashSet использует для хранения элементов такой же подход, что и HashMap, за тем отличием, что в HashSet в качестве ключа и значения выступает сам элемент, кроме того, HashSet не поддерживает упорядоченное хранение элементов и обеспечивает временную сложность выполнения операций аналогично HashMap.
❓В чем отличия TreeSet и HashSet?
TreeSet обеспечивает упорядоченно хранение элементов в виде красно-черного дерева. Сложность выполнения основных операций не хуже O(log(N)) (Логарифмическое время).
HashSet использует для хранения элементов такой же подход, что и HashMap, за тем отличием, что в HashSet в качестве ключа и значения выступает сам элемент, кроме того, HashSet не поддерживает упорядоченное хранение элементов и обеспечивает временную сложность выполнения операций аналогично HashMap.
👍19
#вопросы_с_собеседований
Как написать собственное («пользовательское») исключение?
Необходимо унаследоваться от базового класса требуемого типа исключений (например, от Exception или RuntimeException).
Как написать собственное («пользовательское») исключение?
Необходимо унаследоваться от базового класса требуемого типа исключений (например, от Exception или RuntimeException).
👍25
👍25👎3❤1😱1
#Вопросы_с_собеседования
❓Чем различаются Thread и Runnable?
Помимо того, что Runnable помогает разрешить проблему множественного наследования, несомненный плюс от его использования состоит в том, что он позволяет логически отделить логику выполнения задачи от непосредственного управления потоком.
❓Чем различаются Thread и Runnable?
Thread
- это класс, некоторая надстройка над физическим потоком.Runnable
- это интерфейс, представляющий абстракцию над выполняемой задачей.Помимо того, что Runnable помогает разрешить проблему множественного наследования, несомненный плюс от его использования состоит в том, что он позволяет логически отделить логику выполнения задачи от непосредственного управления потоком.
👍24
#вопросы_с_собеседований
Как отсортировать список строк с помощью лямбда-выражения?
Ответ на картинке.
Как отсортировать список строк с помощью лямбда-выражения?
Ответ на картинке.
👍34
#Вопросы_с_собеседования
❓Какова роль equals() и hashCode() в HashMap?
hashCode позволяет определить корзину для поиска элемента, а equals используется для сравнения ключей элементов в списке корзины и искомого ключа.
❓Какова роль equals() и hashCode() в HashMap?
hashCode позволяет определить корзину для поиска элемента, а equals используется для сравнения ключей элементов в списке корзины и искомого ключа.
👍27
#Вопросы_с_собеседования
В чём заключается разница между методами start() и run()?
Несмотря на то, что start() вызывает метод run() внутри себя, это не то же самое, что просто вызов run(). Если run() вызывается как обычный метод, то он вызывается в том же потоке и никакой новый поток не запускается, как это происходит, в случае, когда вы вызываете метод start().
В чём заключается разница между методами start() и run()?
Несмотря на то, что start() вызывает метод run() внутри себя, это не то же самое, что просто вызов run(). Если run() вызывается как обычный метод, то он вызывается в том же потоке и никакой новый поток не запускается, как это происходит, в случае, когда вы вызываете метод start().
👍25