Obtem o tamanho atual da heap em bytes

long heapSize = Runtime.getRuntime().totalMemory();

Obtem o tamanho máximo da heap em bytes. A heap não pode ultrapassar este tamanho. Se o tamanho máximo for ultrapassado, será apresentado o erro OutOfMemoryException.

long heapMaxSize = Runtime.getRuntime().maxMemory();

Obtem memória livre na heap. O espaço livre irá aumentar após a chamado do garbage collection e diminuirá a medida que novos objetos são criados.

long heapFreeSize = Runtime.getRuntime().freeMemory();