JAVA提高代码效率的方法讲述.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA提高代码效率的方法讲述

不用保存太多的信息在HTTPSESSION中     清除SESSION: 通常情况,当达到设定的超时时间时,同时有些Session没有了活动,服务器会释放这些没有活动的Session,.. 不过这种情况下,特别是多用户并访时,系统内存要维护多个的无效Session。 当用户退出时,应该手动释放,回收资源,实现如下: HttpSession theSession = request.getSession(); // 获取当前Session if(theSession != null){  theSession.invalidate(); // 使该Session失效 } 在JSP页面中关闭无用的会话 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 %@page session=false% 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历。由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。 对于那些无需跟踪会话状态的页面,关闭自动创建的会话可以节省一些资源。使用如下page指令:%@ page session=false% JDBC链接池     使用Jdbc链接池 为了提高访问数据库的性能,我们还可以使用JDBC 2.0的一些规范和特性,JDBC是占用资源的,在使用数据库连接时可以使用连接池Connection Pooling,避免频繁打开、关闭Connection。而我们知道,获取Connection是比较消耗系统资源的。   Connection缓冲池:当一个应用程序关闭一个数据库连接时,这个连接并不真正释放而是被循环利用,建立连接是消耗较大的操作,循环利用连接可以显著的提高性能,因为可以减少新连接的建立。   一个通过DataSource获取缓冲池获得连接,并连接到一个CustomerDB数据源的代码演示如下: Context ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup(jdbc/CustomerDB); Connection conn = dataSource.getConnection(password,username); 缓存DATASORCE     缓存DataSorce 一个DataSource对象代表一个实际的数据源。这个数据源可以是从关系数据库到表格形式的文件,完全依赖于它是怎样实现的,一个数据源对象注册到JNDI名字服务后,应用程序就可以从JNDI服务器上取得该对象,并使用之和数据源建立连接。 通过上面的例子,我们知道DataSource是从连接池获得连接的一种方式,通过JNDI方式获得,是占用资源的。为了避免再次的JNDI调用,可以系统中缓存要使用的DataSource。 提高代码效率的方法 优化循环体     循环是比较重复运行的地方,如果循环次数很大,循环体内不好的代码对效率的影响就会被放大而变的突出。让我们看看下面的代码片:.. Vector vect = new Vector(1000); ... for( int i=0; i<vect.size(); i++){  ... } for循环部分改写成: int size = vect.size(); for( int i=0; i < size; i++){  ... } 如果size=1000,就可以减少1000次size()的系统调用开销,避免了循环体重复调用。 未优化耗时:780309 优化后耗时:624430    少用NEW初始化一个实例     尽量少用new来初始化一个类的实例,当一个对象是用new进行初始化时,其构造函数链的所有构造函数都被调用到,所以new操作符是很消耗系统资源的,new一个对象耗时往往是局部变量赋值耗时的上千倍。同时,当生成对象后,系统还要花时间进行垃圾回收和处理。 当new创建对象不可避免时,注意避免多次的使用new初始化一个对象。 尽量在使用时再创建该对象。如: NewObject object = new NewObject(); int value; if( i>0 ) {  value =o

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档