Найти в Дзене
Статьи Java

Статьи Java

Статьи по языку программирования Java
подборка · 120 материалов
Как преобразовать прокси-объект Hibernate в реальный объект сущности
В этом руководстве мы узнаем, как преобразовать прокси-объект Hibernate в реальный объект сущности. Сначала разберёмся, когда Hibernate создаёт прокси-объект, затем — зачем он нужен, и наконец смоделируем ситуацию, в которой возникает необходимость «распроксить» объект. Hibernate использует прокси-объекты для реализации ленивой загрузки (lazy loading). Чтобы лучше понять это, рассмотрим сущности PaymentReceipt и Payment: @Entity public class PaymentReceipt { ... @OneToOne(fetch = FetchType...
Экспериментальные сборщики мусора (Garbage Collectors) в JVM
В этом руководстве мы рассмотрим основные проблемы управления памятью в Java и необходимость постоянного поиска более эффективных решений. Основное внимание будет уделено новому экспериментальному сборщику мусора, представленному в Java, под названием Shenandoah, и его сравнению с другими сборщиками мусора. Сборщик мусора — это форма автоматического управления памятью, при которой среда выполнения, такая как JVM, управляет распределением и освобождением памяти для пользовательских программ. Существует...
Вычисление математического выражения в Java
В этом руководстве мы рассмотрим различные подходы к вычислению математических выражений в Java. Эта возможность может быть полезна в проектах, где необходимо обрабатывать математические выражения, представленные в виде строки. Сначала мы рассмотрим несколько сторонних библиотек и их применение. Затем увидим, как использовать встроенное API Java для выполнения этой задачи. exp4j — это библиотека с открытым исходным кодом, которая может использоваться для вычисления математических выражений и функций...
Является ли квадратный корень целым числом в Java
Совершенный квадрат — это число, которое можно выразить как произведение двух одинаковых целых чисел. В этой статье мы рассмотрим несколько способов определить, является ли целое число совершенным квадратом в Java. Также мы обсудим преимущества и недостатки каждого подхода, чтобы оценить их эффективность и определить, какой из них самый быстрый. Как известно, в Java есть два типа данных для представления целых чисел. Первый — это int, который занимает 32 бита, а второй — long, занимающий 64 бита...
Использование массива байтов в качестве ключа карты в Java
В этом руководстве мы узнаем, как использовать массив байтов в качестве ключа в HashMap. К сожалению, из-за особенностей работы HashMap сделать это напрямую не получится. Мы разберёмся, почему так происходит, и рассмотрим несколько способов решения этой проблемы. HashMap использует механизм хеширования для хранения и извлечения значений. Когда мы вызываем метод put(key, value), HashMap вычисляет хеш-код на основе метода hashCode() ключа. Этот хеш используется для определения "корзины", в которую...
Бинарный семафор против повторно входной блокировки (Reentrant Lock)
В этом руководстве мы рассмотрим бинарные семафоры и повторно входные блокировки (Reentrant Locks). Также мы сравним их между собой, чтобы понять, какая из них лучше подходит для различных ситуаций. Бинарный семафор обеспечивает механизм сигнализации для управления доступом к единственному ресурсу. Иными словами, бинарный семафор реализует взаимное исключение, позволяя только одному потоку одновременно входить в критическую секцию. Для этого он хранит только один доступный "разрешающий" токен. Следовательно,...