《深入理解java虚拟机》知识总结

废话不多说直接上图

 

  1. java文件经过java编译器的解析与填充符号表,注解过程,分析与字节码生成,形成类文件类文件格式。类文件格式的详细内容可参见我的博客“类文件格式”
  2. 类文件在有且仅有的5种类必须被初始化情况(这5种情况会在以后的文章中详细解释)的时候会通过委派模型立即加载,初始化前必须要经历加载,验证,准备这几个步骤,而解析步骤由于java的运行时绑定特点可能会在初始化之后进行,类信息会被加载到方法区中。
  3. 执行引擎通过解释执行和编译执行的方式对字节码文件进行处理,输出执行结果。执行引擎通过控制栈帧的方式控制虚拟机栈;执行引擎的方法调用的任务是确定被调用方法的版本,解析和分派是确定重载和重写的方法的版本的方法,java也在jdk7后对动态类型语言进行了支持。
  4. 被多次调用的代码和被多次执行的循环体,这两类"热点代码"在触发编译的触发条件的阈值后,会触发编译,编译会对代码进行优化,使代码的执行效率更强,而解释执行做为编译执行在激进优化时的一个“逃生门”(异常的解决手段)。
  5. 而代码在运行过程中的垃圾则有java的垃圾回收系统,监管和控制,当无法控制时则发生内存的溢出(溢出的情况可参见“java内存区域与内存溢出异常总结”)。垃圾回收系统根据可达性分析算法判断对象是否需要回收,然后通过可配置的垃圾回收算法对内存垃圾进行回收(垃圾回收算法可参见“垃圾算法回收总结”)。
  6. 用户可以通过虚拟机的性能监控和故障处理功能,对虚拟机进行监控和故障的分析处理。
  7. 而由于线程共享的数据存在同步的问题,就引发了线程的安全问题,就会有线程安全的实现方案的探索和对锁的各种优化。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值