![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 82
speed847
这个作者很懒,什么都没留下…
展开
-
Java GC 算法总结
当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。除了释放没用的对象,垃圾收集也可以清除内存记录碎片。1、 引用计数法(Reference Counting Collector) 引用计数法是[b]唯一没有使用根集[/b]的垃圾回收的法,该算法使用引用计数器来区分存活对象和不再使用的对象。一般来说,堆中的每个对象对应一个引用计数器。当每一次创...原创 2009-04-23 13:43:24 · 167 阅读 · 0 评论 -
守护线程、非守护线程(用户线程)
1、 java命令 和 javaw命令 是怎么回事? 我现在的理解: java命令在执行一个class文件的时候,(1)首先要创建一个虚拟机实例 (2)虚拟机启动用户主线程 main()方法,这是非守护线程 (3)虚拟机(也可能是主线程)启动守护线程。比如 垃圾收集线程。(4)main()方法结束,并且由main()方法创建的用户线程也结束。也就是说系统中没有用户...原创 2009-05-06 06:17:23 · 88 阅读 · 0 评论 -
jstat, jps 等jvm监测工具
http://www.blogjava.net/chenpengyi/archive/2007/03/14/103771.html http://www.blogjava.net/stone2083/archive/2008/02/25/182081.html jvm监测工具介绍原创 2009-04-28 22:49:41 · 116 阅读 · 0 评论 -
深入探讨java类加载机制
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。正是因为 Java 的...原创 2009-04-27 13:03:27 · 99 阅读 · 0 评论 -
对Class.forName( ) 的理解
1、new关键字和 Class的newInstance( ) 方法的区别 (1)newInstance()是一个方法,而new是一个关键字(2)Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用new关键字生成对象没有这个限制。 2、动态加载的意义 A a = (A)Class.forName("package.A")...原创 2009-04-27 12:53:49 · 75 阅读 · 0 评论 -
ClassLoader引发的类型转换异常
Java的类型转换异常(ClassCastException),恐怕是开发中最常见的异常之一,比如你把一个本身为String的对象强行转换成List时,就会抛出此异常。当然,一般情况下这种错误很容易就从异常信息中发现原因并纠正,通常对于此类问题我们的想法就是:class文件相同,即字节码相同,那么实例化产生的对象肯定也会相同类型。但是,存在一些情况,会发生形如“把class1转换成class1却抛...原创 2009-04-24 14:40:25 · 118 阅读 · 0 评论 -
Java 中的内存泄漏 与 无意识的对象保留
(1)内存泄漏 和 无意识对象保留 JVM 不存在任何被证实的内存泄漏问题。垃圾收集器一般来说会精确的判断哪些对象可被收集,并且重新回收他们的内存空间。如果存在内存耗尽的错误,基本上是程序本身造成的。 C++没有垃圾收集机制。C++中存在真正的垃圾泄漏问题。而Java语言只有无意识的对象保留问题。 (2)内存泄漏 监测工具的工作原理系统达到一个稳定的状态,这个...原创 2009-04-24 14:33:41 · 159 阅读 · 0 评论 -
JVM 中对象的生命周期
一共七个阶段: 创建阶段(Creation) 应用阶段(Using) 不可视阶段(Invisible) 不可到达阶段(Unreachable) 可收集阶段(Collected) 终结阶段(Finalized) 释放阶段(Free)...原创 2009-04-24 14:31:21 · 91 阅读 · 0 评论 -
JVM体系结构 方法区详解
(1)类装载子系统 装载 连接 初始化(2)方法区。被所有线程共享。垃圾收集也会清理方法区中的无用类型对象。 a. 类型信息。类加载器加载类时,从类文件中提取出来。 类的完整有效名 父类...原创 2009-04-24 14:27:50 · 95 阅读 · 0 评论 -
[JVM]收藏的文章
主题:通过GC输出分析内存泄露问题原创 2009-04-24 00:18:21 · 77 阅读 · 0 评论 -
一次Java垃圾收集调优实战
1 资料JDK5.0垃圾收集优化之--Don't Pause(花钱的年华) 编写对GC友好,又不泄漏的代码(花钱的年华) JVM调优总结 JDK 6所有选项及默认值 2 GC日志打印 GC调优是个很实验很伽利略的活儿,GC日志是先决的数据参考和最终验证:-XX:+PrintGCDetails -XX:+PrintGCTimeStamps(G...原创 2009-04-24 00:05:31 · 68 阅读 · 0 评论 -
JAVA启动参数整理
-Xmx1024m java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 一.标准参数-client 设置jv...原创 2009-04-23 20:26:31 · 959 阅读 · 0 评论 -
JRockit 性能优化参数汇总
一.JRockit调优简介 JRockit是一个自适应的JVM,它能够自动调整自己去适应底层硬件,因此对它的调优主要集中在一些需要人工干预的参数上,比如说:需要划分多少RAM给JRockit使用等。JRockit有一组非标准的-X启动选项,我们可以用它来调节 JVM。JRockit有两组主要的子系统可以被优化--内存管理系统(包括垃圾回收)和线程系统。在内存管理子系统方面,有很多调优...原创 2009-04-23 15:43:20 · 240 阅读 · 0 评论 -
如何确定Java类是从哪个包加载的
ava的类装载器使用的是优先策略,加载类的时候先找到哪个就加载哪个。有时候我们做一个系统,当类库非常庞大的时候,类可能会出现冲突,也就是类路径中存在不同版本的两个相同的类,这往往给调试带来非常大的麻烦,我们可能修改了类,但由于类加载器却使用的是另外一个未被更新的类,这个时候就会丈二和尚摸不着头脑,一度使调试过程误入歧途。那么怎么来确定我当前所加载的类是位于哪个路径或者存在于哪个jar包当中呢?...原创 2009-06-04 12:29:35 · 558 阅读 · 0 评论