1.maxMemory
此方法返回的是java虚拟机(整个进程)从操作系统获得的最大内存大小,若在运行java程序时,没有设置-Xmx参数,则默认值为64m。若添加了-Xmx参数,则以参数后的数字为准。
2.totalMemory
此方法返回的是java虚拟机已经从操作系统获得的内存大小,即java虚拟机这个进程当时所占用的所有内存。若未设置-Xms参数,则java程序运行过程中内存总是慢慢地从操作系统中挖过来,用多少挖多少,直到maxMemory为止,基本上totalMemory是慢慢增大的。如果设置了-Xms参数,则程序会无条件从操作系统中挖得-Xms参数后的内存大小,然后在这些内存用的差不多的时候再去挖。
3.freeMemory
在没有设置-Xms的情况下,java程序是用多少挖多少,但java程序100%情况下会多挖一点,而这些多挖而没有用上的内存就是freeMemory,一般情况下此参数都较小,但若设置了-Xms,挖过来的内存可能大部分都没用上,这时freeMemory就会很大。