「java冗余」java冗余代码
本篇文章给大家谈谈java冗余,以及java冗余代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java内存溢出怎么解决?
- 2、java中的代码冗余和耦合有什么区别?请详细举例,谢谢
- 3、JAVA代码如何用继承提取出重复代码,优化代码冗余
- 4、在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个。
- 5、java如何实现冗余数据的排重?比如,现在有大数量的请求字符串,我要过滤掉重复的数据,如何实现?
- 6、java中三个for循环嵌套查询,每个集合的size()大小不同?取值做判断,会产生许多冗余数据?如何避免?
java内存溢出怎么解决?
第一对所有的代码包括页面中的java代码都进行一遍彻底的回顾检查,
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中的代码冗余和耦合有什么区别?请详细举例,谢谢
比如说两段代码A,B执行不同的功能,但是这两段代码里面需要用到相同的另一端代码C,如果A,B都要写C就显得麻烦,这时候就把C提取出来作为单独的部分调用这样就不显得冗余,因为只要写一遍,而前者要写两遍。耦合的话就是我定义A,B两个类(不是代码),但是B类里面的方法要用到A,比如要new一个A的对象,这样两个类就耦合了
望采纳
JAVA代码如何用继承提取出重复代码,优化代码冗余
重新写个方法,把你选中的放进去,用到的时候调用下就好,重写写的方法最好是static修饰的,这样就能直接用类名调用了,比如
public class A{
public static void b(){
//这里放你那些代码
}
}
以后要用的话就是A.b()就可以用了
在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个。
如果项目允许,你为什么不在一开始的时候建立自己的Libary?或是将你用的jar包放入自制的libary.这样方便整理和查看!而且如果你的项目jar有冗余,证明项目开始的设计就有问题!抱歉你的问题无法解决,只是提点个人建议!
----------
OK,把你的包加入自己的libary,其他的删掉?毕竟不用的包较多吧
java如何实现冗余数据的排重?比如,现在有大数量的请求字符串,我要过滤掉重复的数据,如何实现?
把字符串和字符串出现的次数放到一个map当中,统计出现的次数,大于一次的就是有重复,根据重复次数把它们从map中移除
java中三个for循环嵌套查询,每个集合的size()大小不同?取值做判断,会产生许多冗余数据?如何避免?
这个三重循环肯定会降低性能。循环次数是66*22*20次。另外计算集合的大小应该放到循环外边声明,避免每次循环都重新计算其大小。如果你用的jdk版本是5.0以上,建议你用for-each循环结构。
改良的代码如下:循环次数是66+22+20
MapString, CallBars callBarMap = new HashMapString, CallBars();
int callBarsize = callBarsList.size();
for (int k = 0; k size; k++) {
map.put( callBarsList.get(k).getWeek() +","+callBarsList.get(k).getYear().intValue(), callBarsList.get(k));
}
MapInteger, Current currentMap = new HashMapInteger, Current();
int currentSize = currentList.size();
for (int k2 = 0; k2 currentSize; k2++){
currentMap.put(currentList.get(k2).getCurrentID(),currentList.get(k2));
}
int timeSize = timeList.size();
for (int j = 0; j timeSize; j++) {
int timeWeekMonth = timeList.get(j).getWeekendingmonth();
int timeWeekDay = timeList.get(j).getWeekendingday();
CallBars callBars =map.get(timeList.get(j).getWeek()+","+timeList.get(j).getYear().intValue);
if(callBars !=null){
Current current = currentMap.get(callBars.getId());
if(current!=null){
Integer count = callBars.getCount();
String description = callBars.getDescription();
String theDate = timeWeekMonth + "/" + timeWeekDay;
dataset.setValue(count, description, theDate);
}else{
String description=callBars.getDescription(); String theDate= timeWeekMonth+"/"+timeWeekDay;
dataset.setValue(0,description, theDate);
}
}
}
}
关于java冗余和java冗余代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。