В этом ролике автор демонстрирует создание и использование собственных DSL для настройки контекста безопасности приложения, благодаря которым можно вносить изменения в контекст безопасности на этапах инициализации и настройки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
«Иннотех» запускает самый амбициозный проект российского финтеха и собирает под него ИТ-команду
Что будем создавать? Проект государственного масштаба — автоматизированную банковскую систему (АБС) для России. Это будет уникальная для российского рынка core banking платформа на современном технологическом стеке и микросервисной архитектуре.
Кто нам нужен?
• Java-разработчики;
• аналитики;
• специалисты DevOps;
• тестировщики;
• и не только.
Что мы предлагаем? Сложнейшие задачи для роста hard-скилов, возможность работать удаленно, ДМС и прочие бонусы.
Не упусти шанс войти в финтех-историю — жми «Присоединяйся к команде» и получи быстрый оффер.
Реклама. ООО "ГК "ИННОТЕХ". ИНН 9703073496. erid: LjN8KSUMk
Что будем создавать? Проект государственного масштаба — автоматизированную банковскую систему (АБС) для России. Это будет уникальная для российского рынка core banking платформа на современном технологическом стеке и микросервисной архитектуре.
Кто нам нужен?
• Java-разработчики;
• аналитики;
• специалисты DevOps;
• тестировщики;
• и не только.
Что мы предлагаем? Сложнейшие задачи для роста hard-скилов, возможность работать удаленно, ДМС и прочие бонусы.
Не упусти шанс войти в финтех-историю — жми «Присоединяйся к команде» и получи быстрый оффер.
Реклама. ООО "ГК "ИННОТЕХ". ИНН 9703073496. erid: LjN8KSUMk
👍12❤2🔥1😁1
Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?
Если возникшее исключение - наследник
• для статических блоков инициализации будет выброшено
• для нестатических будет проброшено исключение-источник.
Если возникшее исключение - наследник
Если возникшее исключение - наследник
RuntimeException:• для статических блоков инициализации будет выброшено
java.lang.ExceptionInInitializerError;• для нестатических будет проброшено исключение-источник.
Если возникшее исключение - наследник
Error, то в обоих случаях будет выброшено java.lang.Error. Исключение: java.lang.ThreadDeath - смерть потока. В этом случае никакое исключение выброшено не будет.👍19🔥3
Расскажем на бесплатном практическом уроке «Type classes в Scala» от OTUS и Алексея Воронца – руководителя разработки в NAUMEN.
— разберем type class паттерн в Scala;
— познакомимся с мотивацией его возникновения и задачами, которые он должен решать;
— сформулируем и разберем основные компоненты;
— решим ряд задач с использованием type class паттерна для закрепления на практике.
Занятие пройдёт 14 декабря в 20:00 мск и будет приурочено к старту курса «Scala-разработчик». После урока вы сможете продолжить обучение на специальных условиях.
👉 Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2😁1
StringBuilder
StringBuilder — это класс для работы с изменяемыми строками, аналогичный StringBuffer. API класса StringBuilder такой же, как у StringBuffer, он также хранит строку в виде модифицируемого массива символов.
Но, в отличие от StringBuffer, StringBuilder не является потокобезопасным. Он работает быстрее за счет отсутствия синхронизации.
Поэтому его рекомендуется использовать в однопоточных приложениях для работы со строками, когда нет необходимости в синхронизации.
При создании можно задать начальную емкость buffer'а в виде размера массива символов.
Если строка превышает текущую емкость, она автоматически расширяется с сохранением содержимого.
StringBuilder — это класс для работы с изменяемыми строками, аналогичный StringBuffer. API класса StringBuilder такой же, как у StringBuffer, он также хранит строку в виде модифицируемого массива символов.
Но, в отличие от StringBuffer, StringBuilder не является потокобезопасным. Он работает быстрее за счет отсутствия синхронизации.
Поэтому его рекомендуется использовать в однопоточных приложениях для работы со строками, когда нет необходимости в синхронизации.
При создании можно задать начальную емкость buffer'а в виде размера массива символов.
Если строка превышает текущую емкость, она автоматически расширяется с сохранением содержимого.
👍28🔥4
Может ли статический метод быть переопределён или перегружен?
Перегружен - да. Всё работает точно так же, как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.
Переопределён - нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода - это вполне корректная языковая конструкция.
В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
Перегружен - да. Всё работает точно так же, как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.
Переопределён - нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода - это вполне корректная языковая конструкция.
В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
👍39🔥2
Уже 29 декабря стартует новая группа специализации «Java Developer» в OTUS.
На онлайн-курсе вы получите:
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2😁2
Selector
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).
Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.
Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
🔥12👍5🎉5
Старт подготовительного курса по Java-разработке.
⏰ Когда: 12 декабря.
Даем: 62 урока с практикой в браузере, 3 онлайн вебинара и 1 сессию лайвкодинга с практикующим разработчиком.
Получаем: крепкие знания базы языка, умение понимать код и первую программу на Java, написанную вместе с наставником.
Всего 990 ₽ и ваше жгучее желание начать. Приходите с любым бэкграундом: нам не важны возраст, пол, образование и текущая профессия.
Запишитесь прямо сейчас!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
⏰ Когда: 12 декабря.
Даем: 62 урока с практикой в браузере, 3 онлайн вебинара и 1 сессию лайвкодинга с практикующим разработчиком.
Получаем: крепкие знания базы языка, умение понимать код и первую программу на Java, написанную вместе с наставником.
Всего 990 ₽ и ваше жгучее желание начать. Приходите с любым бэкграундом: нам не важны возраст, пол, образование и текущая профессия.
Запишитесь прямо сейчас!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
❤7👍3
Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д.
И чтобы не разворачивать это всё вручную, можно использовать контейнеры, а разработчики Spring Boot предлагают интеграцию Spring Boot и Docker Compose, благодаря которой использование контейнеров требует минимум кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Docker Compose и Spring Boot 3.1
Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д.
И чтобы не разворачивать…
И чтобы не разворачивать…
👍30🔥4🎉1
Что вы НЕ ЗНАЛИ о разработке ПО?
Расскажем на бесплатном открытом уроке «Методологии разработки ПО» от OTUS.
На вебинаре:
- рассмотрим различные подходы к разработке – водопадная модель, итеративная разработка, спиральная модель, гибкая разработка и др.;
- обсудим их особенности, ограничения и критерии выбора;
- изучим модели жизненного цикла – классическую и модель спирального развития.
Занятие пройдёт 18 декабря в 20:00 мск и будет приурочено к старту курса «Архитектура и шаблоны проектирования». После урока вы сможете продолжить обучение в рассрочку.
Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/X1B5/
Расскажем на бесплатном открытом уроке «Методологии разработки ПО» от OTUS.
На вебинаре:
- рассмотрим различные подходы к разработке – водопадная модель, итеративная разработка, спиральная модель, гибкая разработка и др.;
- обсудим их особенности, ограничения и критерии выбора;
- изучим модели жизненного цикла – классическую и модель спирального развития.
Занятие пройдёт 18 декабря в 20:00 мск и будет приурочено к старту курса «Архитектура и шаблоны проектирования». После урока вы сможете продолжить обучение в рассрочку.
Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/X1B5/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru👍9🔥2
CompletableFuture
CompletableFuture в пакете java.util.concurrent является классом, который предоставляет мощный и гибкий подход к асинхронному программированию. Он позволяет выполнять асинхронные операции и обрабатывать их результаты, комбинировать несколько операций и управлять зависимостями между ними.
Помимо операций, представленных на изображении, CompletableFuture также предоставляет множество других методов для работы с асинхронными операциями, таких как thenApply(), thenCompose(), thenCombine(), exceptionally() и другие, которые позволяют обрабатывать результаты, комбинировать операции, обрабатывать исключения и многое другое. Это делает CompletableFuture мощным инструментом для асинхронного программирования.
CompletableFuture в пакете java.util.concurrent является классом, который предоставляет мощный и гибкий подход к асинхронному программированию. Он позволяет выполнять асинхронные операции и обрабатывать их результаты, комбинировать несколько операций и управлять зависимостями между ними.
Помимо операций, представленных на изображении, CompletableFuture также предоставляет множество других методов для работы с асинхронными операциями, таких как thenApply(), thenCompose(), thenCombine(), exceptionally() и другие, которые позволяют обрабатывать результаты, комбинировать операции, обрабатывать исключения и многое другое. Это делает CompletableFuture мощным инструментом для асинхронного программирования.
👍24🔥3❤1😁1
На вебинаре разберём, как можно сделать самодельный appender для Logback, который будет отправлять логи в TCP-сервер логирования.
Также эксперт подробно ответит на любые возникающие вопросы.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Проектирование и разработка архитектуры программного обеспечения является неотъемлемой и крайне важной составляющей процесса разработки. Гибкая и хорошо проработанная архитектура значительно упрощает процесс разработки как монолитных проектов, так и проектов с микросервисным подходом. А в идеальных условиях архитектура должна позволять получить из одной кодовой базы как модульный монолит, так и набор микросервисов.
На взгляд автора хорошей отправной точкой может стать гексагональная архитектура, которая является частной реализацией идей чистой архитектуры. В этом ролике автор рассматривает основные элементы гексагональной архитектуры, а так же демонстрирует её применение в процессе разработки простого сервиса, модульного монолита и набора микросервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Гексагональная архитектура и микросервисы #java #microservices #hexagonal
Проектирование и разработка архитектуры программного обеспечения является неотъемлемой и крайне важной составляющей процесса разработки. Гибкая и хорошо проработанная архитектура значительно упрощает процесс разработки как монолитных проектов, так и проектов…
❤14👍6
Какие подходы применять в разработке микросервисов?
Узнайте на бесплатном практическом уроке «Основные паттерны использования GraphQL и gRPC» от OTUS. На вебинаре:
- рассмотрим основные паттерны и подходы к использованию GraphQL и gRPC;
- рассмотрим паттерн запрос-ответ;
- обсудим различия между GraphQL и gRPC и их преимущества и недостатки в различных сценариях;
- изучим паттерны запроса типа «одно на много» и «много на много», а также подходы к управлению версиями.
Занятие пройдёт 12 декабря в 17:00 мск и будет будет приурочено к старту курса «Microservice Architecture». После урока вы сможете продолжить обучение в рассрочку.
Для бесплатного участия и получения записи зарегистрируйтесь прямо сейчас: https://otus.pw/dFM7/
Узнайте на бесплатном практическом уроке «Основные паттерны использования GraphQL и gRPC» от OTUS. На вебинаре:
- рассмотрим основные паттерны и подходы к использованию GraphQL и gRPC;
- рассмотрим паттерн запрос-ответ;
- обсудим различия между GraphQL и gRPC и их преимущества и недостатки в различных сценариях;
- изучим паттерны запроса типа «одно на много» и «много на много», а также подходы к управлению версиями.
Занятие пройдёт 12 декабря в 17:00 мск и будет будет приурочено к старту курса «Microservice Architecture». После урока вы сможете продолжить обучение в рассрочку.
Для бесплатного участия и получения записи зарегистрируйтесь прямо сейчас: https://otus.pw/dFM7/
👍4🔥4❤1
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка
• Можно сузить возвращаемое значение, если они совместимы.
Например:
• При переопределении метода нельзя сузить модификатор доступа к методу (например с
public в MainClass до private в Class extends MainClass).• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка
attempting to use incompatible return type.• Можно сузить возвращаемое значение, если они совместимы.
Например:
public class Animal {
public Animal eat() {
System.out.println("animal eat");
return null;
}
public Long calc() {
return null;
}
}
public class Dog extends Animal {
public Dog eat() {
return new Dog();
}
/*attempting to use incompatible return type
public Integer calc() {
return null;
}
*/
}👍21❤2🔥2😁2
Команда Поиска и рекламных технологий Яндекса приглашает на митап для senior бэкенд-разработчиков в Екатеринбурге.
Поговорим про разработку, поиграем в квиз, понетворкаемся и просто хорошо проведем время.
12 декабря, 18:00.
Регистрируйтесь, количество мест в офлайне ограничено!
Поговорим про разработку, поиграем в квиз, понетворкаемся и просто хорошо проведем время.
12 декабря, 18:00.
Регистрируйтесь, количество мест в офлайне ограничено!
❤8👍4🔥3🎉1
В видео создаем новый Spring Boot 3 проект для простейшего REST сервиса, рассматриваем аннотации RestController, GetMapping.
Тестируем работоспособность сервиса через веб браузер и Postman
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
12 декабря в 18:00 по МСК пройдёт бесплатный вебинар «Продвинутые аспекты Java collections framework»
На вебинаре мы разберем тонкости при работе с массивами, списками и мапами.
Ты узнаешь про разницу в производительности основных коллекций, use cases и а также популярные вопросы с собеседований на позицию Java Middle Developer.
Вебинар подойдет для Java-разработчиков, которые хотят повысить свой грейд до Java Middle
Спикер: Роман Оборин, Software Engineer at Tesco
🚀 Бесплатная регистрация: https://vk.cc/csZu1L
Реклама. ООО "Платформа непрерывного обучения" education.dhabits.ru
erid:2VtzqvH1ZqU
На вебинаре мы разберем тонкости при работе с массивами, списками и мапами.
Ты узнаешь про разницу в производительности основных коллекций, use cases и а также популярные вопросы с собеседований на позицию Java Middle Developer.
Вебинар подойдет для Java-разработчиков, которые хотят повысить свой грейд до Java Middle
Спикер: Роман Оборин, Software Engineer at Tesco
🚀 Бесплатная регистрация: https://vk.cc/csZu1L
Реклама. ООО "Платформа непрерывного обучения" education.dhabits.ru
erid:2VtzqvH1ZqU
👍10🔥3🎉1
В данном видеоуроке автор показывает как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Простой Telegram-бот на Java и Spring Boot
В данном видеоуроке я показываю как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Поддержать автора:…
Поддержать автора:…
👍32🔥8❤3
Forwarded from Яндекс
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Разыгрываем Станцию Дуо Макс! Это первая колонка Яндекса с камерой и сенсорным экраном — флагман новой линейки устройств.
Что делать? Подпишитесь на телеграм-каналы @yandex и @techno_yandex, а потом нажмите кнопку «Участвовать» под этим постом. 15 декабря в 13:00 бот рандомно выберет победителя из числа участников.
▶️ А как производят и тестируют умные устройства Яндекса на заводе в Гуанчжоу, смотрите в мини-сериале YaC 2023 — на Кинопоиске и YouTube.
Что делать? Подпишитесь на телеграм-каналы @yandex и @techno_yandex, а потом нажмите кнопку «Участвовать» под этим постом. 15 декабря в 13:00 бот рандомно выберет победителя из числа участников.
▶️ А как производят и тестируют умные устройства Яндекса на заводе в Гуанчжоу, смотрите в мини-сериале YaC 2023 — на Кинопоиске и YouTube.
👍8🎉2