刚开始学习Java的时候遇到内存图总是晕菜,但是我通过不断的学习,请教终于掌握了内存图,下面我就分享一下我对于内存图的理解
1,Java中内存的分类
java中的内存分为3种,分别是栈内存,堆内存,和方法区
2,各个内存中都可以放呢些内容呢?
方法区:1)存放我们的字节码文件即.class问价;2)存放常亮;3)所有用static修饰的变量,方法
栈内存:存放正在执行的方法(不执行不存放)以及方法中定义的变量
堆内存:存放引用数据类型,引用数据类型又包括数组,集合对象等,只要是new出来的东西都放在该内存中,包括里面定义的变量
3,Java中程序在内存中运行的顺序
1)字节码文件加载进方法区
2)main方法加载进栈内存
3)按照main方法中代码的先后顺序执行程序
如果main方法调用别的方法,其他方法就加载进栈并运行,运行完毕后弹出,继续执行main方法直到结束
如果方法中的代码中有new ***,就在堆内存中创建一个***
|
|