重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java代码冗余检查 冗余代码检测与处理

java内存溢出怎么解决?

第一对所有的代码包括页面中的java代码都进行一遍彻底的回顾检查,

创新互联建站主营汕尾网站建设的网络公司,主营网站建设方案,成都App定制开发,汕尾h5微信小程序开发搭建,汕尾网站营销推广欢迎汕尾等地区企业咨询

1.对那些静态(static)的对象要特别留神,特别是类型为Map,List,Set的,静态的变量会一直驻存在内存中,生命周期比较长,不会被垃圾器回收。

2.对于代码,要审查是否生成了大量的冗余的对象,还有一些逻辑业务处理的类,

算法是否过于复杂,调整算法,对于代码认真审查,再仔细重构一遍代码,能提高代码质量,提高程序运行稳定性。

3.Java中的内存溢出大都是因为栈中的变量太多了。其实内存有的是。建议不用的尽量设成null以便回收,多用局部变量,少用成员变量。

1),变量所包含的对象体积较大,占用内存较多。

2),变量所包含的对象生命周期较长。

3),变量所包含的对象数据稳定。

4),该类的对象实例有对该变量所包含的对象的共享需求。

4.在我的程序中对静态变量的优化后,使程序占用内存量至少提升了5k-10k。所以也不容忽视。

第二还有就是String类相关的东西:

1.字符串累加的时候一定要用StringBuffer的append方法,不要使用+操作符连接两个字符串。差别很大。而且在循环或某些重复执行的动作中不要去创建String对象,因为String对象是要用StringBuffer对象来处理的,一个String对象应该是产生了 3个对象(大概是这样:))。

2.字符串length()方法来取得字符串长度的时候不要把length放到循环中,可以在循环外面对其取值。(包括vector的size方法)。特别是循环次数多的时候,尽量把length放到循环外面。

int size = xmlVector.size();

for (int i = 2; i size; i++) {

。。。

}

3 写代码的时候处理内存溢出

try{

//do sth

....

}catch (outofmemoryerror e){//可以用一个共通函数来执行.

system.out.print (“no memory! ”);

system.gc();

//do sth again

....

} 4.对于频繁申请内存和释放内存的操作,还是自己控制一下比较好,但是System.gc()的方法不一定适用,最好使用finallize强制执行或者写自己的finallize方法。 Java 中并不保证每次调用该方法就一定能够启动垃圾收集,它只不过会向JVM发出这样一个申请,到底是否真正执行垃圾收集,一切都是个未知数。

JAVA代码如何用继承提取出重复代码,优化代码冗余

重新写个方法,把你选中的放进去,用到的时候调用下就好,重写写的方法最好是static修饰的,这样就能直接用类名调用了,比如

public class A{

public static void b(){

//这里放你那些代码

}

}

以后要用的话就是A.b()就可以用了

怎么知道代码中存在垃圾代码和冗余代码?

一个好的集成开发环境能告诉你,以开发java的IDEA为例:

1、声明却未使用的变量:

它会建议你删除该变量。

2、无用的初始值:

它也会建议你删除初始值。

3、不必要的变量:

它会建议直接返回就行,不需要定义额外的变量。

4、可以简化的if语句:

5、可以简化的for语句:

6、一些潜在的可能引起bug的地方:

将会引起空指针异常

没有检查泛型

7、重复代码:

重复的代码可以考虑合并成公共的方法。

还有太多例子我就不举例了,总之好的ide在开发过程中就能告诉我们很多潜在的问题,解决代码不规范的地方,像eclipse也有专门的插件来检查代码。

当然平时就养成好的开发习惯和好的代码规范,长期积累下来在开发过程中自己就能解决掉一大堆冗余代码。

java中的代码冗余和耦合有什么区别?请详细举例,谢谢

比如说两段代码A,B执行不同的功能,但是这两段代码里面需要用到相同的另一端代码C,如果A,B都要写C就显得麻烦,这时候就把C提取出来作为单独的部分调用这样就不显得冗余,因为只要写一遍,而前者要写两遍。耦合的话就是我定义A,B两个类(不是代码),但是B类里面的方法要用到A,比如要new一个A的对象,这样两个类就耦合了

望采纳


分享标题:java代码冗余检查 冗余代码检测与处理
当前URL:http://cqcxhl.cn/article/hhccjc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP