JVM
会coding的厨子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM虚拟机运行数据区
1、运行时数据区: 线程私有:(虚拟机栈,本地方法栈,程序计数器) 线程共有:方法区,堆虚拟机栈:局部变量表(数据基本类型、对象引用类型reference(指向对象地址的指针))、操作数栈、动态链接、方法出口信息等。本地方法栈:使用的native方法。2、堆:对象实例,和数组都要在堆上分配内存,可以分为新生代和老年代,新生代又分为:Eden 、form survi...原创 2019-06-21 10:09:17 · 153 阅读 · 0 评论 -
垃圾收集器与内存分配策略
1、垃圾回收只考虑堆和方法区回收方法区:回收废弃常量和无用的类对象存活判定算法:1、引用计数法,缺点:很难解决循环引用的问题。2、可达性分析算法可以作为GCRoots的对象: 1、虚拟机栈中的引用对象;2、方法区中类静态属性的引用对象;3、方法区中常量引用的对象;4、本地方法中的JNI引用对象;引用的类型: 1、强引用:Objectob...原创 2019-06-21 10:13:17 · 172 阅读 · 0 评论 -
类加载机制
类的生命周期: 1、加载 2、验证(验证Class文件的字节流是否符合虚拟机要求) 3、准备(将类变量分配内存并设置初始值) 4解析 5初始化 6、使用 7、卸载什么时候进行类的初始化:有且只有这五种方式,对一个类的主动引用 1、遇到new、getstatic、putstatic、invokstatic这四条字节码指令时,如果类没有进行初始化,则需要先触发其初始化,四条...原创 2019-06-21 10:17:09 · 173 阅读 · 0 评论 -
JVM调优
JVM调优:1、 减少使用全局变量和大对象2、设置新生代的大小和老年代的大小(默认堆最大物理内存的1/4)3、选择合适的垃圾回收器(如果回收停顿时间优先的可以采用(parnew和CMS(标记清除,会有内存碎片,效率高)),如果吞吐量优先可以采用,parallelScavenge)(复制算法)和parallelOld(标记整理,效率低))4、 堆栈大小默认为1M。可以后期优化...原创 2019-06-21 10:18:41 · 238 阅读 · 0 评论
分享