java虚拟机
2019-11-27 10:09:39 0 举报
AI智能生成
java虚拟机介绍
作者其他创作
大纲/内容
java虚拟机数据类型
byte
short
int
long
float
double
char
Object
垃圾收集算法
标记-清除
复制算法
标记-整理
分代收集
新生代
每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选择复制算法,只需要付出少量存活对象的复制成本就可以完成收集
老年代
在老年代中因为对象存活率高、没有额外空间对它进行分配担保,就必须使用标记-清理或者标记-整理来进行回收
内存分配和回收策略
对象优先在Eden分配
大对象直接进入老年代
长期存活的对象将进入老年代
性能监控和故障处理
jdk的命令行工具
jps
jstat
jinfo
jmap
jhat
jstack
jdk可视化工具
jconsole
visualvm
虚拟机类加载机制
类加载过程
加载
加载时虚拟机完成3件事
通过一个类的全限定名来获取定义此类的二进制自己流
将 这个字节流所代表的静态存储结构转化为方法区 的运行时数据结构
在内存中生成一个代表这个 类的 java.lang.Class对象,作为方法区这个类的各种数据 访问入口
二进制流的获取
从ZIP包中读取
从网络中读取
运行时计算生成,这种场景使用得最多就是动态代理技术,在 java.lang.reflect,Porxy中,即使使用ProxyGenerateProxyClass来为特定接口生成形式为"*$Proxy"的代理类的二进制字节流。
由其他文件生成,典型场景是JSP应用,即由JSP文件生成对应的Class类
验证
准备
解析
初始化
使用
卸载
类加载器
双亲委派模型
启动类加载器
扩展类加载器
应用程序类加载器
双亲委派的工作过程
破坏双亲 委派
线程上下文类加载器
详细描述
虚拟机字节码执行引擎
运行时栈帧结构
局部变量表
操作数栈
动态连接
方法返回地址
附加信息
方法调用
解析
分派
动态类型语言支持
基于栈的字节码解释执行引擎
字节码生成与动态代理
字节码类库
javassist
CGLib
ASM
动态代理
Proxy
InvocationHandler
ProxyGenerator.generateProxyClass()
0 条评论
下一页