
Java虚拟机
lingzhm
好记性不如烂博客,浸淫Java若干年
展开
-
Java虚拟机运行时数据区
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器(Program Counter Register)它是一块较小的内存空间,它转载 2015-04-16 15:45:25 · 1865 阅读 · 0 评论 -
Java堆和栈的区别(String类)
Java堆和栈的区别(String类) 堆与栈 Java的堆是一个运行时数据区,对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式地释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃转载 2015-03-07 22:24:23 · 821 阅读 · 0 评论 -
JVM加载class文件的原理机制
JVM加载class文件的原理机制1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中 2.java中的类大致分为三种: 1.系统类 2.扩展类 3.由程序员自定义的类 3.类装载方式,有两种 1.隐式装载, 程序在运行过程中当碰到通转载 2015-04-16 20:10:01 · 616 阅读 · 0 评论 -
Java虚拟机七种垃圾收集器比较
1、Serial收集器曾经是虚拟机新生代收集的唯一选择,是一个单线程的收集器,在进行收集垃圾时,必须stop the world,它是虚拟机运行在Client模式下的默认新生代收集器。2、Serial Old是Serial收集器的老年代版本,同样是单线程收集器,使用标记整理算法。3、ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生代收集器原创 2015-07-31 20:05:46 · 2732 阅读 · 0 评论 -
JVM性能调优
JVM调优工具Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。 JProfiler:商业软件,需要付费。功能强大。 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。 如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几转载 2015-08-29 16:04:20 · 610 阅读 · 0 评论 -
Java虚拟机垃圾回收过程
JVM堆中几乎放着Java世界中所有的对象实例,垃圾收集器在对堆内存进行回收前,第一件事情就是要确定这些对象有哪些还存活着,哪些已经死去(即不可能再被任何途径使用的对象)。在主流的商业程序语言中,Java和c#等都是使用根搜索算法(GC Roots Tracing)判定对象是否存活的。这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过原创 2015-08-18 12:57:49 · 1265 阅读 · 0 评论