`

威风威风

 
阅读更多

1.

 

       //a 不为空 

  a=new Logic();

 

  很多人可能对此有异议,他们会认为新的对象会把旧的对象冲掉并且释放内存。这里面包含两个问题:1. 该段代码是先创建对象

 

然后再进行赋值操作的,也就是说在这期间有两个对象同时存在这就很可能会产生溢出。2. 这样做也会妨碍垃圾回收器的工作

 

  较好的写法如下:

 

         a=null; 

  a=new Logic();

 

2.

尽量避免在类的默认构造器中创建、初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费

很大一部份的内存溢出都是发生在构造函数中。内存使用的高峰期都是在构造函数中所以避开这个高峰能有效的防止溢出。建议最好

 

的办法是第一次使用时初始化。如下所示

 

         if (img==null){ 

  //初始化

 

  }

 

3.

尽量避免使用static变量,类内私有常量可以用final来代替

 

4.

Xms

初始Heap大小

Xmx

java heap最大值

Xmn

young generation的heap大小

 

5.

能用byte的就不用int,String

 

不要使用double

 

复制大量数据时用System.appaycopy()

避免使用泛型

 

l 不要重复初始化变量

 

默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、

 

long)设置成0,float和 double变成0.0,逻辑值设置成false

 

l 乘法和除法用移位 ,除法比乘法慢,所以用乘于倒数来代替除法

 

考虑下面的代码:

 

for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }

 

用移位操作替代乘法操作可以极大地提高性能。下面是修改后的代码:

 

for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics