内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要。本篇对Sun JVM 6.0的内存管理和垃圾回收做大概的描述。 1.内存管理 在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要...
分类:
编程语言 时间:
2015-04-18 12:56:11
阅读次数:
178
网上有很多文章通过分析来说明Java的性能优化的好的话是不输C++的,还有一些是通过一些实际的代码测试来说明,不过在一些测试中明显是作弊了本文不打算用长篇大论来论述,只是简单的说明一些真相为什么很少有人怀疑C/C++的效率,为什么被怀疑的总是Java,为什么怀疑Python,PHP..
分类:
编程语言 时间:
2015-04-15 15:01:52
阅读次数:
96
今天开始实战Java虚拟机之三:“虚拟机的工作模式”。总计有5个系列实战Java虚拟机之一“堆溢出处理”实战Java虚拟机之二“虚拟机的工作模式”实战Java虚拟机之三“G1的新生代GC”实战Java虚拟机之四“禁用System.gc()”实战Java虚拟机之五“开启JIT编译”新生代GC的主要工作是..
分类:
编程语言 时间:
2015-04-14 14:48:15
阅读次数:
184
新生代GC的主要工作是回收eden区和survivor区。一旦eden区被占满,新生代GC就会启动。新生代GC收集前后的堆数据如图5.6所示,其中E表示eden区,S表示survivor区,O表示老年代....
分类:
编程语言 时间:
2015-04-14 13:02:42
阅读次数:
151
Linkedlist与ArrayList的各种操作性能对比-单线程对比...
分类:
编程语言 时间:
2015-04-12 17:49:43
阅读次数:
146
1. 谨慎对待Java的循环遍历Java中的列表遍历可比它看起来要麻烦多了。就以下面两段代码为例:A:1234private final List _bars;for(Bar bar : _bars) { //Do important stuff}B:12345private final List _bars;for(int i = 0; i _bars.size(); i++) {Bar...
分类:
编程语言 时间:
2015-04-10 08:25:43
阅读次数:
209
一、通用篇 “通用篇”讨论的问题适合于大多数Java应用。 1.1 不用new关键词创建类的实例 用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。 ...
分类:
编程语言 时间:
2015-04-08 19:49:36
阅读次数:
200
今天开始实战Java虚拟机之二:“虚拟机的工作模式”。总计有5个系列实战Java虚拟机之一“堆溢出处理”实战Java虚拟机之二“虚拟机的工作模式”实战Java虚拟机之三“G1的新生代GC”实战Java虚拟机之四“禁用System.gc()”实战Java虚拟机之五“开启JIT编译”目前的Java虚拟机支持..
分类:
编程语言 时间:
2015-04-08 16:52:44
阅读次数:
212
一、类和对象使用技巧1、尽量少用new生成新对象用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢。在某些时候可复用现有对象。比如在进行大量String操作时,可用StringBuffer娄代替String类,以避免生成大量的对象。2、使用clone()方法生成新对象如果一...
分类:
编程语言 时间:
2015-04-07 21:27:15
阅读次数:
278