Please open Telegram to view this post
VIEW IN TELEGRAM
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
🔗 Подробнее в статье
🐸 Библиотека джависта
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.
Простой, но не очень масштабируемый.
public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}
public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}
Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
UserDto toDto(User user);
User toEntity(UserDto dto);
}
Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);
Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}
UserDto dto = new UserDto(user.getId(), user.getName());
Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Обнаружили в профилировщике тормозящий код? Попробуйте этот промпт, чтобы AI помог вам оптимизировать его:
📝 Промпт:
Analyze the following Java code and suggest optimizations for better performance. Identify bottlenecks, improve memory usage, and recommend alternative approaches.
// Вставьте ваш код здесь
— Добавьте
Refactor it using Streams and functional programming
, если хотите более элегантный код.— Добавьте
Optimize it for multi-threading and concurrency
, если ваш код нагружен задачами.— Добавьте
Suggest a profiling strategy to measure performance issues
, если нужна диагностика.Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Знакомы с отдельными сочетаниями клавиш для рефакторинга, такими как
Shift + F6
или Ctrl + Alt + V
? Сочетание
Ctrl + Alt + Shift + T
открывает перед вами целый спектр возможностей рефакторинга в одном окне.🔹 Зачем это нужно
— Открывает меню, предоставляющее доступ к различным видам рефакторинга, таким как переименование, перемещение, изменение сигнатуры, извлечение метода, переменной, константы и другие.
— В зависимости от выделенного фрагмента, IntelliJ IDEA предложит только те варианты рефакторинга, которые применимы к текущему элементу кода.
🔹 Как использовать
1. Выделите часть кода, которую хотите рефакторить (например, переменную, метод или класс).
2. Нажмите
Ctrl + Alt + Shift + T
.3. Выберите необходимый тип рефакторинга из появившегося меню с помощью стрелок → Enter.
4. Следуйте дальнейшим инструкциям IDE для завершения процесса рефакторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Проверьте свою внимательность и знание IT терминов. Пишите в комментариях сколько слов вам удалось найти и под спойлером указывайте сами слова.
Слова зашифрованы только по горизонтали. Не все слова связаны с Java, но все вам знакомы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Актуальные технологии в 2025 году
Анализ предстоящих трендов в IT-индустрии на 2025 год, включая ожидания от релизов Java 25 и .NET, а также влияние искусственного интеллекта на инструменты разработки и продукты.
🔹 Переезд в США — личный опыт
Личный опыт Java-разработчика, переехавшего в США по грин-карте. Статья будет полезна тем, кто задумывается о переезде или готовится к эмиграции. Она охватывает этапы от получения визы до адаптации на новом месте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Thread может находиться в одном из следующих состояний (Thread.State):
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
👍🏼 — One
🔥 — RuntimeException
👾 — Ошибка компиляции
⚡️ — null
🐸 Библиотека задач по Java
👍🏼 — One
🔥 — RuntimeException
👾 — Ошибка компиляции
⚡️ — null
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Java 24 что нового?
18 марта Oracle официально выпустила Java 24 — не-LTS релиз, но с весьма занятными новшествами. Среди 24 JEPов есть парочка, ради которых можно обновиться:
🔹JEP 484 – Class-File API
Вводит стандартный API для парсинга, генерации и трансформации Java class-файлов.
🔹 JEP 485 – Stream Gatherers
Новый API для кастомных промежуточных операций в стримах.
🔹 JEP 489 – Vector API (9-я инкубация)
Продолжает развитие векторного API, предоставляя более эффективные вычисления с использованием векторных инструкций процессора
🔹 JEP 491 – Synchronize Virtual Threads without Pinning
Улучшает работу виртуальных потоков, позволяя синхронизировать их без привязки к конкретным потокам-носителям.
🔗 Полный список фич
🐸 Библиотека джависта #свежак
18 марта Oracle официально выпустила Java 24 — не-LTS релиз, но с весьма занятными новшествами. Среди 24 JEPов есть парочка, ради которых можно обновиться:
🔹JEP 484 – Class-File API
Вводит стандартный API для парсинга, генерации и трансформации Java class-файлов.
🔹 JEP 485 – Stream Gatherers
Новый API для кастомных промежуточных операций в стримах.
🔹 JEP 489 – Vector API (9-я инкубация)
Продолжает развитие векторного API, предоставляя более эффективные вычисления с использованием векторных инструкций процессора
🔹 JEP 491 – Synchronize Virtual Threads without Pinning
Улучшает работу виртуальных потоков, позволяя синхронизировать их без привязки к конкретным потокам-носителям.
Please open Telegram to view this post
VIEW IN TELEGRAM
Механизм сборки мусора в JVM — это не просто “магия, которая чистит память”, а сложная система, работающая по поколениям, фазам и стратегиям.
Понимание его внутренней архитектуры важно, если вы хотите управлять производительностью, избегать утечек и эффективно настраивать параметры JVM.
🔹 Архитектура: как устроена куча (Heap)
Куча памяти делится на поколения:
Heap
├── Young Generation
│ ├── Eden Space
│ └── Survivor Spaces (S0, S1)
└── Old Generation (Tenured)
Eden — вновь созданные объекты.
Survivor — те, кто “выжил” после первой сборки.
Old Gen — объекты, пережившие несколько сборок, считаются “долгоживущими”.
Дополнительно есть Metaspace (с Java 8), где хранятся данные о классах.
🔹 Алгоритм работы GC: по фазам
1. Mark
GC начинает с “корневых” ссылок (стек, глобальные переменные) и помечает все достижимые объекты.
2. Sweep
Удаляются все немаркированные объекты — они считаются “мертвыми”.
3. Compact (в некоторых GC)
Уплотнение памяти: “живые” объекты перемещаются ближе друг к другу, чтобы избежать фрагментации.
🔹 Типы сборок
1. Minor GC
Запускается при заполнении Eden. Очищаются только молодые поколения. Быстро, но может происходить часто.
2. Major GC / Full GC
Включает Old Gen и Metaspace. Дорогая операция, может “заморозить” все потоки (stop-the-world pause).
🔹 Типы сборщиков и их принципы
— Serial GC: однопоточная сборка. Просто и медленно.
— Parallel GC: многопоточная сборка всех поколений. Высокая пропускная способность.
— G1 GC: делит кучу на регионы, параллельно собирает “Region Set”. Поддерживает предсказуемые паузы.
— ZGC: целиком конкурентный сборщик. Работает с огромными кучами (до терабайта), паузы <10 мс.
— Shenandoah: минимальные паузы за счёт почти полной конкуренции с пользовательскими потоками.
🔹 Как GC определяет, что объект мёртв?
GC не использует reference count. Он строит граф достижимости:
1. Начинает с “корней” (GC roots)
2. Если оттуда нельзя добраться до объекта — он считается мусором
3. Это позволяет избежать утечек при циклических ссылках
🔹 Советы по оптимизации
— Избегайте долгоживущих ссылок (static, ThreadLocal) без необходимости
— Используйте WeakReference, если хотите избежать удержания объекта GC
— Кэшируйте объекты осознанно — утечка через Map может быть незаметной
— Задавайте лимиты памяти (-Xms512m -Xmx1024m)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💾 Как выбрать стратегию кэширования: разбор 7 популярных алгоритмов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
➡️ Читать статью
🐸 Библиотека шарписта
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
👨🏻💻 Исследование IT-аудитории Proglib 2025: зарплаты, технологии, профессии
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
➡️ Вся статистика и детали — здесь
Библиотека программиста #свежак
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
Библиотека программиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎧 Что послушать — #подкаст
🔹 JavaHut News #1
Дата выпуска: 25 февраля 2025
Ведущие: Роман Меерсон и Евгений Никифоров
Продолжительность: 1 час 12 минут
Первый выпуск новостного формата от подкаста JavaHut — на котором идет обсуждение ключевых тем из последнего Java-дайджеста. Ведущие обсуждают тренды, технологии и важные изменения в экосистеме Java и смежных областях. Формат ориентирован на разработчиков, которые хотят не просто быть в курсе новостей, но и понимать их глубинный контекст.
🔹 Ключевые темы выпуска
00:02:32 — Обзор статьи Cay Horstmann: Java как скриптовый язык, Jupyter Kernel
00:09:26 — Тренды в Java-экосистеме на 2024 год
00:24:40 — Jakarta EE: прощание с EJB, судьба библиотек от RedHat
00:43:40 — SecureRandom: зачем он нужен и где используется
00:55:01 — Разработка Java-агентов и применение в ML
01:00:29 — Обновления вокруг DockerHub и последствия
🔗 Слушать выпуск на Spotify
🐸 Библиотека джависта #буст
🔹 JavaHut News #1
Дата выпуска: 25 февраля 2025
Ведущие: Роман Меерсон и Евгений Никифоров
Продолжительность: 1 час 12 минут
Первый выпуск новостного формата от подкаста JavaHut — на котором идет обсуждение ключевых тем из последнего Java-дайджеста. Ведущие обсуждают тренды, технологии и важные изменения в экосистеме Java и смежных областях. Формат ориентирован на разработчиков, которые хотят не просто быть в курсе новостей, но и понимать их глубинный контекст.
🔹 Ключевые темы выпуска
00:02:32 — Обзор статьи Cay Horstmann: Java как скриптовый язык, Jupyter Kernel
00:09:26 — Тренды в Java-экосистеме на 2024 год
00:24:40 — Jakarta EE: прощание с EJB, судьба библиотек от RedHat
00:43:40 — SecureRandom: зачем он нужен и где используется
00:55:01 — Разработка Java-агентов и применение в ML
01:00:29 — Обновления вокруг DockerHub и последствия
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☸️ CKAD 2025. Самый свежий гайд по сдаче сертификации Certified Kubernetes Application Developer
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
➡️ Читать статью
🐸 Библиотека devops'a
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
Please open Telegram to view this post
VIEW IN TELEGRAM