所谓的内存图,就是告诉我们java虚拟机是分门别类地存放数据的,从而实现对内存和数据的管理,java把内存分为三大区域:方法区,堆区,栈区。其中每个区域中所存储的数据的生命周期和作用域是不同的,对于方法区而言,它是用于加载类文件,和存储静态成员的,它的生命周期和作用域最长,堆区是用于存储对象的,没创建一个对象都会在堆区中为该对象分配空间,至于栈区,它是虚拟机运行方法的地方,首先是main方法进栈,然后每调用一个方法该方法就压栈运行,当执行完以后,该方法就出栈了,即:栈区中只存储将要执行或正在执行的方法,这也就是为什么在方法中定义的局部变量的作用域和生命周期最短,因为一旦方法出栈,该局部变量也就不存在了。
|