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-страница затем может быть сброшена на диск фоновым процессом.
После коммита блокировка снимается.
Забавно, что операция чтения в итоге может вызвать целую цепочку операций записи на диск.
раться с новой возможностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👀2
Тюнинг производительности Spring Boot.
https://vladmihalcea.com/spring-boot-performance-tuning/
👉 Java Portal
https://vladmihalcea.com/spring-boot-performance-tuning/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4
JetBrains переносит возможности IntelliJ IDEA в другие редакторы.
Новое расширение Java & Kotlin by IntelliJ IDEA уже доступно в предварительной версии для VS Code и всех его форков, включая Cursor и Antigravity.
Возможности IntelliJ IDEA — теперь в любом редакторе, где вы работаете.🙂↔️
👉 Java Portal
Новое расширение Java & Kotlin by IntelliJ IDEA уже доступно в предварительной версии для VS Code и всех его форков, включая Cursor и Antigravity.
Возможности IntelliJ IDEA — теперь в любом редакторе, где вы работаете.
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
IntelliJ IDEA Goes LSP: Java and Kotlin Intelligence Comes to VS Code, Cursor, and Agentic Flows - The JetBrains Blog
It’s no secret that agentic development is changing how developers build software. As agents take on more and more of the implementation work, developers spend less and less time manually editing code
Spring Boot 4: проверка null-safety через JSpecify.
Более понятные контракты
Лучший статический анализ в IDE.
#SpringBoot4 #JSpecify
👉 Java Portal
Более понятные контракты
@Nullable / @NonNull.Лучший статический анализ в IDE.
#SpringBoot4 #JSpecify
Please open Telegram to view this post
VIEW IN TELEGRAM
Если достаточно долго работать с базами данных, рано или поздно столкнёшься с проблемами подключений или параллелизма.
В такой ситуации не стоит просто повышать лимиты в конфигурации. Лучше разобраться в архитектуре, чтобы понимать, почему это происходит и как исправить проблему оптимальным способом.
Эта статья от гениального человека — отличный разбор управления подключениями в Postgres и возможных решений.
Легко свести всё к особенностям Postgres с отдельным процессом на каждое соединение, но похожие проблемы могут возникать и в других базах данных, включая MySQL.
Часто ответ кроется в пуле подключений, но и он добавляет свою сложность, которую тоже важно понимать.
Статье уже 8 лет, но для Postgres она остаётся актуальной и в 2026 году.
Ссылка ниже.
https://brandur.org/postgres-connections
👉 Java Portal
В такой ситуации не стоит просто повышать лимиты в конфигурации. Лучше разобраться в архитектуре, чтобы понимать, почему это происходит и как исправить проблему оптимальным способом.
Эта статья от гениального человека — отличный разбор управления подключениями в Postgres и возможных решений.
Легко свести всё к особенностям Postgres с отдельным процессом на каждое соединение, но похожие проблемы могут возникать и в других базах данных, включая MySQL.
Часто ответ кроется в пуле подключений, но и он добавляет свою сложность, которую тоже важно понимать.
Статье уже 8 лет, но для Postgres она остаётся актуальной и в 2026 году.
Ссылка ниже.
https://brandur.org/postgres-connections
Please open Telegram to view this post
VIEW IN TELEGRAM
Используйте
Так не придётся несколько раз прогонять один и тот же поток данных.
Метод возвращает объект
Для
#Java #Streams
👉 Java Portal
Collectors.summarizingInt(), чтобы за один проход получить количество элементов, сумму, минимум, максимум и среднее значение.Так не придётся несколько раз прогонять один и тот же поток данных.
Метод возвращает объект
IntSummaryStatistics.Для
long и double есть аналогичные методы: summarizingLong() и summarizingDouble().#Java #Streams
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Чувак декомпилировал Java-игру, чтобы посмотреть, как она устроена внутри.
На выходе получил полностью обфусцированный код: вместо нормальных имён —
Но для LLM это почти идеальная задача. Она довольно быстро восстанавливает смысл кода, понимает связи между классами и объясняет, что именно происходит.
Такие задачи идеал для ИИ.
👉 Java Portal
На выходе получил полностью обфусцированный код: вместо нормальных имён —
$$1, $$2 и прочий мусор. Для человека разбирать такое вручную — боль.Но для LLM это почти идеальная задача. Она довольно быстро восстанавливает смысл кода, понимает связи между классами и объясняет, что именно происходит.
Такие задачи идеал для ИИ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Spring Boot 4: теперь лучше использовать
У него более удобный API в стиле
При необходимости добавьте
#SpringBoot4 #RestTestClient
👉 Java Portal
RestTestClient вместо TestRestTemplate.У него более удобный API в стиле
RestClient, он работает как с MockMvc, так и с реальным портом приложения.При необходимости добавьте
@AutoConfigureRestTestClient.#SpringBoot4 #RestTestClient
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Как настроить JPA и Hibernate в Spring Petclinic с помощью Hypersistence Optimizer:
https://vladmihalcea.com/spring-petclinic-hypersistence-optimizer/
👉 Java Portal
https://vladmihalcea.com/spring-petclinic-hypersistence-optimizer/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Типы классов в Java:
1. Concrete Class — обычный класс с полной реализацией методов.
2. Abstract Class — нельзя создать напрямую через
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
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 — класс, представляющий фиксированный набор констант.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
Связь: @devmangx
РКН: https://clck.ru/3H4WUg