Runtime r = Runtime.getRuntime(); // amount of unallocated memory long free = r.freeMemory(); // total amount of memory available allocated and unallocated. long total = r.totalMemory(); // total amount of allocated memory long inuse = r.totalMemory() - r.freeMemory(); // max memory JVM will attempt to use long max = r.maxMemory(); // suggest now would be a good time for garbage collection System.gc();