#вопросы_с_собеседований
Какие подклассы класса Reader вы знаете, для чего они предназначены?
•
•
•
•
•
•
•
•
•
•
Какие подклассы класса Reader вы знаете, для чего они предназначены?
•
Reader
- абстрактный класс, описывающий символьный ввод;•
BufferedReader
- буферизованный входной символьный поток;•
CharArrayReader
- входной поток, который читает из символьного массива;•
FileReader
- входной поток, читающий файл;•
FilterReader
- абстрактный класс, предоставляющий интерфейс для классов-надстроек;•
InputStreamReader
- входной поток, транслирующий байты в символы;•
LineNumberReader
- входной поток, подсчитывающий строки;•
PipedReader
- входной канал;•
PushbackReader
- входной поток, позволяющий возвращать символы обратно в поток;•
StringReader
- входной поток, читающий из строки.Хочешь освоить азы главного языка «энтерпрайза», Java, всего за 14 дней?
Школа программирования Хекслет объявляет набор на подготовительный курс: https://clck.ru/rpdjp
Даём только мясную и прикладную информацию. По окончанию курса ты уже владеешь базовым знанием языка и даже напишешь собственную программу!
Прямо сейчас переходите по ссылке ниже и бронируйте место, стартуем завтра, 5 июля!
Школа программирования Хекслет объявляет набор на подготовительный курс: https://clck.ru/rpdjp
Даём только мясную и прикладную информацию. По окончанию курса ты уже владеешь базовым знанием языка и даже напишешь собственную программу!
Прямо сейчас переходите по ссылке ниже и бронируйте место, стартуем завтра, 5 июля!
Какие подклассы класса Writer вы знаете, для чего они предназначены?
• Writer - абстрактный класс, описывающий символьный вывод;
• BufferedWriter - буферизованный выходной символьный поток;
• CharArrayWriter - выходной поток, который пишет в символьный массив;
• FileWriter - выходной поток, пишущий в файл;
• FilterWriter - абстрактный класс, предоставляющий интерфейс для классов-надстроек;
• OutputStreamWriter - выходной поток, транслирующий байты в символы;
• PipedWriter - выходной канал;
• PrintWriter - выходной поток символов, включающий методы print() и println();
• StringWriter - выходной поток, пишущий в строку;
• Writer - абстрактный класс, описывающий символьный вывод;
• BufferedWriter - буферизованный выходной символьный поток;
• CharArrayWriter - выходной поток, который пишет в символьный массив;
• FileWriter - выходной поток, пишущий в файл;
• FilterWriter - абстрактный класс, предоставляющий интерфейс для классов-надстроек;
• OutputStreamWriter - выходной поток, транслирующий байты в символы;
• PipedWriter - выходной канал;
• PrintWriter - выходной поток символов, включающий методы print() и println();
• StringWriter - выходной поток, пишущий в строку;
#вопросы_с_собеседований
В чем отличие класса PrintWriter от PrintStream?
Прежде всего, в классе
Кроме того, методы класса
В чем отличие класса PrintWriter от PrintStream?
Прежде всего, в классе
PrintWriter
применен усовершенствованный способ работы с символами Unicode
и другой механизм буферизации вывода: в классе PrintStream
буфер вывода сбрасывался всякий раз, когда вызывался метод print()
или println()
, а при использовании класса PrintWriter
существует возможность отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush()
.Кроме того, методы класса
PrintWriter
никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError()
.#вопросы_с_собеседований
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?
•
•
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?
•
OutputStreamWriter
— «мост» между классом OutputStream
и классом Writer
. Символы, записанные в поток, преобразовываются в байты.•
InputStreamReader
— аналог для чтения. При помощи методов класса Reader
читаются байты из потока InputStream
и далее преобразуются в символы.Какие классы позволяют ускорить чтение/запись за счет использования буфера?
•
•
•
•
BufferedInputStream(InputStream in)
/ BufferedInputStream(InputStream in, int size)
,•
BufferedOutputStream(OutputStream out)
/BufferedOutputStream(OutputStream out, int size)
,•
BufferedReader(Reader r)
/BufferedReader(Reader in, int sz),
• BufferedWriter(Writer out)
/BufferedWriter(Writer out, int sz)
#вопросы_с_собеседований
Какой класс предназначен для работы с элементами файловой системы?
Какой класс предназначен для работы с элементами файловой системы?
File
работает непосредственно с файлами и каталогами. Данный класс позволяет создавать новые элементы и получать информацию существующих: размер, права доступа, время и дату создания, путь к родительскому каталогу.AssertJ как способ значительно улучшить код ваших тестов
В 2019-2020 годах на одном из проектов я был идейным вдохновителем перехода на JUnit 5. Для проверок мы использовали стандартные ассерты и Hamcrest. Тогда мне казалось, что этого более чем достаточно.
За последние пару лет, несмотря на менеджерскую позицию, я написал свыше пятисот тестов, и мой подход к тестированию претерпел значительные изменения. В этой статье я постараюсь объяснить, почему AssertJ — это лучшее решение для проверок в тестах, существующее сегодня (год 2022 от Р.X.). Разумеется, всё ниже сказанное — это моё субъективное мнение.
Читать статью
В 2019-2020 годах на одном из проектов я был идейным вдохновителем перехода на JUnit 5. Для проверок мы использовали стандартные ассерты и Hamcrest. Тогда мне казалось, что этого более чем достаточно.
За последние пару лет, несмотря на менеджерскую позицию, я написал свыше пятисот тестов, и мой подход к тестированию претерпел значительные изменения. В этой статье я постараюсь объяснить, почему AssertJ — это лучшее решение для проверок в тестах, существующее сегодня (год 2022 от Р.X.). Разумеется, всё ниже сказанное — это моё субъективное мнение.
Читать статью
Telegraph
AssertJ как способ значительно улучшить код ваших тестов
Привет! В 2019-2020 годах на одном из проектов я был идейным вдохновителем перехода на JUnit 5. Для проверок мы использовали стандартные ассерты и Hamcrest. Тогда мне казалось, что этого более чем достаточно. Один из наших lead-инженеров предлагал AssertJ как…
#вопросы_с_собеседований
Какие методы класса File вы знаете?
Наиболее используемые методы класса File:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Какие методы класса File вы знаете?
Наиболее используемые методы класса File:
•
boolean createNewFile()
: делает попытку создать новый файл;•
boolean delete()
: делает попытку удалить каталог или файл;•
boolean mkdir()
: делает попытку создать новый каталог;•
boolean renameTo(File dest)
: делает попытку переименовать файл или каталог;•
boolean exists()
: проверяет, существует ли файл или каталог;•
String getAbsolutePath()
: возвращает абсолютный путь для пути, переданного в конструктор объекта;•
String getName()
: возвращает краткое имя файла или каталога;•
String getParent()
: возвращает имя родительского каталога;•
boolean isDirectory()
: возвращает значение true
, если по указанному пути располагается каталог;•
boolean isFile()
: возвращает значение true
, если по указанному пути находится файл;•
boolean isHidden()
: возвращает значение true
, если каталог или файл являются скрытыми;•
long length()
: возвращает размер файла в байтах;•
long lastModified()
: возвращает время последнего изменения файла или каталога;•
String[] list()
: возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;•
File[] listFiles()
: возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.🔥 Бесплатная Live coding сессия, где будем решать задачу с собеседования в международную FinTech компанию
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 14 июля в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/aLl5hVI
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 14 июля в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/aLl5hVI
Сравнение виртуальных и обычных потоков в Java
Мы все знаем и ждем Project Loom для виртуальных потоков и надеемся на бесплатное ускорение своих приложений без или почти без изменения их кода.
Примеры с запуском миллиона потоков все уже видели и они скучные. А какое ускорение будет на самом деле в реальных примерах использования многопоточности в нормально написанном проекте?
Читать статью
Мы все знаем и ждем Project Loom для виртуальных потоков и надеемся на бесплатное ускорение своих приложений без или почти без изменения их кода.
Примеры с запуском миллиона потоков все уже видели и они скучные. А какое ускорение будет на самом деле в реальных примерах использования многопоточности в нормально написанном проекте?
Читать статью
Telegraph
Сравнение виртуальных и обычных потоков в Java
Я люблю стректрейсы и понятный линейный код. И соответственно не люблю реактивщину. Все примеры будут нереактивными с последовательным понятным кодом. Примеры запускались на доступной сегодня jdk. openjdk version "19-loom" 2022-09-20 OpenJDK Runtime Environment…
Делаем микросервисы на Java 😎
Пишете Java-приложения? У вас есть два пути:
🔹 Делать монолитную архитектуру и разрабатывать ПО как единое целое
🔹 Разбить большое приложение на микросервисы и наладить между ними связь
И у второго пути масса преимуществ!
✅ Легче ловить сбои и приводить приложение в порядок
✅ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему
✅ Разные микросервисы — разные технологии разработки
✅ Можно обновлять приложение по отдельным частям
✅ Разработка микросервиса легче, чем монолита
Интересно? Тогда записывайтесь на наш курс по микросервисам на Java.
Вы научитесь:
🔸 Делать микросервисы на Java и Kotlin
🔸 Работать с инструментами для разработки микросервисов
🔸 Использовать популярный Java-фреймворк Spring Boot
Знания прямо по ходу курса можно использовать в работе.
Купите место на курсе по сниженной цене — всего 20 000 рублей. Повышаем цены уже 15 июля.
Старт курса 20 августа, программа и запись на нашем сайте: https://slurm.club/3awhAKa
Пишете Java-приложения? У вас есть два пути:
🔹 Делать монолитную архитектуру и разрабатывать ПО как единое целое
🔹 Разбить большое приложение на микросервисы и наладить между ними связь
И у второго пути масса преимуществ!
✅ Легче ловить сбои и приводить приложение в порядок
✅ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему
✅ Разные микросервисы — разные технологии разработки
✅ Можно обновлять приложение по отдельным частям
✅ Разработка микросервиса легче, чем монолита
Интересно? Тогда записывайтесь на наш курс по микросервисам на Java.
Вы научитесь:
🔸 Делать микросервисы на Java и Kotlin
🔸 Работать с инструментами для разработки микросервисов
🔸 Использовать популярный Java-фреймворк Spring Boot
Знания прямо по ходу курса можно использовать в работе.
Купите место на курсе по сниженной цене — всего 20 000 рублей. Повышаем цены уже 15 июля.
Старт курса 20 августа, программа и запись на нашем сайте: https://slurm.club/3awhAKa
#вопросы_с_собеседований
Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?
Метод
Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?
Метод
File.listFiles
возвращает массив объектов File
, содержащихся в каталоге. Метод может принимать в качестве параметра объект класса, реализующего FileFilter
. Это позволяет включить в список только те элементы, для которых метод accept
возвращает true
(критерием может быть длина имени файла или его расширение).Это приглашение на «быстрое свидание» с работой мечты в команде Сбера.
One Day Offer — самый короткий путь до оффера. Пройти собеседование и получить ответ в тот же день можно 16 и 17 июля по двум вакансиям: Data Engineer в ИТ-команду «Комплаенс» и Java Developer в ИТ-подразделение «Сеть продаж».
Как это работает?
Шаг 1. 16 июля или 17 июля (в зависимости от вакансии) подключитесь к онлайн-интервью.
Шаг 2. Получите предложение о работе, о которой мечтали, в тот же день.
Шаг 3. А дальше — вместе со своей командой разрабатывайте крутые и важные продукты Сбера.
Прочитать подробнее о вакансиях и отправить заявку на участие в One Day Offer можно здесь.
One Day Offer — самый короткий путь до оффера. Пройти собеседование и получить ответ в тот же день можно 16 и 17 июля по двум вакансиям: Data Engineer в ИТ-команду «Комплаенс» и Java Developer в ИТ-подразделение «Сеть продаж».
Как это работает?
Шаг 1. 16 июля или 17 июля (в зависимости от вакансии) подключитесь к онлайн-интервью.
Шаг 2. Получите предложение о работе, о которой мечтали, в тот же день.
Шаг 3. А дальше — вместе со своей командой разрабатывайте крутые и важные продукты Сбера.
Прочитать подробнее о вакансиях и отправить заявку на участие в One Day Offer можно здесь.
developers.sber.ru
Нам нужны Java Developer и Data Engineer | Мероприятия Цифровой витрины
Нам нужны Java Developer и Data Engineer. Возможность стать частью команды Сбера за один день .
Рефлексия (Reflection) — это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.
Возможности Java Reflection API:
✔️Определение класса объекта;
✔️Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
✔️Определение интерфейсов, реализуемых классом;
✔️Создание экземпляра класса;
✔️Получение и установка значений полей объекта;
✔️Вызов методов объекта;
✔️Создание нового массива.
Возможности Java Reflection API:
✔️Определение класса объекта;
✔️Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
✔️Определение интерфейсов, реализуемых классом;
✔️Создание экземпляра класса;
✔️Получение и установка значений полей объекта;
✔️Вызов методов объекта;
✔️Создание нового массива.
#вопросы_с_собеседований
Существует ли возможность перенаправить потоки стандартного ввода/вывода?
Класс System позволяет вам перенаправлять стандартный ввод, вывод и поток вывода ошибок, используя простой вызов статического метода:
•
•
•
Существует ли возможность перенаправить потоки стандартного ввода/вывода?
Класс System позволяет вам перенаправлять стандартный ввод, вывод и поток вывода ошибок, используя простой вызов статического метода:
•
setIn(InputStream)
- для ввода;•
setOut(PrintStream)
- для вывода;•
setErr(PrintStream)
- для вывода ошибок.#вопросы_с_собеседований
Может ли значение в столбце, на который наложено ограничение FOREIGN KEY, равняться NULL?
Может, если на данный столбец не наложено ограничение NOT NULL.
Может ли значение в столбце, на который наложено ограничение FOREIGN KEY, равняться NULL?
Может, если на данный столбец не наложено ограничение NOT NULL.
Как написать свой первый автотест за 1 час?
Посетить открытое занятие курса "Автоматизация тестирования на Java" от ребят из школы автоматизации QA.GURU бесплатное открытое занятие состоится 20-го июля в 20:00 МСК.
Почему надо сходить:
— Разработаем ваш первый (или не первый) автотест на поиск в Google
—Расскажем о рынке QA. Кто, кому, за что и сколько платит?
— Покажем боевой проект с полной инфраструктурой (Web, mobile, API)
— Дадим домашнее задание и проверим его у всех участников.
Занятие бесплатное — для участия вступайте в чат @qa_guru_chat — ссылка на занятие будет там.
Посетить открытое занятие курса "Автоматизация тестирования на Java" от ребят из школы автоматизации QA.GURU бесплатное открытое занятие состоится 20-го июля в 20:00 МСК.
Почему надо сходить:
— Разработаем ваш первый (или не первый) автотест на поиск в Google
—Расскажем о рынке QA. Кто, кому, за что и сколько платит?
— Покажем боевой проект с полной инфраструктурой (Web, mobile, API)
— Дадим домашнее задание и проверим его у всех участников.
Занятие бесплатное — для участия вступайте в чат @qa_guru_chat — ссылка на занятие будет там.
#вопросы_с_собеседований
Что такое «абсолютный путь» и «относительный путь»?
Абсолютный (полный) путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущей рабочей директории или других обстоятельств. Полный путь всегда начинается с корневого каталога.
Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активного приложения.
Что такое «абсолютный путь» и «относительный путь»?
Абсолютный (полный) путь — это путь, который указывает на одно и то же место в файловой системе, вне зависимости от текущей рабочей директории или других обстоятельств. Полный путь всегда начинается с корневого каталога.
Относительный путь представляет собой путь по отношению к текущему рабочему каталогу пользователя или активного приложения.
#вопросы_с_собеседований
Что такое «символьная ссылка»?
Символьная (символическая) ссылка (также «
Символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как:
• позволяют для одного файла или каталога иметь несколько имён и различных атрибутов;
• свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одной файловой системы (одного раздела) и не могут ссылаться на каталоги).
Что такое «символьная ссылка»?
Символьная (символическая) ссылка (также «
симлинк
», Symbolic link
) — специальный файл в файловой системе, в котором, вместо пользовательских данных, содержится путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Целью ссылки может быть любой объект: например, другая ссылка, файл, каталог или даже несуществующий файл (в последнем случае, при попытке открыть его, должно выдаваться сообщение об отсутствии файла).Символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как:
• позволяют для одного файла или каталога иметь несколько имён и различных атрибутов;
• свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одной файловой системы (одного раздела) и не могут ссылаться на каталоги).