没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
目录
1.虚拟机内存结构.......................................................................................................... 1
2.对象在内存中的布局.................................................................................................. 4
3.判断对象是否死亡...................................................................................................... 4
4.引用的 4 中情况.......................................................................................................... 5
5.垃圾收集算法............................................................................................................. 5
6.HotSpot 虚拟机算法实现............................................................................................ 6
7.如何在 GC 发生时让所有线程都要附近的安全点停下.............................................7
8.垃圾收集器................................................................................................................. 8
9.GC 日志...................................................................................................................... 10
10.内存分配................................................................................................................. 10
11.Class 类文件的结构................................................................................................. 11
12.类的生命周期.......................................................................................................... 14
13.类加载器................................................................................................................. 16
14.运行时栈帧的结构.................................................................................................. 18
15. 方法调用................................................................................................................ 20
16. 分派........................................................................................................................ 20
17.虚方法表................................................................................................................. 21
18.Java 内存模型(JMM).......................................................................................... 21
19.内存间的交互.......................................................................................................... 21
20.volale 变量............................................................................................................. 22
21.原子性..................................................................................................................... 23
22.可见性..................................................................................................................... 23
23.有序性..................................................................................................................... 24
24.先行发生原则.......................................................................................................... 24
25.Java 线程调度.......................................................................................................... 25
26.线程的状态............................................................................................................. 26
27.线程安全................................................................................................................. 27
28.线程安全的实现方法.............................................................................................. 28
29.锁优化..................................................................................................................... 29
30.编译优化技术.......................................................................................................... 31
1.虚拟机内存结构
线程私有:虚拟机栈,本地方法栈,程序计数器
线程共享:堆,方法区(包括运行时常量池)
1.1 程序计数器
当前程序锁执行的字节码行号指示器,记录下一条需要执行
的指令。
1.2 虚拟机栈
生命周期与线程相同,每个方法在执行时都会创建一个栈帧。
方法执行的过程,就是栈帧入栈到出栈的过程。
栈帧用于存放局部变量表,操作数栈,动态链接,方法出口
等信息。
局部变量表存放了编译期可知的基本数据类型和对象引用。
1.3 本地方法栈
为虚拟机使用到的 Nave 方法服务。
目前 HotSpot 虚拟机将本地方法栈和虚拟机栈合二为一。
1.4 堆
存放对象实例,所有线程共享。
1.5 方法区(永久代)
存放被虚拟机加载的类信息,常量,静态变量,即时编译器
编译后的代码等。
1.6 运行时常量池
方法区的一部分,用于存放编译期生成的各种字面量和符号
引用。
1.7 字面量,符号引用,直接引用
字面量:
通俗解释就是一个变量的值,但是这个值不能超过范围。
int a = 1; 1 是 a 的字面量
213738648 则不能是 int 的字面量,因为超出了 int 的范围。
符号引用:
以一组符号来描述引用的目标,符号可以是任何形式的
字面量,只要使用时能够无歧义的定位到目标即可。
直接引用:
直接指向目标的指针(类变量,类方法)。
相对偏移量(实例变量,实例方法)。
一个能间接定位到目标的句柄。
2.对象在内存中的布局
对象头(哈希码,GC 分代年龄,数据指针,如果是数组还会有
数组长度),实例数据,对齐填充
3.判断对象是否死亡
3.1 引用计数算法
每个对象添加一个计数器,引用它加 1,引用失效减 1,为 0 则
死亡,很难解决循环引用问题。
3.2 可达性分析算法
从 gc root 节点开始向下搜索,不可达则已死。
可作为 gc root 节点的情况:
3.2.1:虚拟机栈本地变量表引用的对象
3.2.2:方法区中类静态属性引用的对象
3.2.3:方法区中常量引用的对象
3.2.4:本地方法栈 nave 方法引用的对象
4.引用的 4 中情况
强引用,软引用,弱引用,虚引用(幽灵引用)
4.1 强引用:new 关键字,强引用还在,则不会被回收
4.2 软引用:发生内存溢出钱,会把这些软引用对象列入回收范
围
进行第二次回收时会将他们回收
4.3:弱引用:只能存活到下一次垃圾回收之前
4.4:虚引用:与对象的生存时间不发生关系,作用是在这个对
象被回收的时候,收到一个系统通知
5.垃圾收集算法
5.1:标记—清除 Mark-Sweep
过程:标记可回收对象,进行清除
缺点:标记和清除效率低,清除后会产生内存碎片
5.2:复制算法
过程:将内存划分为相等的两块,将存活的对象复制到另一块内
存,把已经使用的内存清理掉
剩余32页未读,继续阅读
weixin_45870870
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多机调度问题贪心算法:理论探索与实践应用.zip
- 探索tecreate:软件开发的未来之星.zip
- 打标机项目C#源码连接扫码
- 基于SSM的房屋租赁系统的设计与实现
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0