Java虚拟机
HelloWorld丶丶
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集算法
标记-清除算法标记阶段:通过可达性分析,标记出所有需要回收的对象。清除阶段:清除所有被标记的对象。两点不足:标记和清除两个过程的效率都不高标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。复制算法 将内存按容量划分为大小相等的两块,每次只使用其中的一块,当这一块的内存...原创 2018-02-26 19:37:02 · 159 阅读 · 0 评论 -
现在有一个进程挂起了,如何用工具查出原因
通过Javacore了解线程运行情况: Javacore,也可以称为“threaddump”或是“javadump”,它是 Java 提供的一种诊断特性,能够提供一份可读的当前运行的 JVM 中线程使用情况的快照。即在某个特定时刻,JVM 中有哪些线程在运行,每个线程执行到哪一个类,哪一个方法。 应用程序如果出现不可恢复的错误或是内存泄露,就会自动触发 Javacore 的生成。而为了性能问...转载 2018-03-02 17:27:44 · 2687 阅读 · 0 评论 -
JVM调优
JVM调优基本思路http://www.importnew.com/22336.html JVM调优工具http://www.importnew.com/23786.html转载 2018-02-27 19:14:11 · 207 阅读 · 0 评论 -
JConsole工具的使用
参考http://blog.csdn.net/libaolin198706231987/article/details/55057149转载 2018-02-27 19:02:07 · 1125 阅读 · 0 评论 -
JVM的线程状态及死锁
JVM的线程状态及如何排查死锁原因 http://blog.csdn.net/u014484649/article/details/27338819 VisualVM排查JAVA应用程序线程死锁 http://blog.csdn.net/chwshuang/article/details/44203537 使用 VisualVM 进行性能分析及调优 https://www.ibm.com...转载 2018-02-27 17:04:05 · 507 阅读 · 0 评论 -
JVM类加载器与双亲委派模式
参考http://blog.csdn.net/u011080472/article/details/51332866转载 2018-02-27 16:32:14 · 213 阅读 · 0 评论 -
JVM的类加载过程
参考http://blog.csdn.net/u013256816/article/details/50829596转载 2018-02-27 14:34:54 · 187 阅读 · 0 评论 -
用什么工具可以查出内存泄漏
MemoryAnalyzer:一个功能丰富的 JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。EclipseMAT:是一款开源的JAVA内存分析软件,查找内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于Eclipse RCP(Rich Client Platform),可以下载RCP的独立版本或者Eclipse的插件。JProbe:分析Java的内存泄漏。...转载 2018-02-27 13:07:45 · 843 阅读 · 0 评论 -
Java虚拟机内存的划分,每个区域的功能
参考这篇文章,https://www.cnblogs.com/whgk/p/6138522.html写的很全。转载 2018-02-27 13:01:35 · 738 阅读 · 0 评论 -
JVM垃圾收集器
参考http://blog.csdn.net/tjiyu/article/details/53983650这篇文章,写的很全。转载 2018-02-26 22:51:27 · 150 阅读 · 0 评论 -
MinorGC,MajorGC,FullGC
MinorGC: 绝大多数被创建的对象会被分配到新生代,由于大部分对象在创建后会很快变得不可达,所以很多对象被创建在新生代,然后消失。对象从新生代消失的过程称之为MinorGC。一般当Eden区的空间不够时,会触发MinorGC。 MajorGC: 老年代存储着一些生命周期长的对象。老年代所占空间比新生代大,发生在老年代上的GC比新生代少得多。对象从老年代消失的过程,称之为MajorGC。当...原创 2018-02-26 21:26:44 · 484 阅读 · 0 评论 -
可达性分析算法中,哪些对象可以作为GC Roots
在Java语言中,可作为GC Roots的对象包括下面几种: 1. 虚拟机栈(栈帧中的本地变量表)中引用的对象。 2. 方法区中类静态属性引用的对象。 3. 方法区中常量引用的对象。 4. 本地方法栈中JNI(即一般说的Native方法)引用的对象。...原创 2018-02-26 20:42:39 · 1915 阅读 · 0 评论 -
JVM如何GC,新生代,老年代,持久代,都存储哪些东西,以及各个区的作用
新生代: 大多数新生的对象在Eden区分配,当Eden区没有足够空间进行分配时,虚拟机就会进行一次MinorGC。在方法中new一个对象,方法调用完毕,对象就无用,这就是典型的新生代对象。(新生对象在Eden区经历过一次MinorGC并且被Survivor容纳的话,对象年龄为1,并且每熬过一次MinorGC,年龄就会加1,直到15,就会晋升到老年代)注意动态对象的判定:Survivor...原创 2018-02-26 20:27:08 · 2793 阅读 · 0 评论 -
Java内存区域与Java内存模型
Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有其用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的数据区域,而绿色部分代表的是每个线程的私有数据区域。 方法区(Method Area):方法区属于线程共享的内存区域,又称Non-Heap(非堆),主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,根据...转载 2018-02-25 15:09:43 · 4269 阅读 · 0 评论