在java中,分为java程序,虚拟机,操作系统三个部分,java程序与虚拟机交互,虚拟机与操作系统交互,这就保证了java的平台无关性,三者运行原理是:
1.程序运行前:java虚拟机向操作系统请求一定的内存空间,作为初始内存空间;之后程序运行中所需的内存都是从这块内存空间划分的
2.程序运行中:java程序一直向虚拟机申请内存,当程序所需的内存空间超过初始内存空间时,java虚拟机会再次向操作系统申请更多的内存供程序使用
3.内存溢出:java程序继续运行,当java虚拟机所申请的内存达到了所规定的最大内存,但是程序还需要更多的内存,这时会出现内存溢出的错误。
由此,我们知道java程序所用的内存由java虚拟机进行管理、分配。java虚拟机规定了java程序的初始内存空间和最大内存空间。