Module  jdk.management
软件包  com.sun.management

Class GarbageCollectionNotificationInfo

  • All Implemented Interfaces:
    CompositeDataView


    public class GarbageCollectionNotificationInfo
    extends Object
    implements CompositeDataView
    有关垃圾收集的信息

    当Java虚拟机完成垃圾回收操作时, GarbageCollectorMXBean发出垃圾收集通知发出的通知将包含有关内存状态的垃圾回收通知信息:

    • 用于执行收集的垃圾收集器的名称。
    • 垃圾收集器执行的动作。
    • 垃圾收集行为的原因。
    • 一个GcInfo对象,包含有关GC循环(开始时间,结束时间)和GC循环前后的内存使用情况的一些统计信息。

    CompositeData表示GarbageCollectionNotificationInfo对象被存储在userdata一个的notification 提供from方法将其从CompositeData转换为GarbageCollectionNotificationInfo对象。 例如:

          Notification notif;
    
          // receive the notification emitted by a GarbageCollectorMXBean and set to notif
          ...
    
          String notifType = notif.getType();
          if (notifType.equals(GarbageCollectionNotificationInfo.GARBAGE_COLLECTION_NOTIFICATION)) {
              // retrieve the garbage collection notification information
              CompositeData cd = (CompositeData) notif.getUserData();
              GarbageCollectionNotificationInfo info = GarbageCollectionNotificationInfo.from(cd);
              ....
          }
     

    GarbageCollectorMXBean发出的通知的类型是:

    • 字段详细信息

      • GARBAGE_COLLECTION_NOTIFICATION

        public static final String GARBAGE_COLLECTION_NOTIFICATION
        通知类型表示Java虚拟机已完成垃圾回收循环。 此通知由GarbageCollectorMXBean发出。 此通知类型的值为com.sun.management.gc.notification
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • GarbageCollectionNotificationInfo

        public GarbageCollectionNotificationInfo​(String gcName,
                                                 String gcAction,
                                                 String gcCause,
                                                 GcInfo gcInfo)
        构造一个 GarbageCollectionNotificationInfo对象。
        参数
        gcName - 用于执行收集的垃圾收集器的名称
        gcAction - 垃圾回收器执行的操作的名称
        gcCause - 垃圾回收行为的原因
        gcInfo - 提供有关GC循环统计信息的GcInfo对象
    • 方法详细信息

      • getGcName

        public String getGcName​()
        返回用于执行集合的垃圾收集器的名称
        结果
        用于执行收集的垃圾收集器的名称
      • getGcAction

        public String getGcAction​()
        返回垃圾收集器执行的操作
        结果
        由垃圾收集器执行的动作
      • getGcCause

        public String getGcCause​()
        返回垃圾收集的原因
        结果
        垃圾收集的原因
      • getGcInfo

        public GcInfo getGcInfo​()
        返回与最后垃圾收集相关的GC信息
        结果
        与最后垃圾收集相关的GC信息
      • from

        public static GarbageCollectionNotificationInfo from​(CompositeData cd)
        返回由给定的CompositeData表示的GarbageCollectionNotificationInfo对象。 给定的CompositeData必须包含以下属性:
        description
        Attribute Name Type
        gcName java.lang.String
        gcAction java.lang.String
        gcCause java.lang.String
        gcInfo javax.management.openmbean.CompositeData
        参数
        cd - CompositeData代表 GarbageCollectionNotificationInfo
        结果
        一个GarbageCollectionNotificationInfo通过表示对象cd如果cd不是null ; 否则为null
        异常
        IllegalArgumentException - 如果 cd不表示 GarbaageCollectionNotificationInfo对象。
      • toCompositeData

        public CompositeData toCompositeData​(CompositeType ct)
        描述从接口CompositeDataView复制

        返回对应于此对象中的值的CompositeData 返回的值通常应为CompositeDataSupport的实例,或通过writeReplace方法序列化为CompositeDataSupport的类。 否则,接收对象的远程客户端可能无法重构。

        Specified by:
        toCompositeData在接口 CompositeDataView
        参数
        ct - 预期的CompositeType的返回值。 如果返回值是cd ,然后cd.getCompositeType().equals(ct)应该是真实的。 通常这将是因为cd是一个CompositeDataSupport构建ct作为其CompositeType
        结果
        CompositeData