
JVM
文章平均质量分 75
是Guava不是瓜娃
Welcome to the real world,it is suck but you gonna love it.
展开
-
使用浏览器来查看线程堆栈
使用浏览器来查看线程堆栈jstack命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump 或 javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。 生成线程快照的主要目的是定位线程出现长时间停顿的常见原因。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。JDK中,java.原创 2017-03-09 12:05:14 · 3793 阅读 · 0 评论 -
JVM(一)—Java内存模型
JVM(一)—Java内存模型Java虚拟机内存包括如下几个运行时数据区域:(图片来源:http://www.importnew.com/23792.html)程序计数器 虚拟机栈 本地方法栈 堆 方法区1 程序计数器—线程私有程序计数器是当前线程执行的字节码的行号指示器。程序计数器占用一块较小的内存,线程私有。为什么需要 程序计数器?因为Java虚拟机的多...原创 2017-07-22 16:46:02 · 586 阅读 · 0 评论 -
JVM(三)—垃圾回收算法及垃圾收集器
JVM(三)—垃圾回收算法及垃圾收集器一、哪些内存需要回收垃圾收集器主要回收堆内存和方法区的对象。程序计数器、虚拟机栈、本地方法栈3个区域是线程私有的,随线程而生,随线程而灭。所以方法结束或者线程结束时,内存自然就被回收了。Java堆和方法区中只有在运行时才知道创建哪些对象,所以内存的分配和回收都是动态的。堆区回收的主要是死亡的对象; 方法区回收的主要是废弃的常原创 2017-07-23 16:53:25 · 700 阅读 · 0 评论 -
JVM(四)—一道面试题搞懂JVM类加载机制
有这样一道面试题:class Singleton{ private static Singleton singleton = new Singleton(); public static int value1; public static int value2 = 0; private Singleton(){ value1++; ...原创 2017-07-05 19:35:20 · 33653 阅读 · 9 评论 -
JVM(二)—堆内存分析及对象的创建过程
JVM(二)—堆内存分析及对象的创建过程1 堆内存堆内存(Java Heap)是Java虚拟机管理的内存中最大的一块,被所有线程所共享。虚拟机启动时创建,存放对象实例和数组。Java堆中可以细分为:新生代和老年代。新生代:-Xmn由Eden区和Survivor区组成,比例是8:1,可通过-XX:SurvivorRatio = 8设置。 新生对象一般在Eden分配内存。Eden不...原创 2017-07-22 16:50:09 · 743 阅读 · 0 评论