Вы можете посмотреть, как Hive делает это в HeapMemoryMonitor
классе , который вызывает метод MemoryPoolMXBean.setUsageThreshold()
после нескольких проверок.
Если вы хотите установить порог на 80%, вы должны рассчитать значение как:
MemoryPoolMXBean pool = ...
pool.setUsageThreshold((long) Math.floor(pool.getUsage().getMax() * 0.8));