JVM虚拟机,也就那么回事!(总结+绘图+流程+代码)

利用闲余时间,看视频,搜资料,参考+总结绘制出了下面的数据流图,流图内容包括:


(1)如何针对亿级流量的电商网站做JVM性能调优?

(2)什么是MinorGC,什么是FullGC,什么又是STW?

(3)新生代包括哪些空间,且如何写程序,借助jvisualvm工具查看程序的gc情况?

(4)什么样的对象会进入老年代?

(5)对象在内存中的结构是什么,Mark Word存储了哪些信息?

(6)如何描述JVM运行时数据区各部分空间与Java线程之间的关系和联系?

(7)Java程序是如何通过JVM虚拟机,一步步执行,最终得到用户想要的结果的?

(8)商用虚拟机除了Oracle的HotSpot外,还有哪些?

(9)程序计数器是否是线程私有的,它是用来干什么的,以及什么是JVM虚拟机栈的栈帧?

(10)什么是JMM?它的作用是什么?以及JMM模型如何描述主内存、工作内存和线程之间的关系?

(11)什么是CPU缓存? 缓存分哪几级,缓存的读写性能与缓存的大小是什么关系?

(12)什么是缓存行?如何解决缓存行对齐或伪共享问题?

(13)CPU是如何执行线程指令对数据进行读写的?

(14)Java如何保证多线程数据的可见性? volatile关键是否保证i++操作的原子性?

  (15) .... .... .... .... .......

 

分享链接:https://processon.com/view/5eee24c51e085326373836da


图中内容有待整理和完善,一些说的不清楚或画的不对的地方,后续会进行确认和修订,总之内容会不断扩充!

流程图内容只是Java技术架构体系中的冰山一角,要想翻越大山,不经历重重自我摧残和折磨,是看不到任何登顶的希望的!


话不多说,上几张图:

 

 


 

 


 

 


 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章