#вопросы_с_собеседований
В чем отличие класса PrintWriter от PrintStream?
В чем отличие класса PrintWriter от PrintStream?
Прежде всего, в классе PrintWriter применен усовершенствованный способ работы с символами Unicode и другой механизм буферизации вывода: в классе PrintStream буфер вывода сбрасывался всякий раз, когда вызывался метод print() или println(), а при использовании класса PrintWriter существует возможность отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush().
Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().
Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().
#вопросы_с_собеседований
Что такое checked и unchecked exception?
Что такое checked и unchecked exception?
В Java все исключения делятся на два типа:
☕️ checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в объявлении метода (например throws IOException). Наличие такого обработчика/модификатора проверяется на этапе компиляции;
☕️ unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в объявлении метода.
☕️ checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в объявлении метода (например throws IOException). Наличие такого обработчика/модификатора проверяется на этапе компиляции;
☕️ unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в объявлении метода.
Большой гайд по Spring 5 для начинающих и тех, кто хочет прояснить какие-то забытые моменты.
https://proglib.io/w/2c81a515
https://proglib.io/w/2c81a515
YouTube
Learn Spring Fundamentals for Beginners - Full Course
Learn about Spring Fundamentals in this full course for beginners. You'll learn: Core Concepts, Dependency Injection, Bean Configuration, Autowiring, AOP, SpEL, and more
Build a Microservices Architecture with Spring Boot and Spring Cloud
☞ https://morio…
Build a Microservices Architecture with Spring Boot and Spring Cloud
☞ https://morio…
#вопросы_с_собеседований
Существуют ли ситуации, когда блок finally в try-catch не будет выполнен?
Существуют ли ситуации, когда блок finally в try-catch не будет выполнен?
#вопросы_с_собеседований
Какое худшее время работы метода add() для ArrayList?
Какое худшее время работы метода add() для ArrayList?
O(N). Вставка элемента в конец списка осуществляется за время O(1), но если вместимость массива недостаточна, то происходит создание нового массива с увеличенным размером и копирование всех элементов из старого массива в новый.
#вопросы_с_собеседований
Что такое класс Object? Какие в нем есть методы?
Что такое класс Object? Какие в нем есть методы?
Object - это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы:
public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
#вопросы_с_собеседований
Почему строка является популярным ключом в HashMap в Java?
Почему строка является популярным ключом в HashMap в Java?
Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.
Real-World Software Development (2019)
Авторы: Raoul-Gabriel Urma, Richard Warburton
Изучите новейшие методы разработки программного обеспечения на Java на практике с помощью этого практического руководства. В отличие от книг, в которых используются абстрактные примеры и много теории, в данной книге автор показывает, как разработать несколько реальных проектов.
Скачать книгу
Авторы: Raoul-Gabriel Urma, Richard Warburton
Изучите новейшие методы разработки программного обеспечения на Java на практике с помощью этого практического руководства. В отличие от книг, в которых используются абстрактные примеры и много теории, в данной книге автор показывает, как разработать несколько реальных проектов.
Скачать книгу
Telegram
Книги для программистов (reserved)
Real-World Software Development (2019)
Авторы: Raoul-Gabriel Urma, Richard Warburton
Авторы: Raoul-Gabriel Urma, Richard Warburton
Android Studio 4.0: новые инструменты работы с макетами, улучшенное профилирование и анализ билдов
Рассказываем, чем нас порадовала четвёртая версия Android Studio: редактор движения объектов, инспектор макетов, улучшенный CPU Profiler, интеллектуальный редактор и анализатор сборки.
https://proglib.io/w/94d35152
Рассказываем, чем нас порадовала четвёртая версия Android Studio: редактор движения объектов, инспектор макетов, улучшенный CPU Profiler, интеллектуальный редактор и анализатор сборки.
https://proglib.io/w/94d35152
Forwarded from Java jobs — вакансии для java-разработчиков
Вакансия: Разработчик Java (микросервисы)
По договоренности | Полная занятость | Удаленно или в офисе (выбирает кандидат) | Россия
#Java #Микросервисы #Spring #Трудоустройство
Компания: EPAM, ведущий мировой поставщик услуг по разработке ПО и цифровых платформ.
👨🎓 Требования:
- Опыт работы в роли Java-разработчика от 3 лет;
- опыт разработки микросервисов и понимание особенностей микросервисной архитектуры обязателен;
- опыт использования Spring Framework (boot, mvc, data, security и др.);
- опыт работы с многопоточностью и асинхронностью;
- понимание процессов и методологий гибкой разработки ПО.
📌 Обязанности:
- Разработка приложений на Java и фреймворке Spring boot;
- разработка приложений в рамках микросервисной архитектуры;
- работа в тесном сотрудничестве со специалистами front-end разработки, тестирования и аналитиками;
- работа по гибким методологиям разработки.
➡️ Подробности - https://proglib.io/vacancies/razrabotchik-java-mikroservisy-epam-2020-06-08
По договоренности | Полная занятость | Удаленно или в офисе (выбирает кандидат) | Россия
#Java #Микросервисы #Spring #Трудоустройство
Компания: EPAM, ведущий мировой поставщик услуг по разработке ПО и цифровых платформ.
👨🎓 Требования:
- Опыт работы в роли Java-разработчика от 3 лет;
- опыт разработки микросервисов и понимание особенностей микросервисной архитектуры обязателен;
- опыт использования Spring Framework (boot, mvc, data, security и др.);
- опыт работы с многопоточностью и асинхронностью;
- понимание процессов и методологий гибкой разработки ПО.
📌 Обязанности:
- Разработка приложений на Java и фреймворке Spring boot;
- разработка приложений в рамках микросервисной архитектуры;
- работа в тесном сотрудничестве со специалистами front-end разработки, тестирования и аналитиками;
- работа по гибким методологиям разработки.
➡️ Подробности - https://proglib.io/vacancies/razrabotchik-java-mikroservisy-epam-2020-06-08
#вопросы_с_собеседований
Что такое Dependency Injection?
Что такое Dependency Injection?
Dependency Injection (внедрение зависимости) - это набор паттернов и принципов разработки программного обеспечения, которые позволяют писать слабосвязный код. В полном соответствии с принципом единой обязанности объект отдаёт заботу о построении требуемых ему зависимостей внешнему, специально предназначенному для этого общему механизму.
#вопросы_с_собеседований
Чем LinkedHashSet отличается от HashSet?
Чем LinkedHashSet отличается от HashSet?