Standard MBean

public interface MemoryMBean {
    public MemoryUsage getUsage();
}
public class Memory implements MemoryMBean {
    public MemoryUsage getMemoryUsage() {
         return memoryUsageSnapshot();
    }
    private static native MemoryUsage
            memoryUsageSnapshot();
    ...
}
 

MXBean

public interface MemoryMXBean {
    public MemoryUsage getUsage();
}
public class Memory implements MemoryMXBean {
    public MemoryUsage getMemoryUsage() {
         return memoryUsageSnapshot();
    }
    private static native MemoryUsage
            memoryUsageSnapshot();
    ...
}