seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

#вопросы_с_собеседований
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.

В примере возникает ошибка, потому что Collections.emptyList() возвращает пустой список без возможности добавления элементов.

Читать полностью…

Senior Java Developer

👩‍💻 Как эффективно использовать OAuth 2 в Spring-приложениях?

Ждем вас на открытом вебинаре 13 сентября в 20:00 мск.

где мы разберем:

✔️ что такое OAuth 2 и как он работает в Spring-приложениях;
✔️ какие роли и процессы задействованы в фреймворке авторизации;
✔️ его расширения;
✔️ ответы на все возникающие вопросы.

Урок идеально подходит для Java- и Kotlin-разработчиков.

Встречаемся в преддверии старта курса «Разработчик на Spring Framework».
Все участники вебинара получат специальную цену на обучение!

📌 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAman9

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

➡️ JCTools

JCTools (Java Concurrency Tools) — это библиотека, специализирующаяся на высокопроизводительных структурах данных для многопоточного программирования в Java. Она предоставляет коллекции и утилиты, оптимизированные для работы с низкими задержками и высокой пропускной способностью, что делает её отличным выбором для разработчиков, работающих с системами реального времени или высоконагруженными сервисами.

🗣 JCTools — отличный выбор для тех, кто работает с многопоточностью и хочет повысить производительность своих приложений. Если вам нужно добиться минимальных накладных расходов в многопоточном окружении, JCTools может стать важным компонентом вашего проекта.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

⚙️ Deadlocks

Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно.

➡️ Зачастую, такое происходит, если один синхронизируемый объект ожидает ресурсов, а они заблокированы другим синхронизированным объектом.

✔️ Чтобы избежать deadlock, можно использовать один из следующих подходов:

Всегда захватывайте блокировки в одном и том же порядке во всех методах. Например, сначала lock1, затем lock2
Используйте ReentrantLock с таймаутом вместо synchronized, чтобы избежать бесконечного ожидания.

Читать полностью…

Senior Java Developer

➡️ Оптимизация производительности через уменьшение количества объектов с использованием intern() для строк

В Java строки неизменяемы, и часто создание большого количества строк, содержащих одинаковые значения, приводит к избыточному использованию памяти.

⚙️ Метод intern() позволяет сократить количество дубликатов строк, оптимизируя использование памяти, за счет хранения только одной копии каждой уникальной строки в пуле строк.

Читать полностью…

Senior Java Developer

«Привет, как дела?» — сразу летишь во френдзону

Это будет продолжаться ВЕЧНО, пока не начнешь читать канал ТВОРЧЕСТВО ЧУВСТВ, где узнаешь:

— грамотно общаться с девушками и доводить до секса
— строить прочные отношения, где девушка ласковая и покорная, а ты — лидер
— сформировать базу мужских принципов, которые помогут во всех направлениях в жизни


Главное про качественные отношения тут: t.me/+2PeNv_5pb8djMDdi

Читать полностью…

Senior Java Developer

👩‍💻 Как эффективно использовать Java Collections для хранения, извлечения и обработки данных?

Ждем вас на открытом вебинаре 11 сентября в 20:00 мск, где мы разберем:

✔️ обзор структуры коллекций и их основных методов;
✔️ особенности различных реализаций коллекций;
✔️ примеры применения коллекций для решения практических задач.

Урок идеально подходит для тех, кто начинает изучать Java или хочет углубить свои знания.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAgVyX

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

➡️ Использование Optional.or для безопасного предоставления альтернативных значений

Optional.or — метод, представленный в Java 9, позволяет безопасно предоставить альтернативное значение, если исходное значение отсутствует (null).

🗣️ Это полезно для обработки значений, которые могут отсутствовать, без необходимости использовать условные конструкции.


⚙️ В данном примере, если optionalValue пустое (null), метод or вернет Optional с альтернативным значением "Значение по умолчанию". Это делает код более читаемым и защищает от потенциальных ошибок, связанных с null.

Читать полностью…

Senior Java Developer

➡️ Flyway

Flyway — это популярная библиотека для управления версиями баз данных. Она позволяет легко и надежно управлять миграциями базы данных, сохраняя ее состояние в синхронизации с вашим приложением.

🗣 Flyway — отличный инструмент для автоматизации и упрощения миграций базы данных. Если вы хотите избежать проблем с несогласованностью базы данных, Flyway — ваш выбор.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

Конвейер для Spring-приложений прямо в IDE

Приглашаем на презентацию нового инструмента от Haulmont — компании, подарившей миру JPA Buddy и другие инструменты разработки, разрабатывающей корпоративное ПО и отказоустойчивые решения.

На встрече разработчики расскажут про Amplicode — набор инструментов для эффективной разработки и развертывания web-приложений на современном стеке технологий. Amplicode учит IDE работать в терминах фреймворка.

🌐 Онлайн в YouTube и на VK Видео
📆 3 сентября, 18:00 (МСК, GMT+3)

В программе:
— Обзорный доклад об Amplicode: история создания инструмента и возможности.
— Время для кода! Демо Amplicode от экспертов — ревью приложения, его доработка, разработка REST API, настройка доступа, деплой и создание админки на React Admin.
— Открытая дискуссия: команда Amplicode и эксперты ответят на вопросы участников.

Ссылку на трансляцию отправим вам на почту перед началом вебинара.

Регистрация — на сайте.

Реклама. ООО «ХОУЛМОНТ САМАРА». ИНН 6316134393

Читать полностью…

Senior Java Developer

Как запустить продукт и не прогореть?

⌨️ Ждем вас на открытом вебинаре 3 сентября в 19:00 мск, где мы разберем:

- как исследовать аудиторию и спрогнозировать спрос;
- как создать MVP и определить, когда идти в масштаб;
- как правильно тестировать продукт «в бою» и находить недочёты;
- как кастдев (опрос и интервью пользователей) помогает выявить сильные и слабые стороны ваших продуктов.

Урок подходит для проджект-менеджеров, управленцев в IT и продакт-менеджеров, которые хотят избежать ошибок при запуске продукта и добиться успеха. Вы получите пошаговый план действий, который поможет вам уверенно запустить и развивать свой продукт.

Встречаемся в преддверии старта курса «Product Manager IT-проектов». Все участники вебинара получат специальную цену на обучение!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cA0cFM

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

🔴 18 сентября состоится крупнейшая конференция по трафику и продажам в Телеге

1⃣2⃣3⃣4⃣5⃣

Вам однозначно стоит быть, если:

— Работаете с трафиком из Telegram Ads или посевов;
— Продаете свои услуги через Telegram;
— Еще не зарабатываете в TG, но планируете;

📣 Вот лишь некоторые из спикеров:

Алексей Соловьев (Event and Community Manager at TON)
Дмитрий Форман (Digital-Директор Самолет)
Марат Шайхетдинов (Founder TgConf & Clickise)
Ирина Нумизматка (Автор крупнейшего блога про Telegram Ads)
Глеб Яскевич (Директор по маркетингу Getcourse)
Артур Халиуллин (Сеть каналов на 1млн+ подписчиков)
Влад Силантьев (С нуля дошел до 63 проектов в Telegram Ads)
Павел Калюканов (Product Manager TgStat)
и множество других не менее интересных спикеров

🕔 Дата и время: 18 сентября в 9:00
📍 Место проведения: Main Stage, Москва

А в заключении мероприятия пройдет Aftertparty для VIP-участников и спикеров с хедлайнером, которого все знают!

🎟 Приобрести билет до повышения цен
Промокод telegapart дает скидку 10% на все билеты

Читать полностью…

Senior Java Developer

Динамическое создание и выполнение метода в Java с использованием ASM

ASM позволяет динамически генерировать байт-код в Java. В этом примере создается класс с простым методом hello(), который выводит сообщение в консоль.

Создается класс HelloClass с методом hello().
Метод hello() динамически генерируется и выводит строку "Hello, ASM!" в консоль.

Читать полностью…

Senior Java Developer

⚙️ Динамическое изменение поведения объектов с помощью InvocationHandler и Proxy

В Java можно динамически изменять поведение объектов, используя InvocationHandler и Proxy.

🗣️ Это полезно для создания прокси-объектов, которые могут оборачивать существующие объекты и добавлять новые функции, такие как логирование, кеширование или контроль доступа.


InvocationHandler позволяет перехватывать вызовы методов у прокси-объекта и добавлять дополнительное поведение, такое как логирование.

Использование Proxy позволяет динамически создавать новый объект, который ведет себя как реальный объект, но с добавленным поведением.

Этот подход позволяет добавлять новое поведение к существующим объектам без изменения их кода, что делает его мощным инструментом для реализации аспектно-ориентированного программирования (AOP).

Читать полностью…

Senior Java Developer

➡️ Реализация шаблонного метода с использованием default методов в интерфейсах

Java 8 представила возможность добавлять методы с реализацией по умолчанию (default) в интерфейсы.

🗣️ Это открывает интересные возможности для создания шаблонных методов, которые могут быть переопределены в классах, реализующих интерфейс.


• default методы в интерфейсах позволяют задавать базовое поведение, которое можно переопределить в классах, реализующих интерфейс.

Читать полностью…

Senior Java Developer

➡️ MapStruct

MapStruct — это библиотека для автоматического преобразования данных между Java объектами. Она упрощает создание мапперов и конвертеров, минимизируя необходимость ручного написания кода для преобразования данных между различными слоями приложения.

🗣 MapStruct — это отличный инструмент для разработчиков, которые хотят автоматизировать преобразование данных и улучшить читаемость и поддержку кода. Если вам нужно легко маппировать объекты без лишнего шаблонного кода, MapStruct поможет вам достичь этого.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Objenesis

Objenesis — это Java-библиотека, которая позволяет создавать объекты классов без вызова их конструкторов. Это особенно полезно в тех случаях, когда нужно создать объект для сериализации, прокси или в ситуациях, когда конструктор имеет побочные эффекты, которые следует избегать.

🗣 Objenesis — это отличный инструмент для тех, кто работает с фреймворками, связанными с сериализацией или AOP, и нуждается в возможности создания объектов без вызова их конструкторов. Если вы сталкивались с проблемами при создании экземпляров классов с приватными конструкторами или сложной инициализацией, Objenesis может стать вашим незаменимым помощником.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

Сочи, встречаемся 12 сентября на митапе IT Talk by Sber! ⛱

Must visit событие для разработчиков, тестировщиков, инженеров по сопровождению и владельцев продуктов. Ведь мы собрали экспертов из разных команд и городов, чтобы рассказать об автоматизации работы при помощи AI-ассистента, инженерных процессах и кейсах крупных IT-компаний.

Спикеры и темы 👇

✔️ Владимир Ярославский, Сбер: «Giga IDE: зачем Сберу собственная платформа разработки?»

✔️ Анатолий Шипов, СберТех: «GitVerse – дом для вашего кода»

✔️ Максим Вишневский, Циан: «Функциональные тесты: развёртывание, интеграция в CI и сбор покрытия»

Место сбора: конференц-зал «Панорама» отеля SEA GALAXY, ул. Черноморская, 4.

Обязательно регистрируйтесь и приходите 12 сентября в 18:30 – не пожалеете! 😉

Читать полностью…

Senior Java Developer

Нижний Новгород, встречай Сезон кода — большой ИТ-фестиваль

Фестиваль для опытных специалистов в Data, .NET, Java и Python. Время собраться всем ИТ-сообществом, обменяться опытом и просто повеселиться. В программе доклады, знакомство с коллегами, ИТ-квиз, настольные игры и живая музыка.

Успейте зарегистрироваться на Сезон кода

📍Пройдет в Нижнем Новгороде 14 сентября

Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673

Читать полностью…

Senior Java Developer

➡️ Использование MethodHandles для эффективного вызова методов в Java

MethodHandles предоставляют низкоуровневый доступ к методам, позволяя динамически вызывать их с минимальными накладными расходами.

🗣️ Этот подход может быть полезен для высокопроизводительных приложений, где отражение (reflection) слишком медленное.


MethodHandles.Lookup используется для поиска методов в классе. В примере мы находим метод substring класса String.

MethodHandle позволяет вызывать метод с минимальными накладными расходами по сравнению с традиционным отражением (reflection), что делает его более производительным.

В отличие от рефлексии, MethodHandles могут использоваться для более эффективного вызова методов, что полезно в динамических и высокопроизводительных приложениях.

Читать полностью…

Senior Java Developer

Использование метода sun.misc.Unsafe для низкоуровневой работы с памятью в Java

Хотя использование sun.misc.Unsafe не рекомендуется и является небезопасным, он предоставляет уникальные возможности для работы с памятью на низком уровне, аналогично тому, как это делается в языках, таких как C или C++.

• sun.misc.Unsafe предоставляет методы для низкоуровневых операций с памятью, которые обычно недоступны в Java.
Доступ к Unsafe возможен только через рефлексию, так как он скрыт от обычных разработчиков.
Этот подход обычно используется в высокопроизводительных библиотеках и внутри JVM, но не рекомендуется для обычных приложений.

Читать полностью…

Senior Java Developer

➡️ Javassist

Javassist (Java Programming Assistant) — это библиотека для динамической обработки классов на уровне байт-кода. Она позволяет разработчикам изменять существующие классы или создавать новые во время выполнения программы, что может быть полезно для создания прокси, выполнения аспектно-ориентированного программирования (AOP) и других задач, связанных с динамическим изменением поведения кода.

🗣️ Javassist — отличный инструмент для тех, кто хочет глубже погрузиться в работу с байт-кодом и динамическим модифицированием классов. Если вам нужны гибкие средства для работы с классами во время выполнения, Javassist может стать вашим надежным помощником.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Guava

Guava — это мощная библиотека от Google, которая предоставляет широкий набор инструментов для работы с коллекциями, кэшированием, строками, математическими операциями и многим другим. Это настоящая находка для Java-разработчиков, стремящихся к повышению эффективности и удобства написания кода.

🗣 Если вам нужно улучшить производительность или сделать код более элегантным, попробуйте Guava — это значительно упростит вашу жизнь.

🔗 Ссылочка на доку

Читать полностью…

Senior Java Developer

➡️ Использование VarHandle для высокопроизводительного и безопасного доступа к памяти

VarHandle — это новый механизм, представленный в Java 9, который предоставляет высокопроизводительный и гибкий доступ к переменным уровня Java и даже к произвольной памяти.

✔️ VarHandle служит современным и более гибким аналогом sun.misc.Unsafe, обеспечивая при этом безопасность и совместимость.

Читать полностью…

Senior Java Developer

Как сделать анализатор кода за два дня

Смотреть статью

Читать полностью…

Senior Java Developer

⚠️ Использование @SuppressWarnings для безопасного подавления предупреждений

В Java аннотация @SuppressWarnings позволяет отключать определенные предупреждения компилятора в коде.

🗣️ Это может быть полезно, когда вы уверены в безопасности используемого кода и хотите избежать лишних предупреждений, особенно при работе со старым кодом или нестандартными конструкциями.

Читать полностью…

Senior Java Developer

➡️ Оптимизация работы с коллекциями с помощью метода removeIf

В Java 8 был введен метод removeIf, который позволяет удалить элементы из коллекции, удовлетворяющие определенному условию, без необходимости явного использования цикла.

Читать полностью…

Senior Java Developer

Какие три элемента – самые важные в жизни сотрудника внутри IT-компании?

включение в бизнес-процессы компании
развитие в компании
парадигма «мотивация – демотивация – увольнение/рост»

Каждый из этих элементов может стать как трамплином, так и проблемой. И для сотрудника, и для команды, и даже для целой организации.

На конференции «OTUS CONF: поддержка и управление в IT-командах»
вы узнаете:

- Как лучше «подключать» удалённых сотрудников к бизнес-процессам организации
- Как давать обратную связь и как на неё реагировать без ущерба для профессиональных отношений
- Как повысить уровень вовлечённости сотрудников
- Как бороться с «тихими увольнениями»

Будет интересно тимлидам, руководителям в IT, эйчарам, HRBP

Присоединяйтесь, слушайте дискуссии экспертов в сферах HR и управления, задавайте вопросы

28 августа, 19:00 МСК
Бесплатно

➡️ Записаться на конференцию

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Senior Java Developer

📚 Пройди тест на знание Java и получи доступ к 🌿🌿 открытым урокам по Spring

🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Разработчик на Spring Framework» от OTUS необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.

📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework.
- Дадим 18 практических работ. Процесс review сдаваемой работы максимально приближен к тому, каким он мог быть на реальном проекте. Помимо этого, мы попросим вас сдать дипломную работу, каких скучных записанных занятий, только живые онлайн-лекции, интересные практические задачи и развернутая обратная связь от лучших экспертов ниши. 📅 Старт группы уже 30 сентября 2024г. Доступна рассрочка на обучение.

➡️ НАЧАТЬ ТЕСТИРОВАНИЕ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

👩‍💻 Типы данных Java: идентификаторы и примитивы

Хотите глубже понять типы данных в Java? Ждем вас на открытом вебинаре 2 сентября в 20:00 мск,

где мы разберем:

➡️ как работать с идентификаторами и примитивами в Java;
➡️ как решать задачи, аналогичные экзаменационным, и набить руку на примерах;
➡️ все возникающие вопросы.

Урок идеально подходит для тех, кто хочет изучить Java вглубь, узнать тонкости и хитрости языка, а также для Java-разработчиков, стремящихся структурировать свои знания и лучше подготовиться к собеседованиям.

Спикер Дмитрий Коган — опытный разработчик, председатель совета предприятия в DXC, публицист, спортивный журналист и блогер.

Встречаемся в преддверии старта курса «Углубленное изучение языка Java».
Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czWeuE

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…
Subscribe to a channel