Java内存管理个人理解
来源:互联网 发布:淘宝怎么找类似店铺 编辑:程序博客网 时间:2024/05/17 08:58
1、Java的JVM从线程的角度来讲分为线程共享区和非线程共享区(即:线程私有区)。
线程共享区包含两个部分:Java方法区和Java堆。
线程私有区包含三个部分:程序计数器,Java栈,本地方法。
线程使用区的内容随着线程的结束而消失,线程共享区执行Java的垃圾回收,主要针对的是Java堆。
方法区域内存回收的目的主要针对常量池的回收和类的卸载。
2、Java方法区存储的内容是:
加载类的类定义数据,常量、静态变量。运行时常量池。
Java堆存储的内容是:JVM的内存数据区,JVM启动时候创建,专门用来保存对象的实例
Java堆中分配一定的内存来保存对象实例,实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型标记。
对象实例在 Java堆中分配好以后,需要在Stack中保存一个4字节的Heap 内存地址,用来定位该对象实例在Heap 中的位置,便于找到该对象实例,是垃圾回收的主要场所。java堆处于物理不连续的内存空间中,只要逻辑上连续即可。
Java栈存储的内容是:
Java栈也叫栈内存,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束就结束。
内容是:方法参数和局部变量,操作栈,动态链接、方法出口。
3、Java的堆垃圾回收机制
Java堆的内存分为4大块,1、创建区:即对象刚刚创建的区域,2、年轻区(2块区域):即经历过第一轮垃圾回收后还留存下来的对象会被转移到该区域,3、老年区:即在年轻区内经历过多次垃圾回收后还留存下来的对象会被转移到该区域。
- Java内存管理个人理解
- ios内存管理--个人理解
- OC 内存管理 --个人理解
- java内存管理-个人总结
- Java内存管理:深入Java内存区域(深入理解Java虚拟机的第2章内容,加上个人浅显理解)
- 【java】内存管理深入理解
- 深入理解Linux内核个人小结8---内存区管理
- 内存控制理解(个人)
- 关于java内存管理的一些理解
- Java内存管理:深入理解Java内存区域
- java堆与栈内存概念的个人理解
- java学习个人笔记---Java内存管理之java对象内存中的状态
- iOS内存管理个人总结
- C++内存管理个人见解
- 关于内存管理,理解
- 内存管理理解
- 内存管理的理解
- 关于理解内存管理
- ortp库移植到arm平台进行文件传输测试
- mysql主从复制
- 1006. Sign In and Sign Out (25)
- MySql存储过程及调用
- SQLServer实现Oracle中的translate函数
- Java内存管理个人理解
- java23种设计模式概览
- 三种LCA算法(二):Tarjan算法
- IDEA get/set/重写equals()、hashcode()\toString()等 方法快捷键
- Hibernate基本原理
- 遍历集合的三种方法
- 78 Subsets
- [Azure]使用Powershell统计ARM存储账号下容器中Blob的使用情况
- Android WebView 加载HTML代码