Как проверить, отсортирован ли массив в Java
Один из способов - это использование библиотеки Apache Commons Lang, которая предлагает статический служебный метод. isSorted() в ArrayUtils учебный класс.
Другие варианты проверки отсортирован ли массив можно найти здесь.
Один из способов - это использование библиотеки Apache Commons Lang, которая предлагает статический служебный метод. isSorted() в ArrayUtils учебный класс.
Другие варианты проверки отсортирован ли массив можно найти здесь.
👍28
#Вопросы_с_собеседования
❓Как перебрать все пары «ключ-значение» в Map?
Использовать метод
❓Как перебрать все пары «ключ-значение» в Map?
Использовать метод
entrySet()
, который возвращает множество Set<Map.Entry<K, V>
пар «ключ-значение».👍22👎4
👎34👍31😱3
LJV: Чему нас может научить визуализация структур данных в Java
LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе запускается LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбирается, что там внутри, как оно менялось от версии к версии, и как это всё работает.
Смотреть статью
LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе запускается LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбирается, что там внутри, как оно менялось от версии к версии, и как это всё работает.
Смотреть статью
Хабр
LJV: Чему нас может научить визуализация структур данных в Java
Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет...
👍11
#Вопросы_с_собеседования
❓Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore
Ответ на картинке.
❓Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore
Ответ на картинке.
👍24
#Вопросы_с_собеседования
❓Сколько создается новых объектов, когда вы добавляете новый элемент в HashMap?
Создается один новый объект статического вложенного класса
❓Сколько создается новых объектов, когда вы добавляете новый элемент в HashMap?
Создается один новый объект статического вложенного класса
Entry<K,V>
.👍24
Класс AbstractSet
Класс
Подробнее можно почитать здесь.
Класс
AbstractSet
в Java является частью Java Collection Framework , которая реализует интерфейс Collection и расширяет класс AbstractCollection
. Он обеспечивает скелетную реализацию интерфейса Set. Этот класс не переопределяет какие-либо реализации из класса AbstractCollection
, а просто добавляет реализации для методов equals() и hashCode().Подробнее можно почитать здесь.
👍12
#Вопросы_с_собеседования
❓Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?
Java HotSpot VM предоставляет разработчикам на выбор четыре различных сборщика мусора:
• Serial (последовательный) — самый простой вариант для приложений с небольшим объемом данных и не требовательных к задержкам. На данный момент используется сравнительно редко, но на слабых компьютерах может быть выбран виртуальной машиной в качестве сборщика по умолчанию. Использование Serial GC включается опцией
• Parallel (параллельный) — наследует подходы к сборке от последовательного сборщика, но добавляет параллелизм в некоторые операции, а также возможности по автоматической подстройке под требуемые параметры производительности. Параллельный сборщик включается опцией
• Concurrent Mark Sweep (CMS) — нацелен на снижение максимальных задержек путем выполнения части работ по сборке мусора параллельно с основными потоками приложения. Подходит для работы с относительно большими объемами данных в памяти. Использование CMS GC включается опцией
• Garbage-First (G1) — создан для замены CMS, особенно в серверных приложениях, работающих на многопроцессорных серверах и оперирующих большими объемами данных. G1 включается опцией Java
❓Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?
Java HotSpot VM предоставляет разработчикам на выбор четыре различных сборщика мусора:
• Serial (последовательный) — самый простой вариант для приложений с небольшим объемом данных и не требовательных к задержкам. На данный момент используется сравнительно редко, но на слабых компьютерах может быть выбран виртуальной машиной в качестве сборщика по умолчанию. Использование Serial GC включается опцией
-XX:+UseSerialGC
.• Parallel (параллельный) — наследует подходы к сборке от последовательного сборщика, но добавляет параллелизм в некоторые операции, а также возможности по автоматической подстройке под требуемые параметры производительности. Параллельный сборщик включается опцией
-XX:+UseParallelGC
.• Concurrent Mark Sweep (CMS) — нацелен на снижение максимальных задержек путем выполнения части работ по сборке мусора параллельно с основными потоками приложения. Подходит для работы с относительно большими объемами данных в памяти. Использование CMS GC включается опцией
-XX:+UseConcMarkSweepGC
.• Garbage-First (G1) — создан для замены CMS, особенно в серверных приложениях, работающих на многопроцессорных серверах и оперирующих большими объемами данных. G1 включается опцией Java
-XX:+UseG1GC
.👍12❤2👎1
👍30😱10👎6
#Вопросы_с_собеседования
❓Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?
Ответ:
При следующем вызове методов итератора будет выброшено ConcurrentModificationException.
❓Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?
Ответ:
👍22❤3
Парсинг JSON с помощью Jackson
Jackson в основном известен как библиотека, которая конвертирует строки JSON и простые объекты Java (англ POJO — Plain Old Java Object).
Смотреть статью
Jackson в основном известен как библиотека, которая конвертирует строки JSON и простые объекты Java (англ POJO — Plain Old Java Object).
Смотреть статью
Хабр
Парсинг JSON с помощью Jackson
Большая часть веба на сегодняшний день обменивается данными в формате JSON. Веб-серверы, веб-приложения и мобильные приложения, даже устройства IoT общаются друг с другом, используя JSON. Простой и...
👍11
Spark Framework
Spark — оптимальный выбор для программистов, разрабатывающих веб-приложения на Java. В нём можно быстро и без усилий строить бэкенд сайтов. Spark поддерживает практически все функции Java 8 и имеет выразительный API.
Документация находиться здесь.
Spark — оптимальный выбор для программистов, разрабатывающих веб-приложения на Java. В нём можно быстро и без усилий строить бэкенд сайтов. Spark поддерживает практически все функции Java 8 и имеет выразительный API.
Документация находиться здесь.
👍16❤2
#Вопросы_с_собеседования
Что такое «абстракция»?
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
Что такое «абстракция»?
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
👍31