Перейти к содержимому
На этой странице

Специальные классы

Все темы Java Developer

Для чего используется PushbackInputStream?

PushbackInputStream используется для возможности возврата байтов обратно в поток ввода. Это полезно в ситуациях, когда нужно прочитать данные, а затем “откатить” чтение для повторного анализа тех же байтов.

Основные применения:
  • Парсинг: При разборе данных, где необходимо заглянуть вперед и вернуть байты, если они не соответствуют ожидаемым.

  • Буферизация: Удобен при работе с буферизированными данными, позволяя откатить чтение на несколько байтов назад.

Пример:
PushbackInputStream pbis = new PushbackInputStream(new FileInputStream("file.txt"));
int data = pbis.read();
// Если необходимо вернуть байт обратно
pbis.unread(data);

Для чего используется SequenceInputStream?

SequenceInputStream используется для последовательного чтения данных из нескольких потоков ввода как из одного объединенного потока. Он соединяет два или более InputStream объектов, позволяя последовательно читать данные из одного потока за другим.

Основные применения:
  • Объединение файлов: Чтение данных из нескольких файлов последовательно, как если бы это был один файл.

  • Объединение потоков: Чтение данных из нескольких потоков ввода в последовательности, что может быть полезно при работе с данными из различных источников.

Пример:
InputStream input1 = new FileInputStream("file1.txt");
InputStream input2 = new FileInputStream("file2.txt");
SequenceInputStream sis = new SequenceInputStream(input1, input2);

int data;
while ((data = sis.read()) != -1) {
    System.out.print((char) data);
}
sis.close();

Собеседования: Java

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Java-разработчик, Backend-разработчик на Java. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.