Max

Java Guru

Прямой пост
max.ru/javatasks
Нет баллов
Описание канала в MAX

Канал с вопросами и задачами с собеседований! По сотрудничеству и рекламе: ссылка скрыта или в ЛС сообщества ВК ссылка скрыта Канал в перечне РКН: ссылка скрыта Мы на бирже: ссылка скрыта

Аудитория
Смешанная аудитория
Подписчики
796
0день
+1неделя
+35месяц
Охват поста
155
155за 24 часа
171в среднем
Вовлечённость
19,5%
19,5%за 24 часа
21,5%в среднем
Упоминания в других каналах

Канал упомянули 19 раз в 2 каналах

Чем больше упоминаний и каналов — тем заметнее канал в своей нише.

Информация о подписчиках
Вк, телеграм, макс

Похожие каналы

29 289
Смешанная аудитория
ERR 13%

🔓 Популярные игры, приложения для android устройств, новости технологий и многое другое. 🤝 Сотрудничество: https://clck.su/FWLEf ⚠️ Наш чат: 🔓 Популярные игры, приложения для android устройств, новости технологий и многое другое. 🔓 Популярные игры, приложения для android устройств, новости технологий Игры, приложения, модификации, моды, новости, android, сма

2 200
4 095
Мужская аудитория
ERR 23%

Пишем про новые ИИ-модели, open-source проекты и инструменты для разработки. Следим за релизами и собираем главное в одном месте. Реклама: @clucai_sup Купить рекламу: https://telega.in/c/+tiyGChxuJ0oyZjAy

2 000
1 982
Смешанная аудитория
ERR 17%

ChatGPT (ЧатГпт) | NanoBanana 2 (НаноБанана) | DeepSeek | Claude (Клод) | Veo 3.1 | GPT Image 2 | Kling (Клинг) | Grok | GPT 2 AI Бот | ИИ Бот | ИИ Max | нейросети | написать текст | ответы на вопросы | перевод | генерация фото | генерация видео | улучшить фото | фотосессия Бот с нейросетями — @id711601738400_bot 🧑‍💻 Связь: https://clck.ru/3T8PD8 Сервис аналитики MAX - https://maxframe.ru

600
9 907
Смешанная аудитория
ERR 14%

Канал направленный на исследование в сфере ИБ, OSINT. Сотрудничество: @glebsto Медиа: @agencytender Мы на бирже: https://telega.in/c/info_cybersecurity Архив: https://t.me/tochkaseti

3 000
2 328
Мужская аудитория
ERR 27%

Реклама: https://iimax.ru/seller135

2 000
2 011
Смешанная аудитория
ERR 23%

Вся самая новая и полезная литература для Java разработчиков! По вопросам авторских прав, сотрудничества и рекламы: https://t.me/NadikaKir или в ЛС сообщества ВК https://vk.com/javatutorial Мы на бирже: https://telega.in/channels/bookofgeek/card_max/?r=lcDuijdm Канал в перечне РКН: https://vk.cc/cJrTqo

900
Формат размещения
500

топ 1 час · сутки в ленте · цена напрямую от автора

💎Эффективность за эти деньги
3,2
CPV · за показ
3 226
CPM · за 1000
Пересчитывается от формата и охвата 155/24ч
Гарантия выхода поста и возврат средств
Надёжность сделки
Среднее время ответа админа
Среднее время ответа админа
Обычно отвечает быстро
Размещений через Помогач
Размещений через Помогач
Первое размещение — за вами
Посты в канале
Java Guru
MAX · канал
165 просм.23 авг., 11:50
Java - regex без боли Нашли интересную библиотеку - Sift. Она заменяет весь этот ад с регулярками на нормальный fluent API. Теперь вместо нечитаемых строк вида: ^[0-9a-fA-F]{6}$ Пишешь код, который реально понимаешь: .char('#') .then() .exactly(6) .hexDigits() 📌 Что это дает: - Читаемый и понятный код - Меньше ошибок в regex - Быстрее разработка и поддержка По сути — это как “переводчик” с языка регулярных выражений на человеческий Java-код. Если когда-нибудь ломал голову над regex -это прям must-have. Java Guru | Мы в Телеграм
247 просм.20 авг., 20:31
Работа с Kafka через библиотеку Kafka Clients Приглашаем на открытый урок. 🗓 26 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Продвинутый уровень». Kafka Clients это нижний уровень для работы с Kafka из Java. Все более высокоуровневые библиотеки основаны на нем. Данный открытый урок проходит в рамках курса Java разработчик. Продвинутый уровень. О чем поговорим: ✔️ Чтение и отправка сообщений в Kafka ✔️ Управление топиками ✔️ Разные форматы: текст, JSON, Avro ✔️ Использование транзакций 🔗 Ссылка на регистрацию: https://vk.cc/d0EqSq Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
182 просм.20 авг., 16:02
Вопрос с собеседования Где хранятся объекты? Ответ: Все объекты, создаваемые через new, размещаются в куче (heap) — области памяти, управляемой сборщиком мусора. Ссылки на эти объекты могут храниться в стеке, если они являются локальными переменными внутри метода. Таким образом, объект — в куче, ссылка на него — в стеке. Java Guru | Мы в Телеграм
255 просм.19 авг., 19:25
Работа с Kafka через библиотеку Kafka Clients Приглашаем на открытый урок. 🗓 26 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Продвинутый уровень». Kafka Clients это нижний уровень для работы с Kafka из Java. Все более высокоуровневые библиотеки основаны на нем. Данный открытый урок проходит в рамках курса Java разработчик. Продвинутый уровень. О чем поговорим: ✔️ Чтение и отправка сообщений в Kafka ✔️ Управление топиками ✔️ Разные форматы: текст, JSON, Avro ✔️ Использование транзакций 🔗 Ссылка на регистрацию: https://vk.cc/d0CA8E Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
142 просм.19 авг., 15:02
На фото показана проблема N+1 в JPA и её решение. 🟣 findAll() — вызывает 1 запрос к авторам + по 1 запросу на книги каждого автора → N+1 запросов ☑ JOIN FETCH в @Query — решает проблему, загружая авторов и их книги одним SQL-запросом Показана разница в коде и как избежать лишних запросов при загрузке связанных сущностей (Author → Book) Java Guru | Мы в Телеграм
335 просм.16 авг., 16:08
Как починить мертвый ThreadLocal в пуле потоков Если положить RequestId / userId / traceId в ThreadLocal и передать задачу в ExecutorService в итоге значение пропадёт. InheritableThreadLocal помогает только при явном создании потока, но не при переиспользовании из пула. Alibaba решили это ещё в 2013 году, а библиотека до сих пор активно поддерживается → TransmittableThreadLocal (TTL). 🔹 Подключается: com.alibaba transmittable-thread-local 2.14.5 🔹 Используется как обычный ThreadLocal, только умнее: TransmittableThreadLocal traceId = new TransmittableThreadLocal<>(); traceId.set("req-123"); ExecutorService pool = TtlExecutors.getTtlExecutorService( Executors.newFixedThreadPool(4) ); pool.submit(() -> { // "req-123" — доступен здесь, в потоке из пула System.out.println(traceId.get()); }); 🔹 Три способа интеграции → Обернуть Runnable/Callable — TtlRunnable.get(task) → Обернуть пул — TtlExecutors.getTtlExecutorService(pool) → Java Agent — вообще без изменений в коде: -javaagent:transmittable-thread-local.jar Агентовый режим особенно полезен, когда нужно прозрачно встроить TTL в легаси-проект или сторонний фреймворк — он патчит JDK-классы пулов на уровне байткода. 0 зависимостей. Работает с виртуальными потоками (Project Loom). Поддерживает кастомный TtlCopier для глубокого копирования значений при передаче в дочерний поток. Актуально везде, где есть distributed tracing, MDC, tenant isolation или любой per-request контекст в многопоточке. ⚠️ README встретит иероглифами, не пугайся, английская версия лежит в README-EN.md. Java Guru | Мы в Телеграм
326 просм.14 авг., 14:41
441 просм.31 июля, 22:53
363 просм.30 июля, 11:24
Ровно 20 лет назад были приняты два базовых закона, которые формируют всю область информационной безопасности и защиты персональных данных в России: 149-ФЗ и 152-ФЗ. По случаю этой даты КСБ-СОФТ подготовили подборку актуальных и практичных материалов в том числе по применению 149-ФЗ и 152-ФЗ. Подписывайтесь на канал и читайте еще больше полезных постов: https://tglink.io/cd9a742d6017f7 #реклама О рекламодателе erid: 2W5zFHqFkN5
134 просм.30 июля, 10:01
400 просм.24 июля, 18:47
389 просм.21 июля, 18:18
429 просм.18 июля, 09:28
362 просм.17 июля, 10:07
DAO на Spring JDBC Приглашаем на открытый урок. 🗓 22 июля в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework». На занятии мы разберем: ✔️Преимущества нативного SQL при разработке DAO. ✔️ Основные возможности Spring JDBC для работы с запросами. ✔️ Подходы к обеспечению безопасности и тестируемости DAO. Кому будет интересно: Урок будет полезен Java-разработчикам, архитекторам ПО и специалистам по базам данных, стремящимся оптимизировать доступ к данным. 🔗 Ссылка на регистрацию: https://vk.cc/cZzAsi Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
347 просм.14 июля, 12:10
349 просм.10 июля, 18:26
345 просм.8 июля, 21:12
👩‍💻 Spring AI: как превратить изображение документа в JSON в Java-приложении Приглашаем на открытый урок. 🗓 14 июля в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework». На занятии мы разберем: ✔️Что такое Spring AI и зачем он нужен Java-разработчику, который хочет добавлять AI-функции в свои приложения. ✔️Как AI-модель работает с изображениями и почему документ можно превратить в данные, пригодные для обработки в коде. ✔️Как настроить подключение к модели в Spring Boot и собрать базовый пайплайн обработки документа. ✔️Как с помощью промпта и OutputParser получить предсказуемый результат в формате JSON/POJO, а не «свободный» текст от нейросети. ✔️Какие ошибки и ограничения важно учитывать, если вы хотите использовать такой подход в реальном backend-сервисе. 🔗 Ссылка на регистрацию: https://vk.cc/cZoQay Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
339 просм.8 июля, 11:01
390 просм.2 июля, 16:36
Spring Boot tip: как быстро защитить REST endpoint С Spring Boot + Spring Security можно буквально за пару строк закрыть нужные маршруты. Допустим, у нас есть контроллер: @RestController public class MyController { @GetMapping("/admin") public String admin() { return "Admin panel"; } } Теперь хотим, чтобы /admin был доступен только аутентифицированным пользователям. Добавляем конфигурацию безопасности: @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/admin").authenticated() .anyRequest().permitAll() .and() .httpBasic(); } } Разберём, что происходит: • authorizeRequests() - начинаем описывать правила доступа • antMatchers("/admin").authenticated() - для /admin требуется аутентификация • anyRequest().permitAll() - остальные маршруты публичные • httpBasic() - включаем HTTP Basic Auth В итоге: • /admin защищён • всё остальное - открыто • минимум кода, максимум контроля Spring Security выглядит сложно, пока не начинаешь разбирать по шагам. А дальше можно добавлять роли, JWT, OAuth2 и более гибкие политики доступа.
392 просм.29 июня, 16:51
👩‍💻 Как работает @Transactional в Spring: границы транзакций и типовые ошибки Приглашаем на открытый урок. 🗓 29 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework». На занятии мы разберем: ✔️Что реально делает @Transactional в Spring ✔️Почему важны proxy и вызов метода через Spring Bean ✔️Как работают propagation-режимы на примере REQUIRED и REQUIRES_NEW ✔️Когда происходит rollback и почему checked exceptions не всегда откатывают транзакцию ✔️Типовые ошибки при работе с транзакциями в сервисном слое Урок будет полезен Java/Kotlin-разработчикам, которые уже пишут приложения на Spring или начинают использовать Spring в реальных backend-проектах и хотят лучше понимать поведение транзакций. 🔗 Ссылка на регистрацию: https://vk.cc/cZa5aJ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
327 просм.29 июня, 10:11
Магия IntelliJ IDEA Если используешь Ctrl + P (подсказка параметров метода), то вот ещё один полезный хот кей: Shift + Ctrl + I → быстрый просмотр определения. 🟢 Зачем это нужно — Позволяет посмотреть реализацию метода/класса/интерфейса без перехода в другой файл. — Работает с любыми символами: методами, переменными, константами, даже SQL-мэпперами в MyBatis. — Незаменимо, если не хочешь терять контекст текущего кода. 🟢 Как использовать — Наведи курсор на метод, поле или класс, нажми Ctrl + Shift + I — появится всплывающее окно с реализацией. — Работает и в дебаге, и при просмотре внешних библиотек (если есть исходники).
384 просм.28 июня, 09:56
Java: используйте WeakHashMap для кэширования, когда ключи без ссылок должны удаляться сборщиком мусора. ❌В HashMap, пока существует сама мапа, ключи и связанные с ними значения не будут удаляться сборщиком мусора. ✅В WeakHashMap ключи хранятся через слабые ссылки, и если на ключ больше нет сильных ссылок в программе, сборщик мусора может его удалить, и он автоматически исчезнет из мапы. ✅Пример: Map map = new WeakHashMap<>(); User u1 = new User("Mick"); map.put(u1, "Cached data"); ... u1 = null; // С этого момента ключ u1 доступен для сборки мусора.
396 просм.26 июня, 18:45
Как использовать ИИ в разработке не ради экспериментов, а для решения реальных задач? 29 июня в 20:00 на открытом вебинаре рассмотрим современные ИИ-инструменты для разработчиков и практические сценарии их применения. В программе: • разбор решений для ускорения написания и отладки кода; • демонстрация инструментов генерации кода, тестов и документации; • кейсы использования LLM в повседневной разработке; • примеры внедрения ИИ в рабочие процессы и CI/CD-пайплайны. Вебинар поможет разобраться в возможностях современных ИИ-инструментов, понять, как использовать нейросети для рефакторинга и анализа кода, а также подобрать подходящие решения под свой стек технологий. Регистрация бесплатный на урок: https://vk.cc/cZ69ob Урок пройдёт в рамках старта курса «ИИ для разработчиков». Старт курса 29.06.2026. Плюс скидка 15% за прохождение вступительного тестирования (на страничке курса). Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
368 просм.26 июня, 14:38
По умолчанию Spring Boot не включает stacktrace в ответах REST-сервисов. Только для целей быстрого дебага (не используйте это в production) можно включить это через конфигурационное свойство include-stacktrace: always.
390 просм.25 июня, 14:25
Spring Boot: Лучше использовать SpringBootTest.WebEnvironment.RANDOM_PORT вместо жёстко заданных портов в тестах, чтобы избежать конфликтов.
509 просм.23 июня, 18:30
🤯 Автотесты проходят успешно, а ошибки всё равно попадают в рабочую среду? Часто проблема не в количестве проверок, а в том, что тесты не контролируют структуру данных и не позволяют вовремя заметить изменения в API. 2 июля в 20:00 МСК на открытом уроке разберём инструменты, которые помогают делать проверки более надёжными и предсказуемыми. На живых примерах покажем, как создавать API-тесты на Java, работать с JSON через Jackson, проверять ответы с помощью JSON Schema Validator и организовывать код так, чтобы его было удобно развивать и поддерживать. Открытый урок проходит в преддверии старта курса «Автоматизатор тестирования на Java. Продвинутый уровень». 👉Зарегистрируйтесь, чтобы освоить востребованные инструменты автоматизации и получить практическую базу для своих проектов: https://vk.cc/cYZs5t Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
405 просм.23 июня, 14:00
Как получить гарантированный дедлок? Сначала поговорим о том, что это такое. Deadlock – это взаимная блокировка, ситуация, когда два или более потока «наступают друг-другу на хвост» – зависают в вечном ожидании ресурсов, захваченных друг другом. Livelock – похожая проблема, с тем лишь отличием, что потоки не останавливаются, а вместо этого зацикливаются, выполняя одни и те же бесполезные действия, ходят по кругу. Стандартный подход к обеспечению гарантии защиты от дедлока – установка строгого порядка взятия блокировок. Если для мониторов A и B соблюдается всеобщий порядок захвата AB (и соответственно отпускания BA), то ни с одним потоком не случится попасть на ожидание B, успешно при этом захватив A. Из этого можно догадаться, простой способ гарантировать возможность дедлока – явно нарушить это условие. Нарушение условия даст дедлок «скорее всего когда-нибудь». Чтобы получить его точно и с первого раза, нужно гарантировать, что оба потока окажутся на этапе между захватами одного и другого ресурса в одно время. Это можно сделать множеством способов, в примере ниже использован CyclicBarrier.
359 просм.23 июня, 11:25
Слушайте подкаст про защиту персональных данных. Специалисты рассказывают про аудит, документацию и требования регуляторов: 152-ФЗ, 1119-ПП, 21 приказ ФСТЭК России, ГОСТ 51583-2014. Еще больше полезного в канале КСБ-СОФТ. Подписывайтесь, чтобы вовремя узнавать об изменениях в приказах о киберзащите: https://tglink.io/61526707732b3e?erid=2W5zFFwGrMX #реклама О рекламодателе
138 просм.23 июня, 10:00
371 просм.23 июня, 00:31
406 просм.20 июня, 11:34
Вайб‑кодинг: хайп для пет-проектов или мощь для прома? Узнаем на митапе! ✌️ Айтишники Новосибирска, собираемся 25 июня в лофте FoodFactory, чтобы обсудить ИИ в финтехе и создании продуктов. В программе митапа: ✔️ реальные кейсы продуктов разного масштаба; ✔️ риски и выгоды агентной разработки; ✔️ дискуссии с экспертами. Занесите в календарь: 25 июня, 19:00, лофт FoodFactory, быть обязательно!  Регистрация тут
317 просм.19 июня, 11:01
457 просм.17 июня, 18:49
Локальный запуск LLM перестал быть экспериментом Все больше команд разворачивают AI-модели внутри своей инфраструктуры, чтобы защитить данные, снизить зависимость от внешних сервисов и сократить расходы на API. 📅 23 июня в 20:00 МСК приглашаем на бесплатный открытый урок «Обзор инфраструктуры Ollama». На занятии разберем: • как устроена платформа Ollama для локального запуска LLM; • установку и настройку на Linux, macOS и Windows; • работу с моделями: загрузку, запуск, управление версиями; • квантизацию и оптимизацию моделей для ограниченных ресурсов. После урока вы: ✅ поймете архитектуру Ollama и принципы ее работы; ✅ сможете развернуть локальную LLM без облачных зависимостей; ✅ узнаете, как эффективно использовать вычислительные ресурсы и выбирать подходящие модели. Урок будет полезен разработчикам, DevOps-инженерам и всем, кто изучает практическое применение ИИ. Регистрация: https://vk.cc/cYOjbr Открытый урок пройдет в преддверии старта курса «ИИ для разработчиков» Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
454 просм.16 июня, 13:01
508 просм.12 июня, 21:38
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн Но где их находить? Как узнавать о них раньше, чем когда все начнут выкладывать фотографии оттуда? Переходите на канал IT-Мероприятия России. В нём каждый день анонсируются мероприятия со всех городов России 📆 в канале размещаются как онлайн, так и оффлайн мероприятия; 👩‍💻 можно найти ивенты по любому стеку: программирование, frontend-backend разработка, кибербезопасность, дата-аналитика, osint, devops и другие; 🎙 разнообразные форматы мероприятий: митапы с коллегами по цеху, конференции и вебинары с известными опытными специалистами, форумы и олимпиады от важных представителей индустрии и многое другое А чтобы не искать по разным форумам и чатам новости о предстоящих ивентах: 🚀 IT-мероприятия России — подписывайся и будь в курсе всех предстоящих мероприятий!
494 просм.12 июня, 13:01
556 просм.10 июня, 18:37
👩‍💻 Контейнеризация Java-приложений с Docker Приглашаем на открытый урок. 🗓 22 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Экспертный уровень». В современной промышленной разработке бизнес-приложения всё чаще запускаются в облачных средах, и умение работать с Docker-контейнерами становится неотъемлемой частью работы Java-разработчика. На занятии мы разберем: ✔️ Что такое Docker-контейнер и зачем он нужен разработчику? ✔️ Как развернуть и запустить Java-приложение в Docker-контейнере? ✔️ Основы профилирования и отладки приложений внутри Docker-контейнера. Урок будет полезен тем, кто хочет: - Освоить навыки работы с Docker-контейнерами. - Узнать, как контейнеризация помогает в разработке и развертывании приложений. - Получить практические знания по запуску, тестированию и профилированию Java-приложений в Docker. 🔗 Ссылка на регистрацию: https://vk.cc/cYBXjV Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
541 просм.10 июня, 12:01
597 просм.9 июня, 10:23
649 просм.8 июня, 19:42
662 просм.6 июня, 09:36
744 просм.3 июня, 10:04
Утечка, которую не видит heap dump Интересная ловушка: вызываешь string.intern() на динамических строках, приложение падает с OOM, делаешь heap dump — а там всё чисто. Где утечка? 🟢 Суть проблемы String Pool до Java 7 жил в PermGen, с Java 7 переехал в heap. Казалось бы, проблема решена. Но нет. Внутри String Pool использует нативную хеш-таблицу StringTable, которая живёт в native memory (вне heap). Когда ты делаешь intern(), в heap создаётся сама строка, но ссылка на неё хранится в нативной StringTable. 🟢 Что происходит Строки попадают в heap (GC их уберёт), но StringTable в native memory растёт бесконечно. Размер StringTable фиксирован и задаётся -XX:StringTableSize. При переполнении — коллизии, деградация, OOM. 🟢 Как увидеть? bashjcmd VM.stringtable Или Native Memory Tracking: bash-XX:NativeMemoryTracking=detail jcmd VM.native_memory Ищи раздел Symbol — там StringTable. ⚠️ String Pool — это не только heap. StringTable живёт в native memory, и это классическая офф-хип утечка. Java Guru
725 просм.2 июня, 12:48
755 просм.1 июня, 18:02
797 просм.29 мая, 18:06
839 просм.27 мая, 18:30
👩‍💻 Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube Приглашаем на открытый урок. 🗓 08 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Экспертный уровень». Minikube — личный Kubernetes для тестов. Научитесь деплоить Java-приложения — база для DevOps, CI/CD и продакшна. О чем поговорим: ✔️ Подготовка Java-приложения к деплою (JAR → Docker image). ✔️ Установка Minikube и настройка локального кластера. ✔️ Написание манифестов: Deployment, Service, ConfigMap. ✔️ Запуск приложения и проверка работоспособности. Вебинар будет полезен: Java-разработчикам, начинающим осваивать Kubernetes и DevOps-подходы, а также инженерам, выстраивающим локальные CI/CD практики. В результате вебинара: Сможете самостоятельно задеплоить Java-приложение в Minikube, написать манифесты и лучше понять, как работает Kubernetes «под капотом». 🔗 Ссылка на регистрацию: https://vk.cc/cYbx5z Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
801 просм.27 мая, 13:01
Как устроены атомики? Начнем с того, что такое атомики и зачем нужны. Atomic* – семейство классов из java.util.concurrent. Они предоставляют набор атомарных операций для соответствующих типов. Например с помощью методов getAndIncrement/incrementAndGet класса AtomicInteger можно делать неатомарный в обычных условиях инкремент (i++). Условно можно разделить подходы реализации большинства atomic-методов на две группы: compare-and-set и set-and-get. Методы категории compare-and-set принимают старое значение и новое. Если переданное старое значение совпало с текущим, устанавливается новое. Обычно делегируют вызов в методы класса Unsafe, которые заменяются нативными реализациями виртуальной машины. Виртуальная машина в большинстве случаев использует атомарную операцию процессора compare-and-swap (CAS). Поэтому атомики обычно более эффективны чем стандартная дорогостоящая блокировка. В случае set-and-get старое значение неизвестно. Поэтому нужен небольшой трюк: программа сначала считывает текущее значение, а затем записывает новое, тоже с помощью CAS, потому что запись могла успеть поменяться даже за этот шаг. Эта попытка чтения+записи повторяется в цикле, пока старое значение не совпадет и переменная не будет успешно записана. Этот трюк называется double-checked или optimistic locking, и может быть использован и в пользовательском коде с любым способом синхронизации. Оптимистичность заключается в том, что мы надеемся что состояния гонки нет, прибегая к синхронизации только если гонка всё же случилась. Реализация оптимистичной блокировки может быть дана как отдельная задача. Java Guru
870 просм.25 мая, 18:50
Мифы про ИИ-агентов: что реально работает в 2026 году. Открытый урок курса «ИИ-агенты: продвинутое внедрение и использование» Вокруг ИИ-агентов много шума: одни ждут, что они заменят людей, другие считают, что это инструмент только для программистов, третьи уверены, что без сложного кода ничего полезного не получится. На практике всё интереснее: агенты уже помогают автоматизировать рутину, работать с браузером, собирать простые сценарии и решать прикладные задачи, но требуют правильного понимания своих границ. На открытом уроке 27 мая в 20:00 разберём популярные мифы про ИИ-агентов и покажем, что действительно работает в 2026 году. Посмотрим, как устроен браузерный агент, зачем он нужен и какие процессы может автоматизировать. Отдельно разберём, как создать агента без кода и почему для первых полезных решений не всегда нужен сложный программный слой. На живых демонстрациях покажем три сценария: браузерный агент, агент без кода и минимальный жизнеспособный агент, который уже решает реальную задачу. Урок не для тех, кто ждёт «замены человека одной кнопкой», хочет верить в магию ИИ без понимания ограничений или считает, что агенты сами по себе решают бизнес-задачи без постановки цели, контекста и контроля результата. 👉 Записаться: https://vk.cc/cY9CA6 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
872 просм.25 мая, 14:45
Как получить гарантированный дедлок? Сначала поговорим о том, что это такое. Deadlock – это взаимная блокировка, ситуация, когда два или более потока «наступают друг-другу на хвост» – зависают в вечном ожидании ресурсов, захваченных друг другом. Livelock – похожая проблема, с тем лишь отличием, что потоки не останавливаются, а вместо этого зацикливаются, выполняя одни и те же бесполезные действия, ходят по кругу. Стандартный подход к обеспечению гарантии защиты от дедлока – установка строгого порядка взятия блокировок. Если для мониторов A и B соблюдается всеобщий порядок захвата AB (и соответственно отпускания BA), то ни с одним потоком не случится попасть на ожидание B, успешно при этом захватив A. Из этого можно догадаться, простой способ гарантировать возможность дедлока – явно нарушить это условие. Нарушение условия даст дедлок «скорее всего когда-нибудь». Чтобы получить его точно и с первого раза, нужно гарантировать, что оба потока окажутся на этапе между захватами одного и другого ресурса в одно время. Это можно сделать множеством способов, в примере ниже использован CyclicBarrier. Java Guru
882 просм.25 мая, 10:38

Посты загружаются автоматически из канала. Администрация сайта не несёт ответственности за их содержание и размещённые в них ссылки.