Spec-Zone.ru › OpenJDK 27

Класс MemoryNotificationInfo

java.lang.Object
java.lang.management.MemoryNotificationInfo
public class MemoryNotificationInfo extends Object
Информация об уведомлении о памяти.

Уведомление о памяти отправляется интерфейсом MemoryMXBean, когда виртуальная машина Java обнаруживает, что использование памяти в пуле памяти превышает пороговое значение. Отправленное уведомление будет содержать информацию об уведомлении о памяти для обнаруженного условия:

  • Имя пула памяти.
  • Использование памяти в пуле памяти на момент создания уведомления.
  • Число случаев превышения порогового значения использования памяти на момент создания уведомления. Для уведомлений о пороговом значении использования это число будет соответствовать usage threshold count. Для уведомлений о пороговом значении сбора это число будет соответствовать collection usage threshold count.

Объект CompositeData, представляющий объект MemoryNotificationInfo, сохраняется в user data объекта notification. Метод from позволяет преобразовать CompositeData в объект MemoryNotificationInfo. Например:

     Notification notif;

     // receive the notification emitted by MemoryMXBean and set to notif
     ...

     String notifType = notif.getType();
     if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED) ||
         notifType.equals(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED)) {
         // retrieve the memory notification information
         CompositeData cd = (CompositeData) notif.getUserData();
         MemoryNotificationInfo info = MemoryNotificationInfo.from(cd);
         ....
     }

Типы уведомлений, отправляемых MemoryMXBean:

  • usage threshold exceeded notification.
    Это уведомление отправляется, когда использование памяти в пуле памяти увеличивается и достигает или превышает пороговое значение использования. Последующее пересечение порогового значения использования не вызывает новых уведомлений, пока использование памяти не станет меньше этого порогового значения.
  • collection usage threshold exceeded notification.
    Это уведомление отправляется, когда использование памяти в пуле памяти становится равным или превышает пороговое значение использования после сборки после того, как виртуальная машина Java предприняла усилия по освобождению объектов, которые больше не используются в этом пуле памяти.
Начиная с:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED
Тип уведомления, обозначающий, что использование памяти в пуле памяти больше или равно пороговому значению использования после сборки после того, как виртуальная машина Java предприняла усилия по освобождению объектов, которые больше не используются в этом пуле памяти.
static final String MEMORY_THRESHOLD_EXCEEDED
Тип уведомления, обозначающий, что использование памяти в пуле памяти достигло или превысило пороговое значение использования.

Краткое описание конструкторов

Конструктор Описание
MemoryNotificationInfo(String poolName, MemoryUsage usage, long count)
Создает объект MemoryNotificationInfo.

Краткое описание методов

Модификатор и тип Метод Описание
static MemoryNotificationInfo from(CompositeData cd)
Возвращает объект MemoryNotificationInfo, представленный заданным значением CompositeData.
long getCount()
Возвращает число случаев превышения порогового значения использования памяти на момент создания уведомления.
String getPoolName()
Возвращает имя пула памяти, вызвавшего это уведомление.
MemoryUsage getUsage()
Возвращает использование памяти в пуле памяти на момент создания этого уведомления.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Проверяет, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарел, будет удален: этот элемент API может быть удален в будущей версии.
Финализация признана устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка времени.

Подробное описание полей

MEMORY_THRESHOLD_EXCEEDED

public static final String MEMORY_THRESHOLD_EXCEEDED
Тип уведомления, обозначающий, что использование памяти в пуле памяти достигло или превысило пороговое значение использования. Это уведомление отправляется интерфейсом MemoryMXBean. Последующее пересечение порогового значения использования не вызывает новых уведомлений, пока использование памяти не станет меньше этого порогового значения. Значение этого типа уведомления: java.management.memory.threshold.exceeded.
См. также:
  • Значения констант полей

MEMORY_COLLECTION_THRESHOLD_EXCEEDED

public static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED
Тип уведомления, обозначающий, что использование памяти в пуле памяти больше или равно пороговому значению использования после сборки после того, как виртуальная машина Java предприняла усилия по освобождению объектов, которые больше не используются в этом пуле памяти. Это уведомление отправляется интерфейсом MemoryMXBean. Значение этого типа уведомления: java.management.memory.collection.threshold.exceeded.
См. также:
  • Значения констант полей

Подробное описание конструкторов

MemoryNotificationInfo

public MemoryNotificationInfo(String poolName, MemoryUsage usage, long count)
Создает объект MemoryNotificationInfo.
Параметры:
poolName — имя пула памяти, вызвавшего это уведомление.
usage — использование памяти в пуле памяти.
count — счетчик превышений порогового значения.

Подробное описание методов

getPoolName

public String getPoolName()
Возвращает имя пула памяти, вызвавшего это уведомление. Использование памяти в пуле памяти превысило пороговое значение.
Возвращает:
имя пула памяти, вызвавшего это уведомление.

getUsage

public MemoryUsage getUsage()
Возвращает использование памяти в пуле памяти на момент создания этого уведомления.
Возвращает:
использование памяти в пуле памяти на момент создания этого уведомления.

getCount

public long getCount()
Возвращает число случаев превышения порогового значения использования памяти на момент создания уведомления. Для уведомлений о пороговом значении использования это число будет соответствовать threshold count. Для уведомлений о пороговом значении сбора это число будет соответствовать collection usage threshold count.
Возвращает:
число случаев превышения порогового значения использования памяти на момент создания уведомления.

from

public static MemoryNotificationInfo from(CompositeData cd)
Возвращает объект MemoryNotificationInfo, представленный заданным значением CompositeData. Заданное значение CompositeData должно содержать следующие атрибуты:
Атрибуты и типы, содержащиеся в заданном CompositeData
Имя атрибута Тип
poolName java.lang.String
usage javax.management.openmbean.CompositeData
count java.lang.Long
Параметры:
cd — CompositeData, представляющее MemoryNotificationInfo
Возвращает:
объект MemoryNotificationInfo, представленный значением cd, если cd не равно null; в противном случае — null.
Вызывает исключение:
IllegalArgumentException — если cd не представляет объект MemoryNotificationInfo.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API