<%@ page contentType="text/html; charset=gb2312"%> Java程序性能和速度优化实例
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Java程序性能和速度优化实例
     发布者: 发布时间:2007-02-05
例一:应用具有I/O Buffer功能Class

  import java.io.*;
  public class IoTest
  {
   public static void main(String args[])
   {
    try
    {
     FileReader fr = new FileReader(args[0]);
     BufferedReader br = new BufferedReader(fr);
     while ( br.readLine() != null )
     {
      System.out.println(" The file content are :" + br.readLine());
     }
     fis.close();
    }
    catch ( IOException ioe )
    {
     System.out.println("The I/O exception is " + ioe);
    }
   }
  }
   
  在上例中,程序使用了具有Buffer功能的Class,使得Disk I/O的读取速度大大提高。BufferedReader 是取代DataInputStream 而提高读写速度的Java Class。在新的Java版本中,已不建议使用DataInputStream,因为其读写是基于字符为单位的。
   
  例二:字符串运算处理
   
  public class StringOperation
  {
   public static void main(String args[])
   {
    String sqlQuery = null;
    String sqlCondition = " conditionC = conditionD ");
    StringBuffer sb = new StringBuffer();
    sb.append("select * from database table where ");
    sb.append(" conditionA = conditionB and ");
    if ( ! sqlCondition.equals(null)
    {
     sb.append(sqlCondition);
    }
    else
    {
     sb.append(" conditionE = conditionF ");
    }
    sqlQuery = sb.toString();
    // Then connect to the database then excute the database query
    // .......
   }
  }
   
  在上例中,使用StingBuffer class来完成数据库查询建立,避免使用String class的"+="操作,以减少JVM在内存中创建新的对象,占用资源,增加JVM回收资源负担。读者可以使用Java Proflier功能来具体比较使用不同的String操作,JVM需要完成多少资源回收和运行时间。因此在JVM中对String直接进行"+="是非常昂贵的运算。

  例三:处理昂贵的数据库初始化

  目前许多网站可以透过Web服务器查询数据库,如何提高数据库查询速度成为许多程序员关注的问题。在Java Servlets或JSP中可以通过init() 或Jspinit()来实现,以下是一具体Java Servlet与数据库对话实例。
    
  import java.io.*;
  import java.sql.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
   
  public class DatabaseServlet extends HttpServlet
  {
   public void init( ServletConfig conf) throws ServletException
   {
    super.init(conf);
    Connection conn = null;
    try
    {
     Class.forName("sun.jdbc.odbc.JdcOdbcDriver");
     Conn = DriverManager.getConnection("jdbc:odbc:yourDSN,"","");
    }
    catch ( SQLException sqle )
    {
     System.err.println("your error exception is " + sqle);
    }
    catch ( ClassNotFoundException cnfe )
    {
     System.err.println("your error exception is " + cnfe);
    }
   }
   public void doGet( HttpServletRequest req, HttpServletResponse res) throws
   ServletException, IOException
   {
    res.setContentType("text/html");
    ServletOutputStream out = null;
    // Your HTML formatter
    out.println(" Your HTML");
    try
    {
     Statement stmt = conn.creatStatement();
     ResultSet rs = stmt.excuteQuery("select * from yourDatabasetable ");
     while ( rs.next() )
     {
      // Processing your data
     }
    }
    catch ( SQLException sqle )
    {
     out.println("The SQL error is " + sqle);
    }
    // output your processing result to HTML page
    out.println(" your HTML");
    rs.close();
    stmt.close();
   }
   public void destroy()
   {
    try
    {
     conn.close();
    }
    catch ( SQLException sqle )
    {
     System.err.println("your SQL error is " + sqle);
    }
   }
  }
   
  在上例中,由于Java Servlet运行机制的特点,将昂贵的数据库初始化运算在整个Servlet运行中仅只调用一次的init()中完成,以减少不必要的重复性数据库运算。读者可以根据应用的具体情况,甚至将数据库的Statement和ResultSet部分移至init()中完成,或者调用PreparedStatement与CallableStatement来优化数据库的运算。同时,对数据库的连接的关闭由destroy()一次性完成。

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
将JAVA编译为EXE的几种方法
精确的浮点数运算包括加减乘除和四舍五入
Eclipse 插件全攻略
安装使用Eclipse中文语言包
Java数据库编程中查询结果的表格式输出
XML快速入门
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(3669)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(4568)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(6620)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(1064)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(8951)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号