Java 程序执行内存分析
2017-07-25 00:00
323 查看
摘要: Java 程序执行内存分析
工作两年了很少看源码,最近开始研究Java底层源码,深入了解Java,所以就把自己了解的共享出来,欢迎大家指正,接受批评。
Java代码运行时,内存分为两块:栈和堆:
”栈“存放局部变量,自动分配连续空间,后进先出。
”堆“存放new出来的对象(对象属性),而”堆“分配的空间是不连续的。
”堆“里面又开辟出来一块空间为”方法区(也是堆)“,方法区存放类的代码信息,静态变量,常量池。 看图:
栈里面存放的是new出来对象的名字(p,p2),两个名字保存的是对象在堆里面具体存放的地址,每new出来一个对象在堆里面都会为对像创造一个模板(id,name,age,hello),对象的属性保存的是方法区里面代码,常量池,静态变量的地址,方法区里面保存的是整个类的具体信息,同一个对象不管new出来多少,方法区里面的对象具体信息只有一个,每new出来一个对象都会在方法区寻找对象具体信息是否已经存在,如果存在直接调用,没存在就生成.
新手第一次发布,请指正。
工作两年了很少看源码,最近开始研究Java底层源码,深入了解Java,所以就把自己了解的共享出来,欢迎大家指正,接受批评。
Java代码运行时,内存分为两块:栈和堆:
”栈“存放局部变量,自动分配连续空间,后进先出。
”堆“存放new出来的对象(对象属性),而”堆“分配的空间是不连续的。
”堆“里面又开辟出来一块空间为”方法区(也是堆)“,方法区存放类的代码信息,静态变量,常量池。 看图:
栈里面存放的是new出来对象的名字(p,p2),两个名字保存的是对象在堆里面具体存放的地址,每new出来一个对象在堆里面都会为对像创造一个模板(id,name,age,hello),对象的属性保存的是方法区里面代码,常量池,静态变量的地址,方法区里面保存的是整个类的具体信息,同一个对象不管new出来多少,方法区里面的对象具体信息只有一个,每new出来一个对象都会在方法区寻找对象具体信息是否已经存在,如果存在直接调用,没存在就生成.
新手第一次发布,请指正。
相关文章推荐
- java——程序执行过程的内存分析
- Java程序执行内存分析(栈、堆、方法区)
- JAVA 程序执行过程中的内存分析。
- dos窗口下能编译java程序,但不能执行情况分析
- java 程序执行的 内存代码划分即 java执行过程中的内存管理
- java基础教程2---->程序执行过程映射到内存怎么变化
- Java程序运行内存分配分析
- Java程序开发中的内存分配情况分析
- Java程序开发中的简单内存分析
- Java程序内存分析:使用mat工具分析内存占用
- Jvisualvm 远程连接java程序 分析内存
- java程序执行内存处理过程
- java程序简单的内存分析
- JAVA程序内存溢出问题的分析
- Java程序内存分析:jdk自带的jmap能为我们带来什么
- 【Java程序内存溢出问题的分析】
- Java程序开发中的简单内存分析
- Java程序内存分析:使用mat工具分析内存占用
- Java程序执行过程分析
- Java程序内存分析:使用mat工具分析内存占用