写点什么

架构师训练营 - 第九周 - 总结

用户头像
sljoai
关注
发布于: 2020 年 08 月 05 日
架构师训练营-第九周-总结

JVM组成架构

  1. 

  1. 

  2. 每个环境的执行引擎会不一样;如何编写一个执行引擎呢?

  3. 程序计数寄存器是给线程使用的;

  4. Java字节码文件

  5. magic code

  6. 字节码执行流程

  7. 



  1. 

  1. 

  2. 怎么判断字节码是否编译过呢?

  3. 类加载的双亲委托模型

  4. 



  1. 

  1. 

  2. 加载信息存储在什么地方的呢?

  3. 自定义类加载器

  4. 作用

  5. 隔离加载类:同一个JVM中不同组件加载同一个类的不同版本;

  6. 如何编写呢?

  7. 扩展加载源

  8. 字节码加密:

  9. 堆 & 栈

  10. 堆中分配,栈中引用;

  11. 何为栈帧呢?结构如何?

  12. 方法区 & 程序计数器

  13.  

  14. 线程工作内存 & volatile

  15. volatile只保证可见性,不保证线程安全性;

  16. Java 运行环境

  17. 



  1. 

  1. 

  2. JVM 的垃圾回收

  3. 垃圾回收的几种办法

  4. 



  1. 

  1. 

  2. 清理

  3. 压缩

  4. 复制

  5. JVM分代垃圾回收

  6.  将对象分为新生代与老年代;

  7. 新生代什么时候会编程老年代呢?

  8. 在进行垃圾回收的时候会做标记的,将部分新生代对象添加到老年代中;

  9. JVM垃圾回收器算法

  10. 



  1. 

  1. 

  2. 并行回收器:大数据处理中的批处理;

  3. 并发回收器CMS:HTTP请求;

  4. G1垃圾回收内存管理机制

  5. 



  1. 

  1. 

Java启动参数



jps

jstat

  1. 查看垃圾回收情况

  2. jstat -gcutil [进程号] [时间间隔] [次数]

  3. 

  1. 

  1. 

jmap

  1. 输出内存中对象的工具

jstack

  1. jvm内的线程堆栈信息

jconsole



Java代码优化

合理并谨慎使用多线程

  1. 使用多线程的原则呢?

竞态条件与临界区



线程安全

  1. 对象逃逸?

思考题

  1. Java Web应用的多线程从哪儿来的?

  2. Servlet是线程安全的嘛?

ThreadLocal

  1. 



  1. 

  1. 

  2.  

Java内存泄漏

  1. 合理使用线程池和对象池

  2. 使用合适的Java容器类

Q&A

  1. Spring MVC中controller是线程安全的?

  2. controller是单例的;(待确认?!)

  3. service里面如果只有DAO,那么它也是单例的,无状态的;(无状态是指什么呢?!)

  4. 反推的话,controller是无状态的;

  5. 全部是无状态的,则是面向过程的;

  6. Java程序如何调用脚本呢?

  7. 如何查看JVM的堆区和方法区呢?

  8. 请简述JVM垃圾回收原理

  9.  如何标记垃圾对象?对象可达性标记

  10. 如何回收?清理、压缩、复制

  11. 如何进行分代垃圾回收呢?

  12. 三种垃圾回收算法:CMS、G1;



发布于: 2020 年 08 月 05 日阅读数: 55
用户头像

sljoai

关注

还未添加个人签名 2017.11.09 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-第九周-总结