jvm
乖怪儿
最无奈的不是没有对象,而是明明有对象,程序还老是提示找不到对象。。O(∩_∩)O哈哈~
展开
-
jvm垃圾收集算法
jvm垃圾收集算法有:标记-清除算法,复制算法,标记-整理算法,分代收集算法。 1.标记-清除算法(Mark-Sweep) 最基础的收集算法是“标记-清除”(Mark-Sweep)算法。 算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 该算法之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而原创 2017-04-12 14:08:42 · 349 阅读 · 0 评论 -
jvm-类加载器
虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块成为“类加载器”。 从java开发人员的角度来看,绝大部分java程序都会使用到以下3种系统提供的类加载器。 启动类加载器(Bootstracp ClassLoader):这个类加载器负责将存放在\lib目录下,原创 2017-05-08 21:28:52 · 269 阅读 · 0 评论 -
JVM参数:-XX:ReservedCodeCacheSize
通过笨神的分享整理笔记: 这个参数主要设置codecache的大小,比如我们jit编译的代码都是放在codecache里的,所以codecache如果满了的话,那带来的问题就是无法再jit编译了,而且还会去优化。因此大家可能碰到这样的问题:cpu一直高,然后发现是编译线程一直高(系统运行到一定时期),这个很大可能是codecache满了,一直去做优化。 代码缓存默认大小: 可以通过在标准输原创 2017-07-13 12:40:44 · 33602 阅读 · 1 评论 -
JVM参数:-XX:StringTableSize
通过笨神的分享整理笔记: 常量池底层使用StringTable数据结构保存字符串引用,实现和HashMap类似,根据字符串的hashcode定位到对应的数组,遍历链表查找字符串,当字符串比较多时,会降低查询效率。 -XX:StringTableSize 在我们调用String.intern的时候会往hashtable里插入一项,这个table就是stringtable 使用最多的场景是序列化原创 2017-07-14 18:57:03 · 1706 阅读 · 0 评论 -
JVM参数:-XX:CompileCommand
通过笨神的分享整理笔记: 当你的系统可能会突然因为JVM的某个bug而crash掉,最头痛的crash是jit后的代码存在bug,这种问题非常难查,查起来也不是那么容易修复,修复可能带来更多的问题。 在crash文件里你会看到J这样的标记在调用方法前面,这表示这个方法目前用的是jit后的代码,如果发现进程crash在这种方法上的话,那可能是因为jit的bug导致的,不过也不一定完全是,之前我也还原创 2017-07-19 22:17:19 · 2775 阅读 · 0 评论