Ответ на предыдущий вопрос
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable. Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable. Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
Telegram
Библиотека джависта
#вопросы_с_собеседований
Что такое механизм try-with-resources?
Что такое механизм try-with-resources?
#вопросы_с_собеседований
Для чего используется оператор assert?
Для чего используется оператор assert?
Assert (Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных.
Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка.
Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ.
Т.к. утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы.
В Java проверка утверждений реализована с помощью оператора assert, который имеет форму:
assert [Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];
Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).
Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка.
Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ.
Т.к. утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы.
В Java проверка утверждений реализована с помощью оператора assert, который имеет форму:
assert [Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];
Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).
#вопросы_с_собеседований
1. Какова роль equals() и hashCode() в HashMap?
2. Каково максимальное число значений hashCode()?
1. Какова роль equals() и hashCode() в HashMap?
2. Каково максимальное число значений hashCode()?
Начни карьеру в IT без вложений. Программа подготовки востребованных Java разработчиков с личным ментором online. Оплата только после трудоустройства.
У нас ты изучишь востребованный стек технологий и получишь опыт коммерческой разработки в проекте. Если не найдешь работу, то обучение за наш счет.
Пройти тестовое задание 🙋♂️👉 https://clck.ru/Nez5g
👇Что ждет студента:
1. Подготовка с личным ментором online по индивидуальной программе за 6 месяцев
2. Жесткий контроль знаний на каждом этапе
3. Обучение востребованному на рынке стеку технологий: Java Core, Maven, Git, Junit, Tomcat, Servlet, Spring MVC, Core, Security, Hibernate
4. Отработка знаний в настоящем бизнес проекте, который дает опыт и строчку для резюме
5. Общение с одногруппниками и студентами-разработчиками других потоков групповом чате slack (уже более 1500 участников)
6. Быстрое карьерное и финансовое развитие за счет программы поддержки на 2 года: митапы, мастер-классы, закрытые лекции со спикерами и offline интенсивы
7. Гарантированное трудоустройство и первая зарплата от 100 000 рублей
Требования к кандидату:
• Обучение минимум 25 часов в неделю
• Проживание или готовность к переезду в Москву для трудоустройства
У нас ты изучишь востребованный стек технологий и получишь опыт коммерческой разработки в проекте. Если не найдешь работу, то обучение за наш счет.
Пройти тестовое задание 🙋♂️👉 https://clck.ru/Nez5g
👇Что ждет студента:
1. Подготовка с личным ментором online по индивидуальной программе за 6 месяцев
2. Жесткий контроль знаний на каждом этапе
3. Обучение востребованному на рынке стеку технологий: Java Core, Maven, Git, Junit, Tomcat, Servlet, Spring MVC, Core, Security, Hibernate
4. Отработка знаний в настоящем бизнес проекте, который дает опыт и строчку для резюме
5. Общение с одногруппниками и студентами-разработчиками других потоков групповом чате slack (уже более 1500 участников)
6. Быстрое карьерное и финансовое развитие за счет программы поддержки на 2 года: митапы, мастер-классы, закрытые лекции со спикерами и offline интенсивы
7. Гарантированное трудоустройство и первая зарплата от 100 000 рублей
Требования к кандидату:
• Обучение минимум 25 часов в неделю
• Проживание или готовность к переезду в Москву для трудоустройства
1. hashCode позволяет определить корзину для поиска элемента, а equals используется для сравнения ключей элементов в списке корзины и искомого ключа.
2. Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2 в степени 32.
2. Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2 в степени 32.
Как вы поддерживаете и развиваете свои профильные знания в онлайне?
Anonymous Poll
32%
Читаю документацию
44%
Читаю профильную литературу
51%
Читаю статьи на Хабре/Medium/Proglib
17%
Изучаю исходники кода в github/bitbucket/gitlab
28%
Смотрю онлайн-митапы/конференции
3%
Участвую в хакатонах/конкурсах
27%
Занимаюсь своими пет-проектами
18%
Работы хватает, ничего не делаю
10%
Другое
#вопросы_с_собеседований
Что такое Reflection?
Что такое Reflection?
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «Как вы поддерживаете и развиваете свои профильные знания в онлайне?»
Рефлексия (Reflection) - это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов
Возможности Java Reflection API:
✔️Определение класса объекта;
✔️Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
✔️Определение интерфейсов, реализуемых классом;
✔️Создание экземпляра класса;
✔️Получение и установка значений полей объекта;
✔️Вызов методов объекта;
✔️Создание нового массива.
java.lang
и java.lang.reflect
.Возможности Java Reflection API:
✔️Определение класса объекта;
✔️Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах;
✔️Определение интерфейсов, реализуемых классом;
✔️Создание экземпляра класса;
✔️Получение и установка значений полей объекта;
✔️Вызов методов объекта;
✔️Создание нового массива.
Spring Microservices in Action (2019)
Автор: John Carnell
Книга учит читателя создавать приложения на основе микросервисов с использованием Java и фреймворка Spring. Вы научитесь проектировать микросервисы, создавая свое первое приложение с Spring.
На протяжении всей книги тщательно отобранные примеры из реальной жизни демонстрируют шаблоны на основе микросервисов для настройки, маршрутизации, масштабирования и развертывания ваших служб. Вы увидите, как интуитивно понятный инструментарий Spring может помочь расширить и реорганизовать существующие приложения с помощью микросервисов.
Скачать книгу
Автор: John Carnell
Книга учит читателя создавать приложения на основе микросервисов с использованием Java и фреймворка Spring. Вы научитесь проектировать микросервисы, создавая свое первое приложение с Spring.
На протяжении всей книги тщательно отобранные примеры из реальной жизни демонстрируют шаблоны на основе микросервисов для настройки, маршрутизации, масштабирования и развертывания ваших служб. Вы увидите, как интуитивно понятный инструментарий Spring может помочь расширить и реорганизовать существующие приложения с помощью микросервисов.
Скачать книгу
Telegram
Книги для программистов (reserved)
Spring Microservices in Action (2019)
Автор: John Carnell
Автор: John Carnell
@Hiddengurus — хороший канал, в котором размещаются свежие вакансии на удаленку для IT и Digital гуру! Хочешь удалённо работать в крутых проектах из США, Европы, РФ и Латинской Америки? Тогда в @Hiddengurus ты найдешь подходящую именно для тебя вакансию на удалёнке:)
#вопросы_с_собеседований
Как получить доступ к переопределенным методам родительского класса?
Как получить доступ к переопределенным методам родительского класса?
#вопросы_с_собеседований
В чем отличие класса 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 и не быть описанными в объявлении метода.