Использование Spring Cloud Gateway в качестве OAuth2 клиента и KeyCloak для защиты служб
В первую очередь, данная статья для тех, кто только пытаются освоить технологии Spring Cloud и KeyCloak, но уже имеют базовое представление о них.
Смотреть статью
Метод ensureCapacity
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
«Код Ход Шоу» от Т-Банка для тех, кто работает на Java или только вкатывается:
— Необычный формат крестиков-ноликов. Участникам задают вопросы на знание Java, и если они отвечают правильно — могут поставить знак.
— Команды разработчиков из бигтеха (Т-Банк, Яндекс, Вертикаль, X5 Tech, Сбер, Samokat. tech и другие).
— Победитель проходит дальше, а в финале встретятся две лучшие команды.
Смотрите ютуб-шоу и подписывайтесь на телеграм-канал с анонсами новых выпусков и другими полезными материалами по Java.
erid:2VtzqwwkaKZ
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Приходите на наш Я.Субботник по JVM — 29 июня в Новосибирске!
Вас ждёт митап о том, как мы пишем код на Java, Scala и Kotlin.
В программе — доклады крутых спикеров, нетворкинг и афтерпати. Расскажем про pattern matching, процессы и факапы на складах Маркета, а еще про архитектуру наших систем.
Программа получилась насыщенной — зарегистрироваться можно по ссылке.
До встречи на Субботнике! ☀️
Что такое «локальный класс»? Каковы его особенности?
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как private/public/protected
или static
;
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final
.
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?
Непосредственно вызов finalize()
происходит в отдельном потоке Finalizer
(java.lang.ref.Finalizer.FinalizerThread
), который создаётся при запуске виртуальной машины (в статической секции при загрузке класса Finalizer
). Методы finalize()
вызываются последовательно в том порядке, в котором были добавлены в список сборщиком мусора. Соответственно, если какой-то finalize()
зависнет, он подвесит поток Finalizer
, но не сборщик мусора. Это в частности означает, что объекты, не имеющие метода finalize()
, будут исправно удаляться, а вот имеющие будут добавляться в очередь, пока поток Finalizer
не освободится, не завершится приложение или не кончится память.
То же самое применимо и выброшенным в процессе finalize()
исключениям: метод runFinalizer()
у потока Finalizer
игнорирует все исключения выброшенные в момент выполнения finalize()
. Таким образом возникновение исключительной ситуации никак не скажется на работоспособности сборщика мусора.
Что такое Java Virtual Machine (JVM)? Как она работает?
Java Virtual Machine (JVM) - это среда выполнения, которая позволяет выполнять Java-приложения на любой платформе, где установлена JVM. Она является ключевым компонентом технологии Java, так как обеспечивает портативность и независимость Java-кода от конкретной операционной системы.
JVM принимает скомпилированный Java-код (байт-код) и интерпретирует его в машинный код на конкретной платформе. Он выполняет множество задач, включая загрузку классов, управление памятью, выполнение потоков, оптимизацию кода и т. д.
Когда Java-приложение выполняется на JVM, оно получает доступ к богатому набору библиотек Java, которые предоставляют множество готовых классов и методов для решения различных задач. Благодаря JVM Java считается одним из самых надежных и масштабируемых языков программирования.
#вопросы_с_собеседований
Прожарка java.lang.String
Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Смотреть статью
❗️ Отус приглашает 19 июня в 18:00 по МСК на бесплатный вебинар «Uniswap: эволюция крупнейшего децентрализованого финансового протокола от версии v1 до v4»!
Вебинар является бесплатной частью полноценного онлайн-курса «Solidity Developer».
➡️ Регистрация на вебинар: https://otus.pw/r9ke5/?erid=LjN8KTYU4
Понимание Uniswap v4 и Hooks становится все более востребованным, так как многие приложения, даже не связанные с DeFi, используют Uniswap, например, для размещения токенов своих проектов.
На вебинаре мы разберем:
✅ развитие протокола от v1 до v4;
✅ особенности архитектуры v4 и почему деплой протокола был невозможен до обновления Dencun в сети Ethereum;
✅ какие Hooks бывают и почему они похожи на Hooks в React;
✅ как происходит обмен токенов и менеджмент LP-позиций в v4 пулах.
Записывайтесь сейчас, а мы потом напомним. Участие бесплатно.
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Комбинирование хеш-таблиц
Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится.
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Смотреть статью
Узнаем размер памяти компьютера
Для получения информации о памяти компьютера в Java можно использовать класс Runtime.
Регистрация на ARCHI.Tech от ВТБ уже стартовала!
Предварительный этап, на котором можно заработать дополнительные баллы, уже стартовал! Включайся в работу прямо сейчас: https://cnrlink.com/architechvtbjavasenior
📅 Расписание хакатона:
🔹 31 мая – начало регистрации
🔹 14 июня – старт предварительного этапа и митап для участников
🔹 28 июня – окончание регистрации, публикация задач хакатона
🔹 29 июня – закрытие приема решений, жюри выбирает финалистов
🔹 30 июня – онлайн-питч лучших проектов и награждение победителей в прямом эфире
Тебя ждет погружение в проекты ВТБ, знакомство с экспертами банка, решение практических задач и прокачка технических навыков!
👉 Попробуй себя в архитектуре — участвуй в ARCHI.Тech от ВТБ: https://cnrlink.com/architechvtbjavasenior
Реклама. БАНК ВТБ (ПАО). ИНН 7702070139. erid: LjN8KSod6
Получи оффер разработчика в YADRO!
Вендор и производитель IT-инфраструктуры, пользовательского и телеком - оборудования YADRO даёт возможность работать удаленно или в одном из классных офисов в Москве, Питере, Нижнем Новгороде, Екатеринбурге или Минске.
Сейчас открыты вакансии в департамент разработки программного обеспечения и флагманского продукта компании YADRO, современного хранилища – TATLIN.UNIFIED.
Ребята разрабатывают на GO и ожидают знания и понимания алгоритмов обработки данных, основных структур работы с данными, и, конечно, желания развиваться, решать задачи, осмысливая их.
Смотри список, выбирай вакансию и отправляй резюме:
• Инженер-программист Go
• Старший инженер-программист С++
• Старший DevOps-инженер
📌 Составили список лучших каналов от действующих разработчиков:
Java Developer — советы и практики от действующего Senior-разработчика
Python Developer — секреты и тонкости программирования на Python
Frontend Developer — готовый код и полезные ресурсы для любого фронтендера
Реализация авторизации на основе ролей в Spring Boot с помощью Keycloak
Контроль доступа на основе ролей является обязательным условием для любого приложения, имеющего дело с пользователями, которые могут получать доступ к определенным ресурсам в зависимости от своей роли в организации.
Смотреть статью
93% мужчин не знают, как вести себя с девушкой на самом деле
Из-за чего девушка охладевает, теряет инетерес, сливается, устраивает сцены, обиды, манипуляции, постоянно что-то требует, в то время, как с другим парнем может потерять дар речи от одного его взгляда, в котором чувствуется уверенность и сила.
Если сталкивался хоть толикой подобных проблем, срочно заходи на канал Творчество Чувств. Тут научат:
— грамотно общаться с девушками и доводить до секса
— строить прочные отношения, где девушка ласковая и покорная, а ты — лидер
— сформировать базу мужских принципов, которые помогут во всех направлениях в жизни
Все про отношения и жизненный путь мужчины: t.me/+bU_6kzhieGliMTFi
Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего эксперта💯
Ждём вас на уроке «Визуальное сравнение 1-2-3 алгоритмов сортировок» от OTUS, где мы:
- подробно рассмотрим три алгоритма сортировок: Пузырьком, Вставкой и Шелла;
- сравним их по различным критериям: сложность и количество обменов, стабильность и адаптивность;
- напишем алгоритмы и сравним их быстродействие;
- продемонстрируем их работу на игральных картах🂱️
🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.
Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/h4Wz/?erid=LjN8KC9Mn
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. С/C++
7. PHP
8. Kotlin
9. Swift
Пузырьковая сортировка
Данный алгоритм сортировки известен в первую очередь за счёт своей простоты, однако при этом он имеет одну из наиболее низких скоростей выполнения.
Пузырьковая сортировка весьма и весьма медленная, с временной сложностью O(N²), так как мы имеем вложенные циклы. Внешний проход по элементам выполняется за N раз, внутренний — тоже N раз, и в итоге мы получаем N*N, N² итераций.
Для чего используется PushbackInputStream?
Разновидность буферизации, обеспечивающая чтение байта с последующим его возвратом в поток. Класс PushbackInputStream
представляет механизм «заглянуть» во входной поток и увидеть, что оттуда поступит в следующий момент, не извлекая информации.
У класса есть дополнительный метод unread()
.
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes
Смотреть статью
Метод Math.ceil()
Метод дает целое число с нулевой дробной частью, ближайшее к числу аргумента справа, другими словами — округляет дробь в большую сторону. Возвращается переменная типа double
.
LibGDX
LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.
#для_продвинутых
conductor-oss/conductor
Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.
Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.git remote set-url origin https://github.com/conductor-oss/conductor
https://github.com/conductor-oss/conductor