Использование ЦП не является простым - java.lang.management через com.sun.management.OperatingSystemMXBean.getProcessCpuTime подходит близко (см. Превосходный фрагмент кода Патрика выше), но обратите внимание, что он дает только доступ ко времени, потраченному ЦП в вашем процессе. он не скажет вам о времени процессора, потраченном на другие процессы, или даже о времени процессора, потраченном на выполнение системных операций, связанных с вашим процессом.
например, у меня есть интенсивный по сети процесс Java - он работает только и процессор на 99%, но только 55% из них сообщается как «процессор процессора».
даже не заводите меня на «среднюю нагрузку», поскольку она почти бесполезна, несмотря на то, что это единственный элемент, связанный с процессором, в компоненте MX. лишь бы солнце в их редкой мудрости выставляло что-то вроде "getTotalCpuTime" ...
для серьезного мониторинга процессора SIGAR, упомянутый Мэттом, кажется лучшим выбором.
Runtime.getRuntime().freeMemory()
как указано в принятом ответе, НЕ дает вам объем свободной памяти.