Что произойдёт при попытке добавить элемент в List внутри метода, отмеченного @Transactional(propagation = Propagation.MANDATORY), если текущей транзакции нет?
Anonymous Quiz
24%
Создастся новая транзакция
11%
Операция выполнится без транзакции
33%
Бросится IllegalTransactionStateException
7%
Произойдёт RollbackException
24%
Посмотреть ответ
✍3👍2🔥2
ООП, Инкапсуляция в Java простыми словами. Часть 2.
Скрытие информации в Java. Модификаторы доступа.
Как мы уже рассмотрели ранее, мы используем концепцию инкапсуляции для реализации механизма сокрытия информации.
Этот подход, как и абстракция, один из наиболее часто используемых механизмов в Java. Механизм сокрытия делает атрибуты класса недоступными извне и защищенными от нежелательных/случайных действий.
Говоря об этой концепции, не лишним будет разобрать инструменты для обозначения доступности элементов – модификаторы доступа. Java поддерживает четыре модификатора доступа, используемые для определения видимости классов, методов и атрибутов. Каждый из них указывает уровень доступности, и мы можем использовать только один для каждого класса, метода или атрибута.
Перечислим их, начиная с наиболее ограничивающих:
1) private;
2) no modifier (package);
3) protected;
4) public.
Теперь подробнее:
1) Модификатор private.
Самый ограничивающий и наиболее часто используемый модификатор доступа private делает атрибут или метод доступным только в пределах одного и того же класса. Подклассы или любые другие классы не могут получить доступ к этому атрибуту или методу. Используем его только для атрибутов и методов, которые мы больше никогда не захотим вызвать.
2) Модификатор no modifier (package).
Отсутствие модификатора означает, что вы можете получить доступ к атрибутам и методам внутри вашего класса и из всех классов в одном пакете. Вот почему его часто называют пакетным.
3) Модификатор protected.
Атрибуты и методы с модификатором доступа protected могут быть доступны внутри вашего класса, всеми классами в одном пакете, а также всеми наследниками в любых пакетах. Этот модификатор, как правило, используется для внутренних методов, которые должны вызываться или переопределяться классами наследниками.
4) Модификатор public.
Доступ к методам и атрибутам, использующим модификатор public, можно получить как в текущем классе, так и во всех других классах.
✅ JavaStart. Подписаться
Скрытие информации в Java. Модификаторы доступа.
Как мы уже рассмотрели ранее, мы используем концепцию инкапсуляции для реализации механизма сокрытия информации.
Этот подход, как и абстракция, один из наиболее часто используемых механизмов в Java. Механизм сокрытия делает атрибуты класса недоступными извне и защищенными от нежелательных/случайных действий.
Говоря об этой концепции, не лишним будет разобрать инструменты для обозначения доступности элементов – модификаторы доступа. Java поддерживает четыре модификатора доступа, используемые для определения видимости классов, методов и атрибутов. Каждый из них указывает уровень доступности, и мы можем использовать только один для каждого класса, метода или атрибута.
Перечислим их, начиная с наиболее ограничивающих:
1) private;
2) no modifier (package);
3) protected;
4) public.
Теперь подробнее:
1) Модификатор private.
Самый ограничивающий и наиболее часто используемый модификатор доступа private делает атрибут или метод доступным только в пределах одного и того же класса. Подклассы или любые другие классы не могут получить доступ к этому атрибуту или методу. Используем его только для атрибутов и методов, которые мы больше никогда не захотим вызвать.
2) Модификатор no modifier (package).
Отсутствие модификатора означает, что вы можете получить доступ к атрибутам и методам внутри вашего класса и из всех классов в одном пакете. Вот почему его часто называют пакетным.
3) Модификатор protected.
Атрибуты и методы с модификатором доступа protected могут быть доступны внутри вашего класса, всеми классами в одном пакете, а также всеми наследниками в любых пакетах. Этот модификатор, как правило, используется для внутренних методов, которые должны вызываться или переопределяться классами наследниками.
4) Модификатор public.
Доступ к методам и атрибутам, использующим модификатор public, можно получить как в текущем классе, так и во всех других классах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥3✍1
ООП, Инкапсуляция в Java простыми словами. Часть 3.
Выводы.
Инкапсуляция описывает объединение данных и методов, работающих с этими данными, в один модуль и используется для реализации механизма сокрытия информации. Это концепция ООП помогает нам защитить пользовательскую информацию от ошибочных действий, тем самым повышая эффективность дальнейшей работы с кодом.
Преимущества инкапсуляции.
1) Поля класса можно сделать только для чтения или только для записи;
2) Класс может иметь полный контроль над тем, что хранится в его полях.
✅ JavaStart. Подписаться
Выводы.
Инкапсуляция описывает объединение данных и методов, работающих с этими данными, в один модуль и используется для реализации механизма сокрытия информации. Это концепция ООП помогает нам защитить пользовательскую информацию от ошибочных действий, тем самым повышая эффективность дальнейшей работы с кодом.
Преимущества инкапсуляции.
1) Поля класса можно сделать только для чтения или только для записи;
2) Класс может иметь полный контроль над тем, что хранится в его полях.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3🤓2
Какое поле файла pom.xml Maven управляет версией зависимостей без прямого указания её во всех dependency?
Anonymous Quiz
8%
<modules>
30%
<properties>
8%
<build>
42%
<dependencyManagement>
11%
Посмотреть ответ
👍3✍2🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥3👍2
Какой тип теста в Spring Boot запускается с контекстом, но без поднятия полного сервера (только слой MVC)?
Anonymous Quiz
13%
53%
9%
11%
14%
Посмотреть ответ
👍3✍2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3😁2❤1
Архитектура приложений простыми словами. Часть 1. Микросервисная архитектура.
Давайте поговорим о микросервисной архитектуре. На собеседованиях иногда могут спросить о вашем понимании микросервисов в целом.
Что такое микросервисы?
Микросервисы – это подход к разработке приложений, при котором оно разбивается на небольшие, независимые компоненты, называемые микросервисами. Каждый микросервис представляет собой отдельную функциональность, выполняет свою задачу и взаимодействует с другими микросервисами через API (Application Programming Interface).
Преимущества микросервисной архитектуры:
🚀 Масштабируемость
Мы можем масштабировать только те компоненты, которые нуждаются в дополнительных ресурсах, что позволяет оптимизировать использование ресурсов.
🎯 Гибкость и независимость
Каждый микросервис может быть разработан, развернут и обновлен независимо. Это облегчает поддержку, устранение ошибок и внесение изменений.
🌐 Распределенность
Микросервисы могут быть написаны на разных языках программирования и развернуты на разных серверах, что способствует разнообразию технологий и улучшает эффективность команды.
💡 Инновации и эксперименты
Благодаря независимости микросервисов, мы можем быстро внедрять новые идеи и технологии, не затрагивая всё приложение.
Недостатки микросервисной архитектуры:
⚖️ Сложность управления
С ростом количества микросервисов возникает сложность управления, мониторинга и отладки всей системы.
🧩 Сетевое взаимодействие
Коммуникация между микросервисами требует хорошо продуманного и надежного сетевого взаимодействия.
📚 Дублирование кода
В ряде случаев, разные микросервисы могут иметь дублирующийся функционал или код, что требует дополнительного внимания при обновлениях.
Пример из практики:
Uber: Микросервисы позволяют Uber обеспечивать гладкое взаимодействие между водителями и пассажирами, обрабатывать огромное количество запросов и обеспечивать высокую доступность.
✅ JavaStart. Подписаться
Давайте поговорим о микросервисной архитектуре. На собеседованиях иногда могут спросить о вашем понимании микросервисов в целом.
Что такое микросервисы?
Микросервисы – это подход к разработке приложений, при котором оно разбивается на небольшие, независимые компоненты, называемые микросервисами. Каждый микросервис представляет собой отдельную функциональность, выполняет свою задачу и взаимодействует с другими микросервисами через API (Application Programming Interface).
Преимущества микросервисной архитектуры:
🚀 Масштабируемость
Мы можем масштабировать только те компоненты, которые нуждаются в дополнительных ресурсах, что позволяет оптимизировать использование ресурсов.
🎯 Гибкость и независимость
Каждый микросервис может быть разработан, развернут и обновлен независимо. Это облегчает поддержку, устранение ошибок и внесение изменений.
🌐 Распределенность
Микросервисы могут быть написаны на разных языках программирования и развернуты на разных серверах, что способствует разнообразию технологий и улучшает эффективность команды.
💡 Инновации и эксперименты
Благодаря независимости микросервисов, мы можем быстро внедрять новые идеи и технологии, не затрагивая всё приложение.
Недостатки микросервисной архитектуры:
⚖️ Сложность управления
С ростом количества микросервисов возникает сложность управления, мониторинга и отладки всей системы.
🧩 Сетевое взаимодействие
Коммуникация между микросервисами требует хорошо продуманного и надежного сетевого взаимодействия.
📚 Дублирование кода
В ряде случаев, разные микросервисы могут иметь дублирующийся функционал или код, что требует дополнительного внимания при обновлениях.
Пример из практики:
Uber: Микросервисы позволяют Uber обеспечивать гладкое взаимодействие между водителями и пассажирами, обрабатывать огромное количество запросов и обеспечивать высокую доступность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2🔥1👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3💯2✍1
Какой функциональный интерфейс из java.util.function предназначен для преобразования значения из типа T в тип R?
Anonymous Quiz
11%
Supplier<R>
6%
Predicate<T>
68%
Function<T,R>
6%
Consumer<T>
9%
Посмотреть ответ
👍3✍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍2🎉1
Архитектура приложений простыми словами. Часть 2. Монолитная архитектура.
Сегодня давайте углубимся в мир монолитных приложений и узнаем, почему это хороший вариант для старта в программировании. На собеседованиях иногда могут спросить о вашем понимании монолитной архитектуры в целом.
Что такое монолит?
Монолит – это архитектурный подход, при котором все компоненты приложения объединены в одну большую программу. Весь код, базы данных и функциональности находятся внутри этого "единого" приложения.
Преимущества монолитной архитектуры:
🚀 Простота начала
Разработка и развертывание монолитного приложения обычно проще, особенно для начинающих.
🔄 Меньше сложности
Все компоненты находятся в одном месте, что упрощает отладку и обслуживание.
📦 Простота масштабирования
При необходимости можно масштабировать весь монолит.
Когда выбрать монолит?
🔹 Если наш проект небольшой и нам важно быстро начать.
🔹 Если команда разработчиков ограничена и нам нужно облегчить управление проектом.
Секрет успешной монолитной архитектуры:
🧩 Хорошая структура кода
Желательно разделять код на логические модули, чтобы упростить понимание и поддержку.
🛠️ Обновления
Желательно регулярно обновлять библиотеки и компоненты для поддержания безопасности и актуальности.
Так что, несмотря на рост популярности микросервисов, монолиты остаются надежным и удобным вариантом для начинающих программистов и небольших проектов.
Проявите креативность, структурируйте код и продолжайте учиться – и ваши монолиты будут стремительно расти вместе с вами!
✅ JavaStart. Подписаться
Сегодня давайте углубимся в мир монолитных приложений и узнаем, почему это хороший вариант для старта в программировании. На собеседованиях иногда могут спросить о вашем понимании монолитной архитектуры в целом.
Что такое монолит?
Монолит – это архитектурный подход, при котором все компоненты приложения объединены в одну большую программу. Весь код, базы данных и функциональности находятся внутри этого "единого" приложения.
Преимущества монолитной архитектуры:
🚀 Простота начала
Разработка и развертывание монолитного приложения обычно проще, особенно для начинающих.
🔄 Меньше сложности
Все компоненты находятся в одном месте, что упрощает отладку и обслуживание.
📦 Простота масштабирования
При необходимости можно масштабировать весь монолит.
Когда выбрать монолит?
🔹 Если наш проект небольшой и нам важно быстро начать.
🔹 Если команда разработчиков ограничена и нам нужно облегчить управление проектом.
Секрет успешной монолитной архитектуры:
🧩 Хорошая структура кода
Желательно разделять код на логические модули, чтобы упростить понимание и поддержку.
🛠️ Обновления
Желательно регулярно обновлять библиотеки и компоненты для поддержания безопасности и актуальности.
Так что, несмотря на рост популярности микросервисов, монолиты остаются надежным и удобным вариантом для начинающих программистов и небольших проектов.
Проявите креативность, структурируйте код и продолжайте учиться – и ваши монолиты будут стремительно расти вместе с вами!
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4👍3🔥2
🔍 Ответ на задачу про логические операторы
Разберем работу логических операторов в данном коде на Java. У нас есть три логические переменные: a, b, и c, со значениями true, false, и false соответственно. В условии if используется комбинация операторов (логическое "ИЛИ") и && (логическое "И").
Стоит помнить, что оператор && имеет более высокий приоритет, чем оператор || . Поэтому выражение b && c будет вычислено первым. Но поскольку b равно false, а c также false, это выражение дает в результате false.
Далее, выражение a будет всегда истинным, так как a равно true. Следовательно, полное условие в if равно true, и будет выполнена первая ветка блока:
1
Когда дело касается вложенных логических операторов в условных выражениях, расстановка скобок может значительно упростить понимание кода и избежать путаницы. В данном случае, добавим скобки для ясности:
Скобки вокруг выражения (b && c) четко определяют, что это будет вычислено в первую очередь. Это не только делает код более понятным, но и исключает возможность неправильной интерпретации, особенно если у вас большой и сложный условный оператор.
Используйте скобки в логических выражениях, чтобы код был читаемым как для вас, так и для вашей команды! Рекомендуется всегда группировать логические операции скобками, если существует вероятность появления неоднозначности.
✅ JavaStart. Подписаться
Разберем работу логических операторов в данном коде на Java. У нас есть три логические переменные: a, b, и c, со значениями true, false, и false соответственно. В условии if используется комбинация операторов (логическое "ИЛИ") и && (логическое "И").
Стоит помнить, что оператор && имеет более высокий приоритет, чем оператор || . Поэтому выражение b && c будет вычислено первым. Но поскольку b равно false, а c также false, это выражение дает в результате false.
Далее, выражение a будет всегда истинным, так как a равно true. Следовательно, полное условие в if равно true, и будет выполнена первая ветка блока:
1
Когда дело касается вложенных логических операторов в условных выражениях, расстановка скобок может значительно упростить понимание кода и избежать путаницы. В данном случае, добавим скобки для ясности:
boolean a = true;
boolean b = false;
boolean c = false;
if (a || (b && c)) {
System.out.println("1");
} else {
System.out.println("2");
}
Скобки вокруг выражения (b && c) четко определяют, что это будет вычислено в первую очередь. Это не только делает код более понятным, но и исключает возможность неправильной интерпретации, особенно если у вас большой и сложный условный оператор.
Используйте скобки в логических выражениях, чтобы код был читаемым как для вас, так и для вашей команды! Рекомендуется всегда группировать логические операции скобками, если существует вероятность появления неоднозначности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6✍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4❤2👍2✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍3💯2
Как называется шаблон проектирования, у которого есть внешний объект-строитель, последовательно задающий параметры сложного объекта?
Anonymous Quiz
73%
Builder
22%
Factory Method
3%
Prototype
1%
Mediator
0%
Посмотреть ответ
✍3👍3🎉2