①双线路双网卡双网关如何共存 ②双网卡能同时使用
2010-07-28 13:36
295 查看
1.循环优化
缺:
此种方式会一直去执行alist.size()方法,带来性能消耗,改为
2.循环内不要创建对象
缺;
这种做法会在内存中保存N份这个对象的引用//会浪费大量的内存空间,改为
3. 什么样的对象可以将其认定为不可视阶段呢?举个例子吧,在try{...}catch(Exception){...}代码中,如果在try的代码块中声明了一个obj,那么当整个 try{...}catch(Exception){...}代码段执行完毕以后这个obj实际上就已经属于不可视阶段了。
所以,应该采用如下方式
4.少用new创建对象
用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。
缺:
在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单。例如,下面是Factory模式的一个典型实现:
改为
当new创建对象不可避免时,注意避免多次的使用new初始化一个对象。 尽量在使用时再创建该对象。
缺
改为
5.乘法和除法考虑
缺:
改为:
6.尽量多的使用stringbuffer
7清除Session
通常情况,当达到设定的超时时间时,同时有些Session没有了活动,服务器会释放这些没有活动的Session,.. 不过这种情况下,特别是多用户并访时,系统内存要维护多个的无效Session。
当用户退出时,应该手动释放,回收资源,实现如下:
NOTE:堆内存是在JVM启动的时候创建,堆内存分为新对象与老对象。对于新对象好像会分三个区域。当优先级最高的区域的堆栈满了以后JVM将会进行测试,测试内容是那些对象不可到达,不可到达的对象将会放入到老对象区域。同时JVM会将所有对象拷贝到另外两个区域中,然后经过一段时间依然没有引用的对象会进入老对象区域。对于老对象区域而言基本上就是等待被GC回收的对象了。
缺:
List alist=uSvr.getUserinfoList(); for(int i=0;i<alist.size();i++){ }
此种方式会一直去执行alist.size()方法,带来性能消耗,改为
for(int i=0 p=alist.size();i<p;i++){ }
2.循环内不要创建对象
缺;
for(int i=1;i<=domainCount;i++){ . AuditResult auditResult = new AuditResult(); .. }
这种做法会在内存中保存N份这个对象的引用//会浪费大量的内存空间,改为
AuditResult auditResult; for(int i=1;i<=domainCount;i++){ . auditResult=new AuditResult(); .. }
3. 什么样的对象可以将其认定为不可视阶段呢?举个例子吧,在try{...}catch(Exception){...}代码中,如果在try的代码块中声明了一个obj,那么当整个 try{...}catch(Exception){...}代码段执行完毕以后这个obj实际上就已经属于不可视阶段了。
所以,应该采用如下方式
try{ Object obj=new Object(); }catch(Excepione e){ obj=null; }
4.少用new创建对象
用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。
缺:
在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单。例如,下面是Factory模式的一个典型实现:
public static Credit getNewCredit() { return new Credit(); }
改为
private static Credit BaseCredit = new Credit(); public static Credit getNewCredit() { return (Credit) BaseCredit.clone(); }
当new创建对象不可避免时,注意避免多次的使用new初始化一个对象。 尽量在使用时再创建该对象。
缺
NewObject object = new NewObject(); int value; if(i>0 ) { value =object.getValue(); }
改为
int value; if(i>0 ) { NewObject object = new NewObject(); Value =object.getValue(); }
5.乘法和除法考虑
缺:
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; }
6.尽量多的使用stringbuffer
7清除Session
通常情况,当达到设定的超时时间时,同时有些Session没有了活动,服务器会释放这些没有活动的Session,.. 不过这种情况下,特别是多用户并访时,系统内存要维护多个的无效Session。
当用户退出时,应该手动释放,回收资源,实现如下:
HttpSession theSession = request.getSession(); // 获取当前Session if(theSession != null){ theSession.invalidate(); // 使该Session失效 }
NOTE:堆内存是在JVM启动的时候创建,堆内存分为新对象与老对象。对于新对象好像会分三个区域。当优先级最高的区域的堆栈满了以后JVM将会进行测试,测试内容是那些对象不可到达,不可到达的对象将会放入到老对象区域。同时JVM会将所有对象拷贝到另外两个区域中,然后经过一段时间依然没有引用的对象会进入老对象区域。对于老对象区域而言基本上就是等待被GC回收的对象了。
相关文章推荐
- struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
- struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
- 如何在Windows下实现Python2和python3共存同时使用
- 如何同时使用双网卡进行两个网络上网
- struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
- 【实用技巧】Windows Mobile 手机连接电脑时,如何使用GPRS上网,同时跟电脑保持连接。(USB和GPRS共存问题)
- 双网卡、内外网同时连接,如何指定使用哪个连接?
- 双网卡同时使用配置网关的处理方法+VLAN
- 如何让你的计算机无线网卡和有线网卡同时使用
- 如何自定义博客园代码高亮主题,同时分享自己使用的黑色主题
- NGUI如何与Spine动画同时使用
- 有线网卡与无线网卡同时使用
- 如何让电脑内外网同时使用
- 如何使用 BindingSource 绑定 ListBox,同时解决绑定 List<T> 后修改数据源不能同时刷新界面显示的问题
- 无线网卡和有线网卡同时使用
- VISTA、XP系统如何切换首选网卡(有线、无线同时连接网络时采用哪种方式上网
- 如何同时完成多个ajax之后再执行某个方法 ? 使用$.when().done();
- Ubuntu下同时安装了python2版本和python3版本如何使用pip
- 详细介绍双网卡内外网同时使用的方法