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

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

Ir al canal en Telegram

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

Mostrar más
6 490
Suscriptores
-124 horas
+107 días
+1730 días
Archivo de publicaciones
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Что такое Casting? Ответ: casting, или приведение типов — это процесс преобразования одного типа данных в другой тип данных: вручную (неявное приведение) или автоматически (явное приведение типов).

Какие есть режимы доступа к файлу? В Java есть несколько режимов доступа к файлам: — Read (чтение): открывает файл для чтения, позволяет читать данные из файла. — Write (запись): открывает файл для записи, позволяет записывать данные в файл. При этом старое содержимое файла удаляется. — Append (добавление): открывает файл для записи, но данные добавляются в конец файла, старое содержимое сохраняется. — RandomAccess (произвольный доступ): позволяет читать и записывать данные в произвольном месте в файле. Для указания режима доступа используются константы из класса File: File.READ, File.WRITE, File.APPEND и т.д. Выбор нужного режима зависит от задачи, а комбинируя режимы, можно получить различные варианты работы с файлами.

Какие два класса не наследуются от Object? Ответ: таких классов нет: все классы прямо или через предков наследуются от класса Object.

Дан целочисленный массив nums, поверните массив вправо на k шагов. Метод rotate принимает массив nums и целое число k. Сначал
Дан целочисленный массив nums, поверните массив вправо на k шагов. Метод rotate принимает массив nums и целое число k. Сначала мы проверяем, что k не отрицательное число и не больше длины массива. Затем мы вызываем метод reverse, который переворачивает первую часть массива от начала до конца — k-1. Метод reverse переворачивает вторую часть массива от конца — k до конца. Наконец, мы вызываем метод reverse, который переворачивает весь массив. Это позволяет нам получить массив, который был повернут на k шагов вправо. Метод reverse принимает массив nums, индекс начала и индекс конца. Мы меняем местами элементы массива от начала до конца и уменьшаем индекс начала и увеличиваем индекс конца до тех пор, пока они не пересекутся.

Что такое ordering, as-if-serial semantics, sequential consistency, visibility, atomicity, happens-before, mutual exclusion, safe publication? ordering — механизм, который определяет, когда один поток может увидеть out-of-order (неверный) порядок исполнения инструкций другого потока. CPU для для повышения производительности может переупорядочивать процессорные инструкции и выполнять их в произвольном порядке до тех пор пока для потока внутри не будет видно никаких отличий. Гарантия, предоставляемая этим механизмом, называется as-if-serial semantics. sequential consistency — то же что и as-if-serial semantics, гарантия того, что в рамках одного потока побочные эффекты от всех операций будут такие, как будто все операции выполняются последовательно. visibility определяет, когда действия в одном потоке становятся видны из другого потока. happens-before — логическое ограничение на порядок выполнения инструкций программы. Если указывается, что запись в переменную и последующее ее чтение связаны через эту зависимость, то как бы при выполнении не переупорядочивались инструкции, в момент чтения все связанные с процессом записи результаты уже зафиксированы и видны. atomicity — атомарность операций. Атомарная операция выглядит единой и неделимой командой процессора, которая может быть или уже выполненной или ещё невыполненной. mutual exclusion (взаимоисключающая блокировка, семафор с одним состоянием) — механизм, гарантирующий потоку исключительный доступ к ресурсу. Используется для предотвращения одновременного доступа к общему ресурсу. В каждый момент времени таким ресурсом может владеть только один поток. Простейший пример: synchronized(obj) { … }. safe publication — показ объектов другим потокам из текущего, не нарушая ограничений visibility. Способы такой публикации в Java: • static{} инициализатор; • volatile переменные; • atomic переменные; • сохранение в разделяемой переменной, корректно защищенной с использованием synchronized(), синхронизаторов или других конструкций, создающих read/write memory barrier; • final переменные в разделяемом объекте, который был корректно проинициализирован.

Какая разница между Statement и PreparedStatement? Statement и PreparedStatement — это два интерфейса в JDBC, которые используются для выполнения SQL-запросов. Они имеют несколько отличий: — Statement используется для выполнения статических SQL-запросов без параметров. — PreparedStatement используется для выполнения динамических SQL-запросов с параметрами. Этот интерфейс принимает входные параметры во время выполнения и может быть использован многократно. — PreparedStatement прекомпилирован, поэтому его исполнение может происходить быстрее, чем у Statement. — PreparedStatement также обеспечивает дополнительную безопасность, предотвращая атаки типа SQL-инъекции. В общем, если в запрос нужно передавать параметры или он должен выполняться несколько раз, используйте PreparedStatement. В противном случае используйте Statement.

Сколько объектов типа String создает эта программа? Ответ: Программа создаст два string-объекта. Когда мы создаем строку, исп
Сколько объектов типа String создает эта программа? Ответ: Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.

Что такое Instance Variable? Ответ: Instance Variable — переменная, которая определена внутри класса, и она существует вплоть до того момента, пока существует объект.

Расскажите о ThreadPoolExecutor ThreadPoolExecutor — это класс в Java, который предоставляет управление пулами потоков для выполнения асинхронных задач. Он является частью пакета java.util.concurrent, который предоставляет различные средства для работы с параллельными и асинхронными задачами.

Какой оператор вычисляет остаток от деления?
Anonymous voting

Что выполняет код выше?
Anonymous voting

Что это — --х;
Anonymous voting

Arrays.toString() и Arrays.deepToString() В Java массивы не переопределяют toString(), поэтому, если вы попытаетесь напечатат
Arrays.toString() и Arrays.deepToString() В Java массивы не переопределяют toString(), поэтому, если вы попытаетесь напечатать его напрямую, вы получите имя класса + '@' + шестнадцатеричный хеш-код массива, как определено в Object.toString(). Но обычно нам на самом деле нужно что бы напечаталось содержимое массива. Самый простой способ это сделать, это воспользоваться методом Arrays.toString(). А если массив содержит другие массивы, то Arrays.deepToString(). Внутри этих методов на каждом элементе массива вызывается метод toString() для получения строкового представления.

Thread.UncaughtExceptionHandler Thread.UncaughtExceptionHandler — это интерфейс в языке программирования Java, который используется для обработки неотловленных исключений (uncaught exceptions) в потоках (threads). Когда исключение возникает в потоке и не обрабатывается внутри этого потока, оно передается обработчику неотловленных исключений, если такой обработчик был установлен. Интерфейс Thread.UncaughtExceptionHandler имеет один метод: ```void uncaughtException(Thread t, Throwable e);``` Этот метод вызывается, когда в потоке t возникает неотловленное исключение e. Вы можете предоставить свою собственную реализацию этого метода, чтобы определить, как обрабатывать неотловленные исключения. Это может быть полезно, например, для записи информации об исключении в журнал, отправки уведомлений или выполнения других действий, когда неотловленное исключение возникает в приложении.

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

Что выведет код выше?
Anonymous voting

ConcurrentSkipListSet Это реализация интерфейса Set, предназначенная для хранения уникальных элементов в отсортированном поря
ConcurrentSkipListSet Это реализация интерфейса Set, предназначенная для хранения уникальных элементов в отсортированном порядке. Она основана на структуре данных, называемой Skip List, и обеспечивает эффективную поддержку многопоточности. Основные особенности ConcurrentSkipListSet: 🔹 ConcurrentSkipListSet не позволяет хранить дублирующиеся элементы. Если вы попытаетесь добавить в него элемент, который уже существует, операция добавления завершится успешно, но элемент не будет дублироваться. 🔹 Элементы в ConcurrentSkipListSet хранятся в отсортированном порядке по их естественному порядку (если элементы реализуют интерфейс Comparable) или с использованием заданного компаратора. 🔹 ConcurrentSkipListSet является потокобезопасной структурой данных. Она обеспечивает безопасное чтение и запись элементов из нескольких потоков без необходимости явной синхронизации.