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

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

رفتن به کانال در Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot

نمایش بیشتر
6 491
مشترکین
-224 ساعت
+97 روز
+1830 روز
آرشیو پست ها
👀Что из этого сгенерировала нейросеть? Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть: �
👀Что из этого сгенерировала нейросеть? Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть: 🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску 🌸Промты для разных задач 🌸Лайфхаки по использованию нейросетей 👉Подписывайтесь!

Как написать собственное исключение? Для создания собственного исключения нужно создать новый класс, который наследуется от к
Как написать собственное исключение? Для создания собственного исключения нужно создать новый класс, который наследуется от класса Exception или RuntimeException. В этом примере мы создаем класс CustomException, который наследуется от класса Exception. Далее, мы используем пользовательское исключение в методе myMethod() класса MyClass. Если выполняется определенное условие, мы выбрасываем исключение CustomException с сообщением об ошибке.

Проверяем наличие дубликатов в массиве в Java Мы можем работать лучше, используя Хеширование. Идея состоит в том, чтобы пройт
Проверяем наличие дубликатов в массиве в Java Мы можем работать лучше, используя Хеширование. Идея состоит в том, чтобы пройти по заданному массиву и вставить каждый встреченный элемент в HashSet. Теперь, если встреченный элемент уже присутствовал в наборе, он является дубликатом. Временная сложность этого решения O(n) но вспомогательное пространство используется O(n). Мы знаем это HashSet не допускает дублирования значений в нем. Мы можем использовать это свойство для проверки дубликатов в массиве. Идея состоит в том, чтобы вставить все элементы массива в HashSet. Теперь массив содержит дубликат, если длина массива не равна размеру набора.

Узнаем самый средний элемент коллекции В этом примере используется List numbers, который содержит числа. С помощью Collection
Узнаем самый средний элемент коллекции В этом примере используется List numbers, который содержит числа. С помощью Collections.sort() список чисел сортируется в порядке возрастания. Затем вычисляется индекс середины списка. Если размер списка четный, то найдутся два средних элемента, их среднее значение вычисляется и выводится на экран. Если размер списка нечетный, то выводится только один средний элемент. Пример вывода (для списка чисел [1, 2, 3, 4, 5, 6, 7, 8]): Средние элементы: 4, 5 Среднее значение: 4.5

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

ListIterator ListIterator — это интерфейс в Java, который предоставляет возможность итерации по элементам списка в обоих напр
ListIterator ListIterator — это интерфейс в Java, который предоставляет возможность итерации по элементам списка в обоих направлениях (вперед и назад). Этот интерфейс является частью Java Collections Framework и расширяет интерфейс Iterator.

Класс Character Класс Character в Java является классом-обёрткой для примитивного типа данных char. Он предоставляет нескольк
Класс Character Класс Character в Java является классом-обёрткой для примитивного типа данных char. Он предоставляет несколько полезных методов для работы с символами, таких как проверка на принадлежность к различным категориям (цифры, буквы, пробелы и т.д.) и преобразование регистров.

Yandex DEVent PRO в Питере Это серия офлайн-митапов для опытных бэкендеров от команды Поиска и Рекламных технологий. Здесь можно в закрытом формате познакомиться с лидами из других команд, обменяться опытом и пообщаться. В этот раз митап пройдёт в Санкт-Петербурге 19 июня: будет настоящее раздолье для нетворкинга, а ещё обсуждение горячих и спорных тем по разработке в формате speed dating. Спикеры и доклады: 🟡Константин Гудков, руководитель группы разработки Feature store. Расскажет о процессе создания Feature Store — интерфейса для работы с данными, который используется ML-моделями в Рекламе 🟡Сергей Скворцов, руководитель службы поискового райнтайма. Обсудит, как анализировать производительность нативных программ под Linux под нагрузкой с помощью Perforator 🟡Николай Савушкин, руководитель службы рекомендательных технологий. Расскажет о Real-time processing в рекомендательных системах Яндекса А после докладов вас ждёт афтерпати: кальяны, аэрохоккей и прочие активности! Узнать подробную информацию и зарегистрироваться можно по ссылке. Ждём вас! Реклама. ООО "Яндекс", ИНН 7736207543.

Каково максимальное число значений hashCode()? Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.

Расскажите про приведение типов. Что такое понижение и повышение типа? Приведение типов — это преобразование переменной одного типа в другой. Существует два вида приведения типов: — Повышение типа (widening): автоматическое преобразование типа в другой, более широкий тип. Например, int в long. При этом не теряется точность, так как широкий тип может представить все значения узкого типа. — Понижение типа (narrowing): явное приведение к более узкому типу, например double в int. Здесь возможна потеря точности, поэтому требуется явное приведение в коде. Повышение типа безопасно, компилятор делает его автоматически. Понижение опасно потерей данных, поэтому разработчик должен явно указать такое приведение в коде, чтобы показать, что он контролирует возможную потерю точности.

System.currentTimeMillis или System.nanoTime? В Java есть два стандартных способа проведения операций со временем, и не всегд
System.currentTimeMillis или System.nanoTime? В Java есть два стандартных способа проведения операций со временем, и не всегда ясно, какой из них следует выбрать. ➡️ Метод System.currentTimeMillis() возвращает текущее количество миллисекунд с начала эры Unix в формате Long. Его точность составляет от 1 до 15 тысячных долей секунды в зависимости от системы. long startTime = System.currentTimeMillis(); long estimatedTime = System.currentTimeMillis() — startTime; ➡️ Метод System.nanoTime() имеет точность до одной миллионной секунды (наносекунды) и возвращает текущее значение наиболее точного доступного системного таймера. long startTime = System.nanoTime(); long estimatedTime = System.nanoTime() — startTime; Таким образом, метод System.currentTimeMillis() лучше применять для отображения и синхронизации абсолютного времени, а System.nanoTime() для измерения относительных интервалов времени.

RecursiveTask RecursiveTask является частью фреймворка Fork/Join в Java, введенного в Java 7. Этот фреймворк предоставляет уд
RecursiveTask RecursiveTask является частью фреймворка Fork/Join в Java, введенного в Java 7. Этот фреймворк предоставляет удобный способ распараллеливания выполнения задач. RecursiveTask является подклассом ForkJoinTask. Он предназначен для использования вместе с пулом Fork/Join (ForkJoinPool) и предоставляет специальные методы для разделения задачи на подзадачи и объединения результатов.

Array или ArrayList? Выбор между Array и ArrayList зависит от специфики задачи Java, которую вы хотите решить. Запомните след
Array или ArrayList? Выбор между Array и ArrayList зависит от специфики задачи Java, которую вы хотите решить. Запомните следующие особенности этих типов: — Массив имеет фиксированный размер, и память для него выделяется во время объявления, а размер ArrayList может динамически меняться. — Массивы Java работают намного быстрее, а в ArrayList намного проще добавлять и удалять элементы. — При работе с Array скорее всего возникнет ошибка ArrayIndexOutOfBoundsException. — ArrayList может быть только одномерным, когда массивы Java могут быть многомерными.

Реализуйте простой кэш на Java. Класс должен поддерживать операции добавления значения по ключу, получения значения по ключу
Реализуйте простой кэш на Java. Класс должен поддерживать операции добавления значения по ключу, получения значения по ключу и удаления значения по ключу. Кэш должен иметь фиксированный размер, и при превышении этого размера он должен удалять самый старый элемент. Как вы обеспечите оптимальную производительность операций? Решение: Кэш будет представлять собой обобщенный класс SimpleCache, который может хранить пары ключ-значение. Размер кэша будет ограничен, чтобы избежать переполнения. В случае превышения размера, самый старый элемент будет удаляться. Для хранения данных будем использовать HashMap (cache), так как это обеспечит эффективный доступ к значениям по ключу. Для отслеживания порядка ключей (чтобы определить самый старый элемент) будем использовать Queue (keyQueue), в данном случае LinkedList. Инициализируем кэш. Конструктор SimpleCache принимает максимальный размер кэша и инициализирует cache и keyQueue. Добавляем элемент в кэш и при добавлении элемента проверяем, не превышен ли максимальный размер. Если превышен, вызываем метод evictOldest для удаления самого старого элемента. Добавляем новый элемент в cache и помещаем ключ в keyQueue. Получаем элемент по ключу. Если элемент существует в кэше, перемещаем соответствующий ключ в конец keyQueue (чтобы отметить последнее использование) и возвращаем значение. Удаляем элемент из cache и соответствующий ключ из keyQueue. Получаем самый старый ключ из начала keyQueue, удаляем соответствующий элемент из cache.

Что такое сигнатура метода? Это уникальная строка, которая описывает типы и порядок аргументов, а также возвращаемый тип метода. Сигнатура используется компилятором Java для различения методов с одинаковым именем, но отличающихся по своим параметрам.

Может ли метод принимать аргументы переменной длины? В Java метод может принимать переменное количество аргументов двумя основными способами: — Используя массив в качестве параметра. При определении метода указывается, что один из параметров — это массив некоторого типа. При вызове метода в этот параметр можно передать массив нужной длины. — Используя специальный синтаксис с многоточием. При определении метода один из параметров объявляется с многоточием после типа. Это говорит компилятору, что это параметр переменной длины. При вызове в него можно передать сколько угодно аргументов указанного типа. Таким образом метод становится более гибким и его можно вызывать с разным количеством аргументов в зависимости от ситуации. Это избавляет от необходимости перегружать метод для разного числа параметров.

⚡️Proglib запускает канал про ИИ для генерации звука Там мы будем рассказывать про все существующие нейросети, которые генерируют музыку и голос — с пошаговыми инструкциями, инструментами и лайфхаками. ⭐️генерация голоса и музыки ⭐️замена и перевод речи ⭐️распознавание звуков 👉Подписывайтесь!

Как узнать значение конкретного символа строки, зная его порядковый номер в строке? Чтобы узнать значение конкретного символа в строке по его порядковому номеру, можно воспользоваться методом charAt(int index) класса String. Этот метод возвращает символ, расположенный в строке по указанному индексу. Индексы нумеруются от 0 до длины строки минус 1. Если переданный индекс находится вне диапазона длины строки, будет выброшено исключение IndexOutOfBoundsException.

Хардкорный курс по математике для тех, кто правда любит математику! Начать с вводных занятий можно здесь, ответив всего на 4
Хардкорный курс по математике для тех, кто правда любит математику! Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/12f47906 Что вас ждет: – Вводный урок от CPO курса – Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск – Практические задания для закрепления материала и ссылки на дополнительные материалы. ⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/12f47906

Что такое «фреймворк Fork/Join»? Фреймворк Fork/Join, представленный в JDK 7, — это набор классов и интерфейсов позволяющих использовать преимущества многопроцессорной архитектуры современных компьютеров. Он разработан для выполнения задач, которые можно рекурсивно разбить на маленькие подзадачи, которые можно решать параллельно. • Этап Fork: большая задача разделяется на несколько меньших подзадач, которые в свою очередь также разбиваются на меньшие. И так до тех пор, пока задача не становится тривиальной и решаемой последовательным способом. • Этап Join: далее (опционально) идёт процесс «свёртки» — решения подзадач некоторым образом объединяются пока не получится решение всей задачи. Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно. Для решения некоторых задач этап Join не требуется. Например, для параллельного QuickSort — массив рекурсивно делится на всё меньшие и меньшие диапазоны, пока не вырождается в тривиальный случай из 1 элемента. Хотя в некотором смысле Join будет необходим и тут, т.к. всё равно остаётся необходимость дождаться пока не закончится выполнение всех подзадач. Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует work-stealing алгоритм: потоки, которые завершили выполнение собственных подзадач, могут «украсть» подзадачи у других потоков, которые всё ещё заняты.