Java Portal | Программирование
СтатистикаПрисоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg
- Последний пост
- 18:07
- Последнее чтение
- 14 авг.
- Постов за неделю
- 15
- Всего постов
- 74
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 851
- 1/48двое суток
- 975
- 1/72трое суток
- 1 051
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
Ещё один отличный плейлист по структурам данных и алгоритмам от pmavrin. https://youtube.com/playlist?list=PLrS21S1jm43igE57Ye_edwds_iL7ZOAG4&si=4mS5lXn3uxI-V2LM 👉 Java Portal
90% PostgreSQL в 2026 году сводится к этим 10 вещам. Всё остальное — в основном споры об расширениях. 1. MVCC + VACUUM Обновления создают мёртвые строки. Если autovacuum настроен плохо, таблицы и индексы раздуваются, а задержки постепенно растут неделями. 2. Индексы под реальные сценарии запросов Порядок колонок в составных индексах важен. Нужно понимать частичные и покрывающие индексы, а также почему ORM иногда незаметно приводит к полному сканированию таблицы. 3. Блокировки и DDL ALTER TABLE может заблокировать запись. Важно понимать режимы блокировок, очереди и безопасные приёмы вроде CREATE INDEX CONCURRENTLY и обновления данных небольшими партиями. 4. Уровни изоляции и аномалии Read Committed, Repeatable Read, Serializable. Пропавшие или дублирующиеся строки часто нужно разбирать через конкурентные транзакции, а не искать проблему только в коде. 5. Управление соединениями Слишком много соединений убивает CPU и память. Нужны PgBouncer, адекватные размеры пулов и контроль долгих транзакций в состоянии idle in transaction. 6. WAL, checkpoints и репликация Объём WAL напрямую влияет на ввод-вывод. Плохие настройки checkpoints вызывают скачки задержек, а отставание реплик ломает чтение с реплик и делает переключение при сбое рискованным. 7. Основы планировщика запросов EXPLAIN (ANALYZE, BUFFERS) — ваш отладчик. Нужно понимать оценки количества строк, типы JOIN и когда требуется ANALYZE или расширенная статистика. 8. Наблюдаемость, привязанная к реальным сбоям Следите за p95 задержкой, ожиданием блокировок, временными файлами, попаданиями в кэш, отставанием autovacuum и реплик. Добавьте журнал медленных запросов с нормальными порогами. 9. Резервные копии и проверка восстановления Базовые бэкапы плюс архивирование WAL — минимум. Главная ошибка — никогда не проверять восстановление и уже во время аварии выяснить, что не хватает ролей, расширений или восстановление занимает слишком долго. 10. Безопасность и права Минимально необходимые права, отдельные владельцы объектов, никакого superuser у приложения, регулярная смена учётных данных, ограничение сетевого доступа и закрытая на запись схема public в production. 👉 Java Portal
Типы классов в Java: 1. Concrete Class — обычный класс с полной реализацией методов. 2. Abstract Class — нельзя создать напрямую через new; может содержать абстрактные методы. 3. Final Class — нельзя наследовать. 4. Static Nested Class — статический вложенный класс внутри другого класса. 5. Inner Class — нестатический класс внутри другого класса. 6. Local Class — класс, объявленный внутри метода или другого блока. 7. Anonymous Class — класс без имени, обычно используется для одноразовой реализации. 8. Singleton Class — класс, спроектированный так, чтобы существовал только один его экземпляр. 9. POJO — простой Java-класс без специальных требований к наследованию или фреймворкам. 10. Record Class — компактная форма класса для хранения данных; появилась как предварительная возможность в Java 14. 11. Enum Class — класс, представляющий фиксированный набор констант. 👉 Java Portal
Как настроить JPA и Hibernate в Spring Petclinic с помощью Hypersistence Optimizer: https://vladmihalcea.com/spring-petclinic-hypersistence-optimizer/ 👉 Java Portal
Spring Boot 4: теперь лучше использовать RestTestClient вместо TestRestTemplate. У него более удобный API в стиле RestClient, он работает как с MockMvc, так и с реальным портом приложения. При необходимости добавьте @AutoConfigureRestTestClient. #SpringBoot4 #RestTestClient 👉 Java Portal
Чувак декомпилировал Java-игру, чтобы посмотреть, как она устроена внутри. На выходе получил полностью обфусцированный код: вместо нормальных имён — $$1, $$2 и прочий мусор. Для человека разбирать такое вручную — боль. Но для LLM это почти идеальная задача. Она довольно быстро восстанавливает смысл кода, понимает связи между классами и объясняет, что именно происходит. Такие задачи идеал для ИИ. 👉 Java Portal
Используйте Collectors.summarizingInt(), чтобы за один проход получить количество элементов, сумму, минимум, максимум и среднее значение. Так не придётся несколько раз прогонять один и тот же поток данных. Метод возвращает объект IntSummaryStatistics. Для long и double есть аналогичные методы: summarizingLong() и summarizingDouble(). #Java #Streams 👉 Java Portal
Если достаточно долго работать с базами данных, рано или поздно столкнёшься с проблемами подключений или параллелизма. В такой ситуации не стоит просто повышать лимиты в конфигурации. Лучше разобраться в архитектуре, чтобы понимать, почему это происходит и как исправить проблему оптимальным способом. Эта статья от гениального человека — отличный разбор управления подключениями в Postgres и возможных решений. Легко свести всё к особенностям Postgres с отдельным процессом на каждое соединение, но похожие проблемы могут возникать и в других базах данных, включая MySQL. Часто ответ кроется в пуле подключений, но и он добавляет свою сложность, которую тоже важно понимать. Статье уже 8 лет, но для Postgres она остаётся актуальной и в 2026 году. Ссылка ниже. https://brandur.org/postgres-connections 👉 Java Portal
Spring Boot 4: проверка null-safety через JSpecify. Более понятные контракты @Nullable / @NonNull. Лучший статический анализ в IDE. #SpringBoot4 #JSpecify 👉 Java Portal
JetBrains переносит возможности IntelliJ IDEA в другие редакторы. Новое расширение Java & Kotlin by IntelliJ IDEA уже доступно в предварительной версии для VS Code и всех его форков, включая Cursor и Antigravity. Возможности IntelliJ IDEA — теперь в любом редакторе, где вы работаете. 🙂↔️ 👉 Java Portal
Тюнинг производительности Spring Boot. https://vladmihalcea.com/spring-boot-performance-tuning/ 👉 Java Portal
видео или голосовое, без подписи
SELECT FOR UPDATE в PostgreSQL на самом деле выполняет запись. На heap-странице Postgres у каждого tuple есть заголовок с метаданными этой записи. Когда транзакция выполняет SELECT FOR UPDATE, у найденных строк обновляется заголовок: они помечаются как заблокированные, а в xmax записывается идентификатор транзакции, которая установила блокировку. В частности, в заголовке infomask выставляются два бита: HEAP_XMAX_EXCL_LOCK и HEAP_XMAX_LOCK_ONLY. Из-за этого страница становится dirty, а изменение также попадает в WAL. Позже WAL может быть отправлен на standby-реплику. Сама dirty-страница затем может быть сброшена на диск фоновым процессом. После коммита блокировка снимается. Забавно, что операция чтения в итоге может вызвать целую цепочку операций записи на диск. раться с новой возможностью. 👉 Java Portal
Лучшие инженеры не изучают распределённые системы по поверхностным пересказам. Они сразу обращаются к фундаментальным научным статьям. Чтение таких работ помогает понять, почему системы спроектированы именно так, а не просто научиться ими пользоваться. Вот пять классических статей всех времён, которые должен прочитать каждый разработчик. 1. The Google File System (2003) Почему стоит прочитать: статья изменила подход всей индустрии, предложив считать отказ компонентов нормой, а не исключением. В ней описано, как построить масштабную отказоустойчивую распределённую систему хранения данных на базе недорогого массового оборудования, оптимизировав её под интенсивную последовательную дозапись вместо произвольной записи. Ссылка: https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf 2. Dynamo: Amazon’s Highly Available Key-Value Store (2007) Почему стоит прочитать: исчерпывающий разбор того, как пожертвовать согласованностью ради высокой доступности — AP в теореме CAP. В статье изложены ключевые паттерны, лежащие в основе масштабируемых NoSQL-хранилищ: консистентное хеширование, векторные часы, gossip-протоколы и настраиваемый кворум для операций чтения и записи. Ссылка: https://allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf 3. In Search of an Understandable Consensus Algorithm (Raft) (2014) Почему стоит прочитать: Paxos печально известен тем, насколько сложно его понять и корректно реализовать, тогда как Raft делает концепцию реплицируемых конечных автоматов более доступной. Алгоритм разбивает задачу консенсуса на отдельные подзадачи, которые легко анализировать: выбор лидера, репликацию журнала и обеспечение безопасности. Ссылка: https://raft.github.io/raft.pdf 4. Spanner: Google’s Globally-Distributed Database (2012) Почему стоит прочитать: статья показывает, как добиться строгой сериализуемости и внешней согласованности между дата-центрами по всему миру. Секрет — API Google TrueTime, ограничивающий неопределённость времени с помощью синхронизированных GPS-приёмников и атомных часов. Ссылка: https://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf 5. Time, Clocks, and the Ordering of Events in a Distributed System Почему стоит прочитать: на физическое время нельзя полагаться при работе с независимыми узлами. Лэмпорт вводит логические часы и фундаментальное отношение «произошло до» (happened-before), лежащее в основе упорядочивания событий в современных распределённых сетях. Ссылка: https://amturing.acm.org/p558-lamport.pdf 👉 Java Portal