uz
Feedback
Java Books

Java Books

Kanalga Telegram’da o‘tish

Java Библиотека По всем вопросам- @notxxx1 @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI @pythonlbooks-📚 @programming_books_it -it 📚 № 5032728887

Ko'proq ko'rsatish

📈 Telegram kanali Java Books analitikasi

Java Books (@java_library) kanali faol ishtirokchi. Hozirda hamjamiyat 14 211 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 815-o'rinni va Rossiya mintaqasida 46 019-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 211 obunachiga ega bo‘ldi.

25 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -60 ga, so‘nggi 24 soatda esa -11 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 8.91% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.73% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 267 marta ko‘riladi; birinchi sutkada odatda 530 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent docker, собеседование, sql, boot, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Java Библиотека По всем вопросам- @notxxx1 @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI @pythonlbooks-📚 @programming_books_it -it 📚 № 503272888...

Yuqori yangilanish chastotasi (oxirgi ma’lumot 26 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

14 211
Obunachilar
-1124 soatlar
-277 kunlar
-6030 kunlar
Obunachilarni jalb qilish
Avgust '26
Avgust '26
+56
0 kanalda
Iyul '26
+155
41 kanalda
Get PRO
Iyun '26
+89
0 kanalda
Get PRO
May '26
+109
0 kanalda
Get PRO
Aprel '26
+109
0 kanalda
Get PRO
Mart '26
+71
0 kanalda
Get PRO
Fevral '26
+265
0 kanalda
Get PRO
Yanvar '26
+343
1 kanalda
Get PRO
Dekabr '25
+126
0 kanalda
Get PRO
Noyabr '25
+205
43 kanalda
Get PRO
Oktabr '25
+175
13 kanalda
Get PRO
Sentabr '25
+293
34 kanalda
Get PRO
Avgust '25
+310
0 kanalda
Get PRO
Iyul '25
+593
49 kanalda
Get PRO
Iyun '25
+301
31 kanalda
Get PRO
May '25
+192
2 kanalda
Get PRO
Aprel '25
+407
0 kanalda
Get PRO
Mart '25
+285
0 kanalda
Get PRO
Fevral '25
+114
0 kanalda
Get PRO
Yanvar '25
+174
0 kanalda
Get PRO
Dekabr '24
+539
4 kanalda
Get PRO
Noyabr '24
+1 143
2 kanalda
Get PRO
Oktabr '24
+1 287
3 kanalda
Get PRO
Sentabr '24
+479
1 kanalda
Get PRO
Avgust '24
+490
1 kanalda
Get PRO
Iyul '24
+500
0 kanalda
Get PRO
Iyun '24
+503
1 kanalda
Get PRO
May '24
+364
34 kanalda
Get PRO
Aprel '24
+351
43 kanalda
Get PRO
Mart '24
+358
20 kanalda
Get PRO
Fevral '24
+306
2 kanalda
Get PRO
Yanvar '24
+672
45 kanalda
Get PRO
Dekabr '23
+451
39 kanalda
Get PRO
Noyabr '23
+1 213
5 kanalda
Get PRO
Oktabr '23
+396
18 kanalda
Get PRO
Sentabr '23
+387
0 kanalda
Get PRO
Avgust '23
+316
0 kanalda
Get PRO
Iyul '23
+1 305
0 kanalda
Get PRO
Iyun '23
+277
0 kanalda
Get PRO
May '23
+2 744
0 kanalda
Get PRO
Aprel '23
+59
0 kanalda
Get PRO
Mart '23
+106
0 kanalda
Get PRO
Fevral '23
+195
0 kanalda
Get PRO
Yanvar '23
+938
0 kanalda
Get PRO
Dekabr '22
+881
0 kanalda
Get PRO
Noyabr '22
+194
0 kanalda
Get PRO
Oktabr '22
+213
0 kanalda
Get PRO
Sentabr '22
+1 647
0 kanalda
Get PRO
Avgust '22
+866
0 kanalda
Get PRO
Iyul '22
+199
0 kanalda
Get PRO
Iyun '22
+1 429
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
26 Avgust0
25 Avgust0
24 Avgust0
23 Avgust+10
22 Avgust+7
21 Avgust+2
20 Avgust+3
19 Avgust0
18 Avgust+2
17 Avgust+4
16 Avgust+1
15 Avgust0
14 Avgust+4
13 Avgust+1
12 Avgust+1
11 Avgust+1
10 Avgust+3
09 Avgust+2
08 Avgust0
07 Avgust+6
06 Avgust+3
05 Avgust0
04 Avgust+2
03 Avgust+1
02 Avgust0
01 Avgust+3
Kanal postlari
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста.
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста. 🌐 С курсом «Системный дизайн высоконагруженных проектов» вы: ▪️изучите ключевые фундаментальные паттерны и получите навыки проектирования проектов с миллионной аудиторией (балансировка, масштабирование апп/кешей/субд, высокая доступность и кластерные решения, шардинг, CAP/PACELS, консистентность, саги, транзакционные очереди и многое другое) ▪️поупражняетесь в проектировании и получите обратную связь на реальных задачах: магазин/маркетплейс, такси/доставка, обьявления, соцсети, дейтинг, игры, википедия, мессенжер, CDN, хранилище файлов, онлайн-кинотеатр, счетчики, удаленный мониторинг, интеграционные вебхуки, рассылки и тд. ▪️ научитесь планировать нагрузку и связывать бизнес-показатели с нефункциональными требованиями к системе ▪️ попрактикуемся в проведении и прохождения секций системного дизайна на интервью. Всё в формате живых онлайн-сессий (лекции, брейнштормы, презентации домашних проектов). 🤩 Кто мы: R&D-центр Devhands.ru, наш канал (https://t.me/rybakalexey). Основатель школы и автор курса Алексей Рыбак, ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и управления глобальными технологическими организациями. 🗓 Старт 7 сентября, изучаем программу, записываемся здесь Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvimBRf

2
Java-ловушка: почему `parallelStream()` может замедлить приложение Многие думают: «Есть stream(), добавлю parallelStream() — станет быстрее». Но не всегда. parallelStream() использует общий ForkJoinPool Java: users.parallelStream() .map(this::callExternalApi) .toList(); Если внутри идут HTTP-запросы, SQL или ожидание внешнего сервиса, можно получить обратный эффект: забить общий пул потоков увеличить задержки замедлить другие части приложения parallelStream() хорошо подходит для: ✅ сложных CPU-вычислений ✅ обработки больших коллекций ✅ математических операций Но плохо подходит для: ❌ HTTP ❌ базы данных ❌ файлового I/O ❌ ожидания внешних сервисов Для таких задач лучше использовать отдельный пул: ExecutorService executor = Executors.newFixedThreadPool(20); и контролировать количество параллельных операций. Главное правило: parallelStream() — для вычислений. ExecutorService — для бизнес-логики и внешних вызовов. Код может идеально работать на тестах, но в production внезапно получить проблемы из-за одного parallelStream().
582
3
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собирает Go- и Java-инженеров, чтобы прок
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания. В программе два трека — Go и Java, по три доклада в каждом. Трек Go: • «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech • «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK • «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк Трек Java: • «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon • «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк • «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке. Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.
911
4
Полезный Java-совет: Не вызывай parallelStream() просто потому, что данных много. Для коротких операций он легко оказывается медленнее обычного stream(), потому что платишь за разбиение задачи, синхронизацию и работу ForkJoinPool. Особенно неприятно то, что по умолчанию parallelStream() использует общий ForkJoinPool.commonPool(). Если приложение уже нагружает его другими задачами, производительность может внезапно просесть вообще в другом месте. Если параллелизм реально нужен, лучше контролировать executor явно, а не прятать его внутри parallelStream(). Хайповый хук для поста: parallelStream() может ускорить один метод и одновременно замедлить всё Java-приложение.
1 391
5
🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00
🔴 Тестовый собес с Java-разработчиком уже завтра!  [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика! Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries Как это будет: 📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы Но ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓ @shortcut_sh_bot    Реклама. О рекламодателе.
855
6
🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00
🔴 Тестовый собес с Java-разработчиком уже завтра!  [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика! Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries Как это будет: 📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы Но ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓ @shortcut_sh_bot    Реклама. О рекламодателе.
2
7
🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00
🔴 Тестовый собес с Java-разработчиком уже завтра!  [+ разбор 50 сложных вопросов в подарок ] 19 августа (уже завтра!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика! Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries Как это будет: 📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы Но ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥 Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓ @shortcut_sh_bot    Реклама. О рекламодателе.
1
8
⚡️ Java-приём: не храни метаданные классов в `static Map<Class<?>, ...>` — используй `ClassValue`. Допустим, библиотека кеширует информацию о каждом классе: private static final Map<Class<?>, Metadata> CACHE = new ConcurrentHashMap<>(); На первый взгляд всё нормально. Но в приложениях с динамической загрузкой классов — plugins, application servers, hot reload — такой кеш может удерживать Class, а вместе с ним и его ClassLoader. И получить неприятную утечку памяти. В Java для этого есть малоизвестный ClassValue<T>: private static final ClassValue<Metadata> CACHE = new ClassValue<>() { @Override protected Metadata computeValue(Class<?> type) { return buildMetadata(type); } }; Использование: Metadata metadata = CACHE.get(MyClass.class); Что даёт ClassValue: - ленивое вычисление значения для каждого класса; - thread-safe доступ; - не нужен собственный ConcurrentHashMap; - кеш лучше согласован с жизненным циклом загруженных классов. Особенно полезно для reflection, serializers, ORM, DI-контейнеров и framework-кода, где постоянно кешируются данные по Class<?>. 🔥 Если видишь в библиотеке: static ConcurrentHashMap<Class<?>, ...> стоит хотя бы задать вопрос: а почему здесь не `ClassValue`? #Java #JVM #Backend #Programming
2 078
9
💻 Как прокачать фронтенд, бэкенд и зайти в разработку ИИ-систем Современный веб-интерфейс на React, сложные архитектуры, аси
💻 Как прокачать фронтенд, бэкенд и зайти в разработку ИИ-систем Современный веб-интерфейс на React, сложные архитектуры, асинхронность или сборка RAG-пайплайнов — все эти вещи требуют плотной практики. Если планируете расти в грейде, освоить новую профессию или менять стек, скоро завершается прием документов на двухлетнюю онлайн-магистратуру ИТМО в партнерстве с Яндекс Практикумом «Фронтенд-, бэкенд‑разработка и ИИ‑решения». Учеба идет по вечерам, так что бросать текущую работу не придется. При этом сохраняются все бонусы очников, включая студенческие льготы. Что ждет студентов: — Разделение по уровням. Сетка из 9 треков на выбор: от старта с нуля на Java, Python, C++ или JS до хардовых программ для продвинутых. Там уже будут разбирать Spring Boot, Kafka, Cloud Native, C++ под Boost, NestJS и асинхронный бэкенд.  — Отдельное направление «ИИ-решения в разработке». Оно заточено под проектирование LLM-систем, сборку RAG-пайплайнов и работу с мультиагентными сетями.  — Практика, которой очень много. Сможете пополнить портфолио 10+ проектами, а еще будете решать реальные задачи от партнеров программы и команд Яндекса.  — Применение AI с пользой. Научат отдавать нейросетям рутину: от дебага и рефакторинга до генерации тестов и документации. Выпускники получают диплом магистра ИТМО и официальный диплом о профпереподготовке от Яндекса. Отбор проходит по вступительным испытаниям или по рекомендательному письму для выпускников Практикума.  Узнать подробности. 
1 488
10
☕️ Java-совет: не запускайте блокирующий I/O через `CompletableFuture` без собственного пула Такой код выглядит асинхронным: CompletableFuture<User> future = CompletableFuture.supplyAsync(() -> userClient.loadUser(id)); Но без явного Executor задача обычно попадёт в общий ForkJoinPool.commonPool(). Если loadUser() ждёт HTTP, базу данных или файловую систему, поток блокируется. Несколько медленных вызовов могут занять весь общий пул и затормозить совершенно несвязанные операции приложения. Лучше выделить отдельный пул для блокирующего I/O: private static final ExecutorService IO_POOL = Executors.newFixedThreadPool(32); CompletableFuture<User> future = CompletableFuture.supplyAsync( () -> userClient.loadUser(id), IO_POOL ); И не забыть корректно его закрыть: IO_POOL.shutdown(); Для цепочки тоже важно явно выбирать executor: future.thenApplyAsync( user -> enrichUser(user), IO_POOL ); Почему это полезно: - медленный внешний сервис не блокирует общий пул; - нагрузку можно ограничить размером executor; - проще наблюдать очередь и время выполнения; - разные типы задач не мешают друг другу. CompletableFuture не делает блокирующий код неблокирующим. Он лишь переносит ожидание в другой поток. Асинхронность без контроля executor - это просто блокировка в менее заметном месте.
1 938
11
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней! 8 августа в Коломенском пройдет ИТ-Пикник. В программе
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней! 8 августа в Коломенском пройдет ИТ-Пикник. В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы. А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут. Зарегистрироваться и узнать подробности можно на сайте мероприятия. В билет входит +1 — можно позвать близких и друзей. До встречи в месте притяжения ИТ.
1 624
12
💡 Java совет: два пути могут указывать на один и тот же файл Path.equals() сравнивает только представление пути: Path a = Pa
💡 Java совет: два пути могут указывать на один и тот же файл Path.equals() сравнивает только представление пути: Path a = Path.of("data.txt"); Path b = Path.of("./data.txt"); System.out.println(a.equals(b)); // false Хотя оба пути могут вести к одному файлу. Для проверки используйте: boolean same = Files.isSameFile(a, b); Files.isSameFile() обращается к файловой системе и учитывает: - относительные пути; - символические ссылки; - реальное расположение файла. Path file = Path.of("data.txt"); Path link = Path.of("data-link.txt"); Files.isSameFile(file, link); // true, если link ведёт к data.txt Полезно при поиске дубликатов, проверке пользовательских путей и защите от повторной обработки одного файла. Учтите: метод может обращаться к диску и выбрасывать IOException, поэтому это не просто строковое сравнение. Доступно начиная с Java 7. #Java #JavaTips #Files
1 457
13
Собираем бэкенд-комьюнити на JVM Day Бэкендеры, 29 августа в Москве пройдет хардкорная конференция. Ждут своих: Java-, Scala-
Собираем бэкенд-комьюнити на JVM Day Бэкендеры, 29 августа в Москве пройдет хардкорная конференция. Ждут своих: Java-, Scala- и Kotlin-разработчиков, архитекторов и тимлидов. Здесь выступят и расскажут: — Андрей Кулешов — что нового в мире JVM за год. — Сергей Петрелевич — разработка по Mechanical Sympathy. — Александр Ланцов — Java после Loom: другие модели concurrency. — Антон Курако — как бенчмарки вводят в заблуждение. А вечером во дворе T-Space — посиделки, интерактивы и открытый микрофон с историями ошибок. Мест мало, а цена билета будет расти. Успевай зарегистрироваться
1 171
14
💡 Java cj: unmodifiableList() не делает настоящую копию Эти два варианта выглядят похоже, но работают по-разному: List<String> source = new ArrayList<>(); source.add("Java"); List<String> view = Collections.unmodifiableList(source); List<String> copy = List.copyOf(source); source.add("Spring"); System.out.println(view); // [Java, Spring] System.out.println(copy); // [Java] Collections.unmodifiableList() создаёт только неизменяемое представление исходного списка. Если source изменится, изменения появятся и в view. List.copyOf() создаёт отдельный неизменяемый снимок данных. Используйте: - unmodifiableList() — когда нужен read-only view актуального списка; - List.copyOf() — когда нужно зафиксировать состояние и безопасно вернуть его наружу. public List<String> getUsers() { return List.copyOf(users); } Так внешний код не сможет изменить внутреннюю коллекцию, а последующие изменения users не повлияют на уже возвращённый результат. List.copyOf() доступен начиная с Java 10. #Java #JavaTips #Backend
1 176
15
🖥 Java можно учить месяцами - и всё равно бояться написать собственный сервер Курс «Java: с нуля до сетевого гуру» построен
🖥 Java можно учить месяцами - и всё равно бояться написать собственный сервер Курс «Java: с нуля до сетевого гуру» построен так, чтобы ты как можно быстрее перешёл от теории к рабочему коду. Сначала разберёшь основы языка, ООП, коллекции и исключения. Затем перейдёшь к тому, ради чего многие и выбирают Java: - многопоточность; - TCP/IP и сокеты; - клиент-серверные приложения; - обработка нескольких подключений; - собственные сетевые проекты. Каждая новая тема закрепляется практикой. Ты будешь запускать серверы, подключать клиентов, передавать данные и постепенно собирать проекты, которые уже можно показывать в портфолио. Курс подходит новичкам. Никакой подготовки не требуется: обучение начинается с базы и шаг за шагом выводит к задачам реальной backend-разработки. В результате ты получишь крепкую основу Java, поймёшь, как работают сетевые приложения, и перестанешь смотреть на серверный код как на магию. Начни сейчас - и преврати Java из «когда-нибудь выучу» в навык, которым уже можно пользоваться. Курс доступен на Stepik: https://stepik.org/a/295392/
1 083
16
💡 Редкий совет Java: используйте `ClassValue` для кэша, привязанного к классу Обычно метаданные кэшируют так: Map<Class<?>, Metadata> cache = new ConcurrentHashMap<>(); Но такой кэш способен удерживать классы и их ClassLoader, создавая утечки памяти в плагинах, серверах приложений и системах с динамической загрузкой. Для подобных случаев в Java есть ClassValue: private static final ClassValue<Metadata> CACHE = new ClassValue<>() { @Override protected Metadata computeValue(Class<?> type) { return inspect(type); } }; Metadata metadata = CACHE.get(User.class); Значение вычисляется отдельно для каждого класса и может быть очищено после его выгрузки. ClassValue особенно полезен для reflection-кэшей, сериализаторов, ORM, прокси и плагинных архитектур. Редкий инструмент JVM, который часто безопаснее, чем ConcurrentHashMap<Class<?>, ...>. #Java #JVM #Backend #Performance
1 194
17
🔴 Завтра тестовое собеседование с Java-разработчиком 5 августа(уже завтра!) в 19:00 по мск приходи онлайн на открытое собесе
🔴 Завтра тестовое собеседование с Java-разработчиком 5 августа(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Сергею Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.
902
18
Java-совет: два разных пути могут вести к одному файлу Сравнение через Path.equals() проверяет только сами пути. Поэтому эти
Java-совет: два разных пути могут вести к одному файлу Сравнение через Path.equals() проверяет только сами пути. Поэтому эти значения считаются разными: Path path1 = Path.of("data/report.txt"); Path path2 = Path.of("data/../data/report.txt"); Чтобы проверить, указывают ли они на один и тот же реальный файл, используйте: boolean same = Files.isSameFile(path1, path2); Метод учитывает: - относительные и абсолютные пути; - символические ссылки; - особенности файловой системы; - разные способы записи одного расположения. Пример: Path original = Path.of("/app/config.json"); Path symlink = Path.of("/app/current-config"); if (Files.isSameFile(original, symlink)) { System.out.println("Это один файл"); } Важно: метод обращается к файловой системе и может выбросить IOException. Files.isSameFile() полезен перед копированием, перемещением или удалением файлов — особенно когда в проекте используются символические ссылки и нестандартные пути.
1 388
19
Rust, который наконец становится понятным 🦀 Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отде
Rust, который наконец становится понятным 🦀 Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли? Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы. Ты разберёшь: Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой. 🔥 Rust с нуля 🔥 5–6 часов в неделю 🔥 Практика после каждого урока 🔥 Подойдёт после Python, JavaScript, Java и других языков 🔥 Можно начать сразу В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага. Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
1 244
20
❓Что из вариантов лучше всего описывается определением: Операция, которая содержит серию задач, которые должны быть выполнены либо все, либо не выполнена ни одна.
2 871