﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-absolutej-随笔分类-java 基础知识</title><link>http://www.blogjava.net/absolutedo/category/36438.html</link><description>荀况:"  不知则问，不能则学，虽能不让，然后为德。闻之不见，虽博必谬；见之而不知，虽识不妄；知之而不行，虽敦必困。"  </description><language>zh-cn</language><lastBuildDate>Fri, 21 Aug 2009 23:08:00 GMT</lastBuildDate><pubDate>Fri, 21 Aug 2009 23:08:00 GMT</pubDate><ttl>60</ttl><item><title>String和StringBuffer的区别[转] </title><link>http://www.blogjava.net/absolutedo/archive/2009/08/17/291427.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Mon, 17 Aug 2009 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/17/291427.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/291427.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/17/291427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/291427.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/291427.html</trackback:ping><description><![CDATA[看JAVA源代码，发现了string和stringBuffer操作的区别，总结如下：<br />
从对象实现上来说，都是通过char[]来实现的。<br />
如果new String(),那么数组的长度为0，如果new String("String")，那么char[]数组的长度就是你创建的字符串的长度。<br />
这个char[]在字符串创建以后是不会改变的。<br />
如果你只对这个串本身进行查找等对字符串无改变的操作的话，对于此数组本身是没有影响的。但是如果，你要执行的是一个对此字符串本身有改变的操作的话，那么，是不可以的。<br />
但是Strin对象为我们提供了此类操作的方法，比如concat()方法，源代码如下：<br />
&nbsp;&nbsp;&nbsp; public String concat(String s) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int i = s.length();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (i == 0) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return this;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; char ac[] = new char[count + i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; getChars(0, count, ac, 0);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.getChars(0, i, ac, count);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new String(0, count + i, ac);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
由此，我们可以知道，其实，此方法给我们返回的已经不是当前的字符串了，而是又创建了一个新的字符串，然后返回。<br />
其他的方法也类似。<br />
<br />
StringBuffer的实现，也是通过char[]来实现的。但是，默认的情况下，其自己创建了一个缓存数组，长度是16，这一点，我们可以通过StringBuffer的构造器来知道：<br />
&nbsp;&nbsp;&nbsp; public StringBuffer() {<br />
&nbsp;&nbsp;&nbsp; super(16);<br />
&nbsp;&nbsp;&nbsp; }<br />
这个方法初始化了，char[]数组的长度是16。<br />
其父类构造器如下：<br />
&nbsp;&nbsp;&nbsp; AbstractStringBuilder(int capacity) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = new char[capacity];<br />
&nbsp;&nbsp;&nbsp; }<br />
也就是说，默认的数组长度是16。<br />
很多的时候，容量16对于我们需要的串来说，可能远远不够。怎么办呢？<br />
在进行串的append的时候，StringBuffer会检测剩余容量，并会重新扩充至当前容量的2倍。<br />
&nbsp;&nbsp;&nbsp; public AbstractStringBuilder append(String str) {<br />
&nbsp;&nbsp;&nbsp; if (str == null) str = "null";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len = str.length();<br />
&nbsp;&nbsp;&nbsp; if (len == 0) return this;<br />
&nbsp;&nbsp;&nbsp; int newCount = count + len;<br />
&nbsp;&nbsp;&nbsp; if (newCount &gt; value.length)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; expandCapacity(newCount);<br />
&nbsp;&nbsp;&nbsp; str.getChars(0, len, value, count);<br />
&nbsp;&nbsp;&nbsp; count = newCount;<br />
&nbsp;&nbsp;&nbsp; return this;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
而扩容的同时，会创建一个新的数组，并将原来的数组内容复制到新的数组里面。<br />
由此可见，如果容量不足的话，那么每一次扩容，都会耗掉大量的资源，尽管，你可能扩充的容量也很小。如果，数组的长度很大，耗掉的资源就会更多。<br />
所以，我们在使用stringbuffer的时候，要一次在创建对象的时候给与足够多的空间，这样会提高性能。<br />
有利必有弊，这个性能是以空间为代价。但是相对于性能的丧失来说，应该还是值得的。<br />
<br />
如果不需要扩容的话，那么所有的操作都是基于同一个数组，那么像对于string的操作来说，不需要每一次都创建对象了，省去了创建对象的时间，性能是要好很多的，同时，String的串操作，会用去很多的空间，对于虚拟机来说，也增加了很大的压力。<br />
<br />
<br />
<br />
转至:http://www.blogjava.net/zhyiwww/archive/2008/04/25/195993.html
<img src ="http://www.blogjava.net/absolutedo/aggbug/291427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-08-17 09:53 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/17/291427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Servlet过滤器大全[转]</title><link>http://www.blogjava.net/absolutedo/archive/2009/08/17/291425.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Mon, 17 Aug 2009 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/17/291425.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/291425.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/17/291425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/291425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/291425.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、字符编码的过滤器 import&nbsp;javax.servlet.*;&nbsp;import&nbsp;java.io.IOException;&nbsp;/**&nbsp;*//**&nbsp;*&nbsp;用于设置&nbsp;HTTP&nbsp;请求字符编码的过滤器，通过过滤器参数encoding指明使用何种字符编码,用于处理Html&nbsp;Form请求参数的...&nbsp;&nbsp;<a href='http://www.blogjava.net/absolutedo/archive/2009/08/17/291425.html'>阅读全文</a><img src ="http://www.blogjava.net/absolutedo/aggbug/291425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-08-17 09:50 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/17/291425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j配置详解[转]</title><link>http://www.blogjava.net/absolutedo/archive/2009/08/17/291419.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Mon, 17 Aug 2009 01:45:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/17/291419.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/291419.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/17/291419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/291419.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/291419.html</trackback:ping><description><![CDATA[<p>log4j详解<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 根据网络资料整理&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&gt;&gt;&gt;&gt;1. 概述&lt;&lt;&lt;&lt;<br />
　　1.1. 背景<br />
　　<br />
　　在应用程序中添加日志记录总的来说基于三个目的：监视代码中变量的变化情况，周期性的记录到文件中供其他应用进行统计分析工作；跟踪代码运行时轨迹，作为日后审计的依据；担当集成开发环境中的调试器的作用，向文件或控制台打印代码的调试信息。<br />
　　<br />
　　最普通的做法就是在代码中嵌入许多的打印语句，这些打印语句可以输出到控制台或文件中，比较好的做法就是构造一个日志操作类来封装此类操作，而不是让一系列的打印语句充斥了代码的主体。<br />
　　<br />
　　1.2. Log4j简介<br />
　　<br />
　　在强调可重用组件开发的今天，除了自己从头到尾开发一个可重用的日志操作类外，Apache为我们提供了一个强有力的日志操作包-Log4j。<br />
　　<br />
　 　Log4j是Apache的一个开放源代码项目，通过使用Log4j，我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等；我们也可以控制每一条日志的输出格式；通过定义每一条日志信息的级别，我们能够更加细致地控制日志的生成过程。最令人感兴趣的就 是，这些可以通过一个配置文件来灵活地进行配置，而不需要修改应用的代码。<br />
　　<br />
　　此外，通过Log4j其他语言接口，您可以在C、C+ +、.Net、PL/SQL程序中使用Log4j，其语法和用法与在Java程序中一样，使得多语言分布式系统得到一个统一一致的日志组件模块。而且，通 过使用各种第三方扩展，您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。<br />
　　<br />
　　本文介绍的Log4j版本是 1.2.3。作者试图通过一个简单的客户/服务器Java程序例子对比使用与不使用Log4j 1.2.3的差别，并详细讲解了在实践中最常使用Log4j的方法和步骤。在强调可重用组件开发的今天，相信Log4j将会给广大的设计开发人员带来方 便。加入到Log4j的队伍来吧！<br />
　　<br />
&gt;&gt;&gt;&gt; 2. 一个简单的例子 &lt;&lt;&lt;&lt;</p>
<p>　　我们先来看一个简单的例子，它是一个用Java实现的客户/服务器网络程序。刚开始我们不使用Log4j，而是使用了一系列的打印语句，然后我们将使用Log4j来实现它的日志功能。这样，大家就可以清楚地比较出前后两个代码的差别。<br />
　　<br />
　　2.1. 不使用Log4j<br />
　　<br />
　　2.1.1. 客户程序<br />
　　package log4j ;<br />
　　<br />
　　import java.io.* ;<br />
　　import java.net.* ;<br />
　　<br />
　　/**<br />
　　 *<br />
　　 * &lt;p&gt; Client Without Log4j &lt;/p&gt;<br />
　　 * &lt;p&gt; Description: a sample with log4j&lt;/p&gt;<br />
　　 * @version 1.0<br />
　　 */<br />
　　public class ClientWithoutLog4j {<br />
　　<br />
　　　　/**<br />
　　　　 *<br />
　　　　 * @param args<br />
　　　　 */<br />
　　　　public static void main ( String args [] ) {<br />
　　<br />
　　　　　　String welcome = null;<br />
　　　　　　String response = null;<br />
　　　　　　BufferedReader reader = null;<br />
　　　　　　PrintWriter writer = null;<br />
　　　　　　InputStream in = null;<br />
　　　　　　OutputStream out = null;<br />
　　　　　　Socket client = null;<br />
　　<br />
　　　　　　try {<br />
　　　　　　　　client = new Socket ( "localhost", 8001 ) ;<br />
　　　　　　　　System.out.println ( "info: Client socket: " + client ) ;<br />
　　　　　　　　in = client.getInputStream () ;<br />
　　　　　　　　out = client.getOutputStream () ;<br />
　　　　　　} catch ( IOException e ) {<br />
　　　　　　　　System.out.println ( "error: IOException : " + e ) ;<br />
　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　}<br />
　　<br />
　　　　　　try{<br />
　　　　　　　　reader = new BufferedReader( new InputStreamReader ( in ) ) ;<br />
　　　　　　　　writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;<br />
　　<br />
　　　　　　　　welcome = reader.readLine () ;<br />
　　　　　　　　System.out.println ( "debug: Server says: '" + welcome + "'" ) ;<br />
　　<br />
　　　　　　　　System.out.println ( "debug: HELLO" ) ;<br />
　　　　　　　　writer.println ( "HELLO" ) ;<br />
　　　　　　　　response = reader.readLine () ;<br />
　　　　　　　　System.out.println ( "debug: Server responds: '" + response + "'") ;<br />
　　<br />
　　　　　　　　System.out.println ( "debug: HELP" ) ;<br />
　　　　　　　　writer.println ( "HELP" ) ;<br />
　　　　　　　　response = reader.readLine () ;<br />
　　　　　　　　System.out.println ( "debug: Server responds: '" + response + "'" ) ;<br />
　　<br />
　　　　　　　　System.out.println ( "debug: QUIT" ) ;<br />
　　　　　　　　writer.println ( "QUIT" ) ;<br />
　　　　　　} catch ( IOException e ) {<br />
　　　　　　　　System.out.println ( "warn: IOException in client.in.readln()" ) ;<br />
　　　　　　　　System.out.println ( e ) ;<br />
　　　　　　}<br />
　　　　　　try{<br />
　　　　　　　　Thread.sleep ( 2000 ) ;<br />
　　　　　　} catch ( Exception ignored ) {}<br />
　　　　}<br />
　　}<br />
　　<br />
　　2.1.2. 服务器程序<br />
　　package log4j ;<br />
　　<br />
　　import java.util.* ;<br />
　　import java.io.* ;<br />
　　import java.net.* ;<br />
　　<br />
　　/**<br />
　　 *<br />
　　 * &lt;p&gt; Server Without Log4j &lt;/p&gt;<br />
　　 * &lt;p&gt; Description: a sample with log4j&lt;/p&gt;<br />
　　 * @version 1.0<br />
　　 */<br />
　　public class ServerWithoutLog4j {<br />
　　<br />
　　　　final static int SERVER_PORT = 8001 ; // this server's port<br />
　　<br />
　　　　/**<br />
　　　　 *<br />
　　　　 * @param args<br />
　　　　 */<br />
　　　　public static void main ( String args [] ) {<br />
　　　　　　String clientRequest = null;<br />
　　　　　　BufferedReader reader = null;<br />
　　　　　　PrintWriter writer = null;<br />
　　　　　　ServerSocket server = null;<br />
　　　　　　Socket socket = null;<br />
　　　　　　InputStream in = null;<br />
　　　　　　OutputStream out = null;<br />
　　<br />
　　　　　　try {<br />
　　　　　　　　server = new ServerSocket ( SERVER_PORT ) ;<br />
　　　　　　　　System.out.println ( "info: ServerSocket before accept: " + server ) ;<br />
　　　　　　　　System.out.println ( "info: Java server without log4j, on-line!" ) ;<br />
　　<br />
　　　　　　　　// wait for client's connection<br />
　　　　　　　　socket = server.accept () ;<br />
　　　　　　　　System.out.println ( "info: ServerSocket after accept: " + server )　;<br />
　　<br />
　　　　　　　　in = socket.getInputStream () ;<br />
　　　　　　　　out = socket.getOutputStream () ;<br />
　　<br />
　　　　　　} catch ( IOException e ) {<br />
　　　　　　　　System.out.println( "error: Server constructor IOException: " + e ) ;<br />
　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　}<br />
　　　　　　reader = new BufferedReader ( new InputStreamReader ( in ) ) ;<br />
　　　　　　writer = new PrintWriter ( new OutputStreamWriter ( out ) , true ) ;<br />
　　<br />
　　　　　　// send welcome string to client<br />
　　　　　　writer.println ( "Java server without log4j, " + new Date () ) ;<br />
　　<br />
　　　　　　while ( true ) {<br />
　　　　　　　　try {<br />
　　　　　　　　　　// read from client<br />
　　　　　　　　　　clientRequest = reader.readLine () ;<br />
　　　　　　　　　　System.out.println ( "debug: Client says: " + clientRequest ) ;<br />
　　　　　　　　　　if ( clientRequest.startsWith ( "HELP" ) ) {<br />
　　　　　　　　　　　　System.out.println ( "debug: OK!" ) ;<br />
　　　　　　　　　　　　writer.println ( "Vocabulary: HELP QUIT" ) ;<br />
　　　　　　　　　　}<br />
　　　　　　　　　　else {<br />
　　　　　　　　　　　　if ( clientRequest.startsWith ( "QUIT" ) ) {<br />
　　　　　　　　　　　　　　System.out.println ( "debug: OK!" ) ;<br />
　　　　　　　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　　　　　　　}<br />
　　　　　　　　　　　　else{<br />
　　　　　　　　　　　　　　System.out.println ( "warn: Command '" + <br />
　　 clientRequest + "' not understood." ) ;<br />
　　　　　　　　　　　　　　writer.println ( "Command '" + clientRequest <br />
　　 + "' not understood." ) ;<br />
　　　　　　　　　　　　}<br />
　　　　　　　　　　}<br />
　　　　　　　　} catch ( IOException e ) {<br />
　　　　　　　　　　System.out.println ( "error: IOException in Server " + e ) ;<br />
　　　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　　　}<br />
　　　　　　}<br />
　　　　}<br />
　　}<br />
　　<br />
　　2.2. 迁移到Log4j<br />
　　<br />
　　2.2.1. 客户程序<br />
　　<br />
　　package log4j ;<br />
　　<br />
　　import java.io.* ;<br />
　　import java.net.* ;<br />
　　<br />
　　// add for log4j: import some package<br />
　　import org.apache.log4j.PropertyConfigurator ;<br />
　　import org.apache.log4j.Logger ;<br />
　　import org.apache.log4j.Level ;<br />
　　<br />
　　/**<br />
　　 *<br />
　　 * &lt;p&gt; Client With Log4j &lt;/p&gt;<br />
　　 * &lt;p&gt; Description: a sample with log4j&lt;/p&gt;<br />
　　 * @version 1.0<br />
　　 */<br />
　　public class ClientWithLog4j {<br />
　　<br />
　　　　/*<br />
　　　　add for log4j: class Logger is the central class in the log4j package.<br />
　　　　we can do most logging operations by Logger except configuration.<br />
　　　　getLogger(...): retrieve a logger by name, if not then create for it.<br />
　　　　*/<br />
　　　　static Logger logger = Logger.getLogger <br />
　　 ( ClientWithLog4j.class.getName () ) ;<br />
　　<br />
　　　　/**<br />
　　　　 *<br />
　　　　 * @param args : configuration file name<br />
　　　　 */<br />
　　　　public static void main ( String args [] ) {<br />
　　<br />
　　　　　　String welcome = null ;<br />
　　　　　　String response = null ;<br />
　　　　　　BufferedReader reader = null ;<br />
　　　　　　PrintWriter writer = null ;<br />
　　　　　　InputStream in = null ;<br />
　　　　　　OutputStream out = null ;<br />
　　　　　　Socket client = null ;<br />
　　<br />
　　　　　　/*<br />
　　　　　　add for log4j: class BasicConfigurator can quickly configure the package.<br />
　　　　　　print the information to console.<br />
　　　　　　*/<br />
　　　　　　PropertyConfigurator.configure ( "ClientWithLog4j.properties" ) ;<br />
　　<br />
　　　　　　// add for log4j: set the level<br />
　　//　　　　logger.setLevel ( ( Level ) Level.DEBUG ) ;<br />
　　<br />
　　　　　　try{<br />
　　　　　　　　client = new Socket( "localhost" , 8001 ) ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the info level<br />
　　　　　　　　logger.info ( "Client socket: " + client ) ;<br />
　　<br />
　　　　　　　　in = client.getInputStream () ;<br />
　　　　　　　　out = client.getOutputStream () ;<br />
　　　　　　} catch ( IOException e ) {<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the error level<br />
　　　　　　　　logger.error ( "IOException : " + e ) ;<br />
　　<br />
　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　}<br />
　　<br />
　　　　　　try{<br />
　　　　　　　　reader = new BufferedReader ( new InputStreamReader ( in ) ) ;<br />
　　　　　　　　writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;<br />
　　<br />
　　　　　　　　welcome = reader.readLine () ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "Server says: '" + welcome + "'" ) ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "HELLO" ) ;<br />
　　<br />
　　　　　　　　writer.println ( "HELLO" ) ;<br />
　　　　　　　　response = reader.readLine () ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "Server responds: '" + response + "'" ) ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "HELP" ) ;<br />
　　<br />
　　　　　　　　writer.println ( "HELP" ) ;<br />
　　　　　　　　response = reader.readLine () ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "Server responds: '" + response + "'") ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　logger.debug ( "QUIT" ) ;<br />
　　<br />
　　　　　　　　writer.println ( "QUIT" ) ;<br />
　　　　　　} catch ( IOException e ) {<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the warn level<br />
　　　　　　　　logger.warn ( "IOException in client.in.readln()" ) ;<br />
　　<br />
　　　　　　　　System.out.println ( e ) ;<br />
　　　　　　}<br />
　　　　　　try {<br />
　　　　　　　　Thread.sleep ( 2000 ) ;<br />
　　　　　　} catch ( Exception ignored ) {}<br />
　　　　}<br />
　　}<br />
　　<br />
　　2.2.2. 服务器程序<br />
　　<br />
　　package log4j;<br />
　　<br />
　　import java.util.* ;<br />
　　import java.io.* ;<br />
　　import java.net.* ;<br />
　　<br />
　　// add for log4j: import some package<br />
　　import org.apache.log4j.PropertyConfigurator ;<br />
　　import org.apache.log4j.Logger ;<br />
　　import org.apache.log4j.Level ;<br />
　　<br />
　　/**<br />
　　 *<br />
　　 * &lt;p&gt; Server With Log4j &lt;/p&gt;<br />
　　 * &lt;p&gt; Description: a sample with log4j&lt;/p&gt;<br />
　　 * @version 1.0<br />
　　 */<br />
　　public class ServerWithLog4j {<br />
　　<br />
　　　　final static int SERVER_PORT = 8001 ; // this server's port<br />
　　<br />
　　　　/*<br />
　　　　add for log4j: class Logger is the central class in the log4j package.<br />
　　　　we can do most logging operations by Logger except configuration.<br />
　　　　getLogger(...): retrieve a logger by name, if not then create for it.<br />
　　　　*/<br />
　　　　static Logger logger = Logger.getLogger <br />
　　 ( ServerWithLog4j.class.getName () ) ;<br />
　　<br />
　　　　/**<br />
　　　　 *<br />
　　　　 * @param args<br />
　　　　 */<br />
　　　　public static void main ( String args[]) {<br />
　　　　　　String clientRequest = null ;<br />
　　　　　　BufferedReader reader = null ;<br />
　　　　　　PrintWriter writer = null ;<br />
　　　　　　ServerSocket server = null ;<br />
　　　　　　Socket socket = null ;<br />
　　<br />
　　　　　　InputStream in = null ;<br />
　　　　　　OutputStream out = null ;<br />
　　<br />
　　　　　　/*<br />
　　　　　　add for log4j: class BasicConfigurator can quickly configure the package.<br />
　　　　　　print the information to console.<br />
　　　　　　*/<br />
　　　　　　PropertyConfigurator.configure ( "ServerWithLog4j.properties" ) ;<br />
　　<br />
　　　　　　// add for log4j: set the level<br />
　　//　　　　logger.setLevel ( ( Level ) Level.DEBUG ) ;<br />
　　<br />
　　　　　　try{<br />
　　　　　　　　server = new ServerSocket ( SERVER_PORT ) ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the info level<br />
　　　　　　　　logger.info ( "ServerSocket before accept: " + server ) ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the info level<br />
　　　　　　　　logger.info ( "Java server with log4j, on-line!" ) ;<br />
　　<br />
　　　　　　　　// wait for client's connection<br />
　　　　　　　　socket = server.accept() ;<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the info level<br />
　　　　　　　　logger.info ( "ServerSocket after accept: " + server ) ;<br />
　　<br />
　　　　　　　　in = socket.getInputStream() ;<br />
　　　　　　　　out = socket.getOutputStream() ;<br />
　　<br />
　　　　　　} catch ( IOException e ) {<br />
　　<br />
　　　　　　　　// add for log4j: log a message with the error level<br />
　　　　　　　　logger.error ( "Server constructor IOException: " + e ) ;<br />
　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　}<br />
　　　　　　reader = new BufferedReader ( new InputStreamReader ( in ) ) ;<br />
　　　　　　writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;<br />
　　<br />
　　　　　　// send welcome string to client<br />
　　　　　　writer.println ( "Java server with log4j, " + new Date () ) ;<br />
　　<br />
　　　　　　while ( true ) {<br />
　　　　　　　　try {<br />
　　　　　　　　　　// read from client<br />
　　　　　　　　　　clientRequest = reader.readLine () ;<br />
　　<br />
　　　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　　　logger.debug ( "Client says: " + clientRequest ) ;<br />
　　<br />
　　　　　　　　　　if ( clientRequest.startsWith ( "HELP" ) ) {<br />
　　<br />
　　　　　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　　　　　logger.debug ( "OK!" ) ;<br />
　　<br />
　　　　　　　　　　　　writer.println ( "Vocabulary: HELP QUIT" ) ;<br />
　　　　　　　　　　}<br />
　　　　　　　　　　else {<br />
　　　　　　　　　　　　if ( clientRequest.startsWith ( "QUIT" ) ) {<br />
　　<br />
　　　　　　　　　　　　　　// add for log4j: log a message with the debug level<br />
　　　　　　　　　　　　　　logger.debug ( "OK!" ) ;<br />
　　<br />
　　　　　　　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　　　　　　　}<br />
　　　　　　　　　　　　else {<br />
　　<br />
　　　　　　　　　　　　　　// add for log4j: log a message with the warn level<br />
　　　　　　　　　　　　　　logger.warn ( "Command '" <br />
　　 + clientRequest + "' not understood." ) ;<br />
　　<br />
　　　　　　　　　　　　　　writer.println ( "Command '"<br />
　　 + clientRequest + "' not understood." ) ;<br />
　　　　　　　　　　　　}<br />
　　　　　　　　　　}<br />
　　　　　　　　} catch ( IOException e ) {<br />
　　<br />
　　　　　　　　　　// add for log4j: log a message with the error level<br />
　　　　　　　　　　logger.error( "IOException in Server " + e ) ;<br />
　　<br />
　　　　　　　　　　System.exit ( 0 ) ;<br />
　　　　　　　　}<br />
　　　　　　}<br />
　　　　}<br />
　　}<br />
　　<br />
　　2.2.3. 配置文件<br />
　　<br />
　　2.2.3.1. 客户程序配置文件<br />
　　<br />
　　log4j.rootLogger=INFO, A1<br />
　　<br />
　　log4j.appender.A1=org.apache.log4j.ConsoleAppender<br />
　　<br />
　　log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />
　　<br />
　　log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n<br />
　　<br />
　　2.2.3.2. 服务器程序配置文件<br />
　　<br />
　　log4j.rootLogger=INFO, A1<br />
　　<br />
　　log4j.appender.A1=org.apache.log4j.ConsoleAppender<br />
　　<br />
　　log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />
　　<br />
　　log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n<br />
　　<br />
　　2.3. 比较<br />
　　<br />
　 　比较这两个应用可以看出，采用Log4j进行日志操作的整个过程相当简单明了，与直接使用System.out.println语句进行日志信息输出的 方式相比，基本上没有增加代码量，同时能够清楚地理解每一条日志信息的重要程度。通过控制配置文件，我们还可以灵活地修改日志信息的格式，输出目的地等等 方面，而单纯依靠System.out.println语句，显然需要做更多的工作。</p>
<p>&gt;&gt;&gt;&gt; 3 . Log4j日志管理系统简单使用说明 &lt;&lt;&lt;&lt;</p>
<p>&nbsp;&nbsp;&nbsp; 通常，我们都提供一个名为 log4j.properties的文件，在第一次调用到Log4J时，Log4J会在类路径（../web-inf/class/当然也可以放到其它任何目录，只要该目录被包含到类路径中即可）中定位这个文件，并读入这个文件完成的配置。这个配置文件告 诉Log4J以什么样的格式、把什么样的信息、输出到什么地方。<br />
　　Log4j有三个主要的组件：Loggers(记录器)，Appenders(输出源)和Layouts(布局)，这里可简单理解为日志类别，日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别，并可以在运行时控制日志输出的样式和位置。下面对三个组件分别进行说明：<br />
　　<br />
　　1、 Loggers<br />
　 　Loggers组件在此系统中被分为五个级别：DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的，DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL，分别用来指定这条日志信息的重要程度,明白这一点很重要，这里Log4j有一个规则：假设Loggers级别为P，如果在Loggers中发生了一个级别Q比P高，则可以启动，否则屏蔽掉。<br />
假设你定义的级别是info，那么error和warn的日志可以显示而比他低的debug信息就不显示了。<br />
&nbsp;　<br />
　　Java程序举例来说：<br />
　　<br />
　　//建立Logger的一个实例，命名为&#8220;com.foo&#8221;<br />
　　　Logger　logger = Logger.getLogger("com.foo"); //"com.foo"是实例进行命名，也可以任意<br />
　　//设置logger的级别。通常不在程序中设置logger的级别。一般在配置文件中设置。<br />
　　logger.setLevel(Level.INFO);<br />
　　Logger barlogger = Logger.getLogger("com.foo.Bar");<br />
　　//下面这个请求可用，因为WARN &gt;= INFO<br />
　　logger.warn("Low fuel level.");<br />
　　//下面这个请求不可用，因为DEBUG &lt; INFO<br />
　　logger.debug("Starting search for nearest gas station.");<br />
　　//命名为&#8220;com.foo.bar&#8221;的实例barlogger会继承实例&#8220;com.foo&#8221;的级别。因此，下面这个请求可用，因为INFO &gt;= INFO<br />
　　barlogger.info("Located nearest gas station.");<br />
　　//下面这个请求不可用，因为DEBUG &lt; INFO<br />
　　barlogger.debug("Exiting gas station search");<br />
　　这里&#8220;是否可用&#8221;的意思是能否输出Logger信息。<br />
　　　　在对Logger实例进行命名时，没有限制，可以取任意自己感兴趣的名字。一般情况下建议以类的所在位置来命名Logger实例，这是目前来讲比较有效的Logger命名方式。这样可以使得每个类建立自己的日志信息，便于管理。比如：<br />
　　<br />
　　static Logger logger = Logger.getLogger(ClientWithLog4j.class.getName());<br />
　　<br />
　　2、Appenders<br />
　　禁用与使用日志请求只是Log4j其中的一个小小的地方，Log4j日志系统允许把日志输出到不同的地方，如控制台（Console）、文件（Files）、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。<br />
　　<br />
　　其语法表示为：<br />
　　<br />
　　org.apache.log4j.ConsoleAppender（控制台）<br />
　　org.apache.log4j.FileAppender（文件）<br />
　　org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件）<br />
&nbsp;&nbsp;&nbsp; org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件）<br />
　　org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）<br />
　　<br />
　　配置时使用方式为：<br />
　　log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />
　　log4j.appender.appenderName.option1 = value1<br />
　　&#8230;<br />
&nbsp;&nbsp;&nbsp; log4j.appender.appenderName.option = valueN<br />
　　这样就为日志的输出提供了相当大的便利。<br />
　　<br />
　　3、Layouts<br />
　 　有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供了 四种日志输出样式，如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。<br />
　　<br />
　　其语法表示为：<br />
　　<br />
　　org.apache.log4j.HTMLLayout（以HTML表格形式布局），<br />
　　org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
　　org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
　　org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息）<br />
　　<br />
　　配置时使用方式为：<br />
　　<br />
　　log4j.appender.appenderName.layout =fully.qualified.name.of.layout.class<br />
　　log4j.appender.appenderName.layout.option1 = value1<br />
　　&#8230;<br />
　　log4j.appender.appenderName.layout.option = valueN</p>
<p>&gt;&gt;&gt;&gt;&nbsp; 4 . Log4j的配置 &lt;&lt;&lt;&lt;　　<br />
　　<br />
　　以上是从原理方面说明Log4j的使用方法，在具体Java编程使用Log4j可以参照以下示例：<br />
　　<br />
　　1、 建立Logger实例：<br />
　　语法表示：public static Logger getLogger( String name)<br />
　　实际使用：static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ;<br />
　　<br />
　　2、 读取配置文件：<br />
　　获得了Logger的实例之后，接下来将配置Log4j使用环境：<br />
　　语法表示：<br />
　　BasicConfigurator.configure()：自动快速地使用缺省Log4j环境。<br />
　　PropertyConfigurator.configure(String configFilename)：读取使用Java的特性文件编写的配置文件。<br />
　　DOMConfigurator.configure(String filename)：读取XML形式的配置文件。<br />
　　实际使用：<br />
&nbsp;&nbsp;&nbsp; PropertyConfigurator.configure("ServerWithLog4j.properties");<br />
　　<br />
　　3、 插入日志信息<br />
　　完成了以上连个步骤以后，下面就可以按日志的不同级别插入到你要记录日志的任何地方了。<br />
　　语法表示：<br />
　　Logger.debug(Object message);//调试信息<br />
　　Logger.info(Object message);//一般信息<br />
　　Logger.warn(Object message);//警告信息<br />
　　Logger.error(Object message);//错误信息<br />
　　Logger.fatal(Object message);//致命错误信息</p>
<p>　　实际使用：logger.info("ServerSocket before accept: " + server);<br />
　　<br />
　&gt;&gt;&gt;&gt; 5. 配置过程 &lt;&lt;&lt;&lt;</p>
<p>　在实际编程时，要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。<br />
&nbsp;&nbsp;&nbsp; Log4j支持两种配置文件格式，一种是XML格式的文件，一种是java properties（key=value）【Java特性文件（键=值）】。下面我们介绍使用Java特性文件做为配置文件的方法<br />
&nbsp;&nbsp; 具体如下：<br />
　　<br />
　　1、配置根Logger，其语法为：<br />
　　log4j.rootLogger = [ level ] , appenderName1, appenderName2, &#8230;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; level : 是日志记录的优先级，分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别，优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别，您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别，则应用程序中所有DEBUG级别的日志信息将不被打印出来。<br />
　　&nbsp;&nbsp;&nbsp;&nbsp; appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。<br />
&nbsp;&nbsp; 例如：log4j.rootLogger＝info,A1,B2,C3<br />
　　<br />
　　2、配置日志信息输出目的地，其语法为：<br />
　　log4j.appender.appenderName = fully.qualified.name.of.appender.class&nbsp; //<br />
　　&nbsp; "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.org.apache.log4j.ConsoleAppender（控制台）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.org.apache.log4j.FileAppender（文件）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.ConsoleAppender选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Threshold=WARN:指定日志消息的输出最低层次。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Target=System.err：默认情况下是：System.out,指定输出控制台<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.FileAppender 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Threshold=WARN:指定日志消息的输出最低层次。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File=mylog.txt:指定消息输出到mylog.txt文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.DailyRollingFileAppender 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Threshold=WARN:指定日志消息的输出最低层次。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File=mylog.txt:指定消息输出到mylog.txt文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DatePattern='.'yyyy-ww:每周滚动一次文件，即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)'.'yyyy-MM: 每月<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)'.'yyyy-ww: 每周 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)'.'yyyy-MM-dd: 每天<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)'.'yyyy-MM-dd-a: 每天两次<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5)'.'yyyy-MM-dd-HH: 每小时<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6)'.'yyyy-MM-dd-HH-mm: 每分钟<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.RollingFileAppender 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Threshold=WARN:指定日志消息的输出最低层次。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File=mylog.txt:指定消息输出到mylog.txt文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时，将会自动滚动，即将原来的内容移到mylog.log.1文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxBackupIndex=2:指定可以产生的滚动文件的最大数。</p>
<p>实际应用：<br />
　　log4j.appender.A1=org.apache.log4j.ConsoleAppender //这里指定了日志输出的第一个位置A1是控制台ConsoleAppender<br />
　　<br />
　　3、配置日志信息的格式，其语法为：<br />
　　A. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.org.apache.log4j.HTMLLayout（以HTML表格形式布局），<br />
　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.HTMLLayout 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LocationInfo=true:默认值是false,输出java文件名称和行号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title=my app file: 默认值是 Log4J Log Messages.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.PatternLayout 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ConversionPattern=%m%n :指定怎样格式化指定的消息。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.XMLLayout&nbsp; 选项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LocationInfo=true:默认值是false,输出java文件和行号<br />
&nbsp;&nbsp; 实际应用：<br />
&nbsp;&nbsp; 　　log4j.appender.A1.layout=org.apache.log4j.PatternLayout</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B. log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里需要说明的就是日志信息格式中几个符号所代表的含义：<br />
　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －X号: X信息输出时左对齐；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %p: 输出日志信息优先级，即DEBUG，INFO，WARN，ERROR，FATAL,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %d: 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %r: 输出自应用启动到输出该log信息耗费的毫秒数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %c: 输出日志信息所属的类目，通常就是所在类的全名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %t: 输出产生该日志事件的线程名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %l: 输出日志事件的发生位置，相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %%: 输出一个"%"字符<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %F: 输出日志消息产生时所在的文件名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %L: 输出代码中的行号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %m: 输出代码中指定的消息,产生的日志具体信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %n: 输出一个回车换行符，Windows平台为"\r\n"，Unix平台为"\n"输出日志信息换行<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)%20c：指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，默认的情况下右对齐。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)%-20c:指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，"-"号指定左对齐。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)%.30c:指定输出category的名称，最大的宽度是30，如果category的名称大于30的话，就会将左边多出的字符截掉，但小于30的话也不会有空格。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)%20.30c:如果category的名称小于20就补空格，并且右对齐，如果其名称长于30字符，就从左边交远销出的字符截掉。</p>
<p>　　这里上面三个步骤是对前面Log4j组件说明的一个简化；下面给出一个具体配置例子，在程序中可以参照执行：<br />
　　log4j.rootLogger=INFO,A1，B2<br />
　　log4j.appender.A1=org.apache.log4j.ConsoleAppender<br />
　　log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />
　　log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n<br />
&nbsp;　　根据上面的日志格式，某一个程序的输出结果如下：<br />
　　0　　INFO　2003-06-13 13:23:46968 ClientWithLog4j Client socket: Socket[addr=localhost/127.0.0.1,port=8002,localport=2014]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server says: 'Java server with log4j, Fri Jun 13 13:23:46 CST 2003'<br />
　　16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j GOOD<br />
　　16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Command 'HELLO' not understood.'<br />
　　16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j HELP<br />
　　16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Vocabulary: HELP QUIT'<br />
　　16　 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j QUIT<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. # 当输出信息于回滚文件时</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender&nbsp;&nbsp; //指定以文件的方式输出日志<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.Threshold=ERROR <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.File=rolling.log&nbsp; //文件位置,也可以用变量${java.home}、rolling.log<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.Append=true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.MaxFileSize=10KB&nbsp; //文件最大尺寸<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.MaxBackupIndex=1&nbsp; //备份数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n&nbsp; 　　</p>
<p>&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;<br />
&nbsp;<br />
&gt;&gt;&gt;&gt; 6. Log4j比较全面的配置 &lt;&lt;&lt;&lt;</p>
<p>&nbsp;LOG4J的配置之简单使它遍及于越来越多的应用中了：Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了， </p>
<p>&nbsp;log4j.rootLogger=DEBUG,CONSOLE,A1,im <br />
&nbsp;log4j.addivity.org.apache=true </p>
<p>&nbsp;# 应用于控制台 </p>
<p>&nbsp;log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender <br />
&nbsp;log4j.appender.Threshold=DEBUG <br />
&nbsp;log4j.appender.CONSOLE.Target=System.out <br />
&nbsp;log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n <br />
&nbsp;#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n </p>
<p>&nbsp;#应用于文件 </p>
<p>&nbsp;log4j.appender.FILE=org.apache.log4j.FileAppender <br />
&nbsp;log4j.appender.FILE.File=file.log <br />
&nbsp;log4j.appender.FILE.Append=false <br />
&nbsp;log4j.appender.FILE.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n <br />
&nbsp;# Use this layout for LogFactor 5 analysis </p>
<p>&nbsp;# 应用于文件回滚 </p>
<p>&nbsp;log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender <br />
&nbsp;log4j.appender.ROLLING_FILE.Threshold=ERROR <br />
&nbsp;log4j.appender.ROLLING_FILE.File=rolling.log&nbsp; //文件位置,也可以用变量${java.home}、rolling.log<br />
&nbsp;log4j.appender.ROLLING_FILE.Append=true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //true:添加&nbsp; false:覆盖<br />
&nbsp;log4j.appender.ROLLING_FILE.MaxFileSize=10KB&nbsp;&nbsp; //文件最大尺寸<br />
&nbsp;log4j.appender.ROLLING_FILE.MaxBackupIndex=1&nbsp; //备份数<br />
&nbsp;log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p><br />
&nbsp;#应用于socket <br />
&nbsp;log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender <br />
&nbsp;log4j.appender.SOCKET.RemoteHost=localhost <br />
&nbsp;log4j.appender.SOCKET.Port=5001 <br />
&nbsp;log4j.appender.SOCKET.LocationInfo=true <br />
&nbsp;# Set up for Log Facter 5 <br />
&nbsp;log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n </p>
<p><br />
&nbsp;# Log Factor 5 Appender <br />
&nbsp;log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender <br />
&nbsp;log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 </p>
<p>&nbsp;# 发送日志给邮件 </p>
<p>&nbsp;log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender <br />
&nbsp;log4j.appender.MAIL.Threshold=FATAL <br />
&nbsp;log4j.appender.MAIL.BufferSize=10 <br />
&nbsp;log4j.appender.MAIL.From=web@www.wuset.com <br />
&nbsp;log4j.appender.MAIL.SMTPHost=www.wusetu.com <br />
&nbsp;log4j.appender.MAIL.Subject=Log4J Message <br />
&nbsp;log4j.appender.MAIL.To=web@www.wusetu.com <br />
&nbsp;log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p>&nbsp;# 用于数据库 <br />
&nbsp;log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender <br />
&nbsp;log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test <br />
&nbsp;log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver <br />
&nbsp;log4j.appender.DATABASE.user=root <br />
&nbsp;log4j.appender.DATABASE.password= <br />
&nbsp;log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') <br />
&nbsp;log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n </p>
<p><br />
&nbsp;log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender <br />
&nbsp;log4j.appender.A1.File=SampleMessages.log4j <br />
&nbsp;log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' <br />
&nbsp;log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout </p>
<p>&nbsp;#自定义Appender </p>
<p>&nbsp;log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender </p>
<p>&nbsp;log4j.appender.im.host = mail.cybercorlin.net <br />
&nbsp;log4j.appender.im.username = username <br />
&nbsp;log4j.appender.im.password = password <br />
&nbsp;log4j.appender.im.recipient = corlin@cybercorlin.net </p>
<p>&nbsp;log4j.appender.im.layout=org.apache.log4j.PatternLayout <br />
&nbsp;log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=488099</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载出处：http://blog.csdn.net/hbuzhang/archive/2006/01/13/578231.aspx</p>
<img src ="http://www.blogjava.net/absolutedo/aggbug/291419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-08-17 09:45 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/17/291419.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp温习 自定义标签V1.1</title><link>http://www.blogjava.net/absolutedo/archive/2009/08/05/289953.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Wed, 05 Aug 2009 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/08/05/289953.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/289953.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/08/05/289953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/289953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/289953.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 昨天同事在项目开发的工程中遇见这样的一个问题比如说有两个表表一:表二:在jsp页面显示的时候,查询出来的 zj0000_zjpbzy 显示是2,4&nbsp;&nbsp; 2,3&nbsp;&nbsp; 2,3,4&nbsp; 同事想在页面显示 计算机软件,计算机硬件计算机软件,计算机网络计算机软件,计算机硬件,计算机网络我想通过写一个自定义标签...&nbsp;&nbsp;<a href='http://www.blogjava.net/absolutedo/archive/2009/08/05/289953.html'>阅读全文</a><img src ="http://www.blogjava.net/absolutedo/aggbug/289953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-08-05 15:07 <a href="http://www.blogjava.net/absolutedo/archive/2009/08/05/289953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp温习  自定义标签V1.0</title><link>http://www.blogjava.net/absolutedo/archive/2009/07/28/288667.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Tue, 28 Jul 2009 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/07/28/288667.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/288667.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/07/28/288667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/288667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/288667.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 昨天同事在项目开发的工程中遇见这样的一个问题比如说有两个表表一:表二:在jsp页面显示的时候,查询出来的 zj0000_zjpbzy 显示是2,4&nbsp;&nbsp; 2,3&nbsp;&nbsp; 2,3,4&nbsp; 同事想在页面显示 计算机软件,计算机硬件计算机软件,计算机网络计算机软件,计算机硬件,计算机网络我想通过写一个自定义标签...&nbsp;&nbsp;<a href='http://www.blogjava.net/absolutedo/archive/2009/07/28/288667.html'>阅读全文</a><img src ="http://www.blogjava.net/absolutedo/aggbug/288667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-07-28 09:01 <a href="http://www.blogjava.net/absolutedo/archive/2009/07/28/288667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java学习:C/S结构的登陆页面</title><link>http://www.blogjava.net/absolutedo/archive/2009/06/04/280095.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Thu, 04 Jun 2009 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/06/04/280095.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/280095.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/06/04/280095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/280095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/280095.html</trackback:ping><description><![CDATA[准备给公司的一个项目写一个C/S结构的登陆页面,想实现与WEB项目交互,其实也就是登陆的功能吧,目前主要编写了一个登陆界面(C/S结构的界面真的不太好布局,如果不用专业的工具的话),具体的事件的监听和响应还没有写,最近一段时间会完成!<br />
具体界面如下图:<br />
<br />
<img height="250" alt="" src="http://www.blogjava.net/images/blogjava_net/absolutedo/login2.jpg" width="300" border="0" /><br />
<br />
&nbsp;具体代码如下:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.jbase.ui;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Container;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.event.ActionEvent;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.event.ActionListener;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JButton;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JFrame;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JLabel;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JPanel;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JPasswordField;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JTextField;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;LoginUI&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;JFrame<br />
<img id="Codehighlighter1_336_2202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_336_2202_Open_Text.style.display='none'; Codehighlighter1_336_2202_Closed_Image.style.display='inline'; Codehighlighter1_336_2202_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_336_2202_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_336_2202_Closed_Text.style.display='none'; Codehighlighter1_336_2202_Open_Image.style.display='inline'; Codehighlighter1_336_2202_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_336_2202_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_336_2202_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;JLabel&nbsp;name,code;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;JTextField&nbsp;username;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;&nbsp;JPasswordField&nbsp;password;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;JButton&nbsp;submit,reset;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;JPanel&nbsp;orgPanel;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;width,height;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;LoginUI()<br />
<img id="Codehighlighter1_540_1909_Open_Image" onclick="this.style.display='none'; Codehighlighter1_540_1909_Open_Text.style.display='none'; Codehighlighter1_540_1909_Closed_Image.style.display='inline'; Codehighlighter1_540_1909_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_540_1909_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_540_1909_Closed_Text.style.display='none'; Codehighlighter1_540_1909_Open_Image.style.display='inline'; Codehighlighter1_540_1909_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_540_1909_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_540_1909_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">系统登陆界面</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JLabel(</span><span style="color: #000000">"</span><span style="color: #000000">用户名:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JLabel(</span><span style="color: #000000">"</span><span style="color: #000000">密&nbsp;&nbsp;码:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name.setBounds(</span><span style="color: #000000">20</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">55</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">50</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code.setBounds(</span><span style="color: #000000">20</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">90</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">55</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">50</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JTextField(</span><span style="color: #000000">10</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JPasswordField();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username.setBounds(</span><span style="color: #000000">90</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">25</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password.setBounds(</span><span style="color: #000000">90</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">25</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submit</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JButton(</span><span style="color: #000000">"</span><span style="color: #000000">登陆</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reset</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JButton(</span><span style="color: #000000">"</span><span style="color: #000000">重置</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submit.setBounds(</span><span style="color: #000000">80</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reset.setBounds(</span><span style="color: #000000">170</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">,</span><span style="color: #000000">60</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgPanel</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JPanel();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgPanel.setLayout(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgPanel.add(name);orgPanel.add(username);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgPanel.add(code);orgPanel.add(password);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orgPanel.add(submit);orgPanel.add(reset);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submit.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SubmitActionListener());</span><span style="color: #008000">//</span><span style="color: #008000">内部类实现方式</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1259_1382_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1259_1382_Open_Text.style.display='none'; Codehighlighter1_1259_1382_Closed_Image.style.display='inline'; Codehighlighter1_1259_1382_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1259_1382_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1259_1382_Closed_Text.style.display='none'; Codehighlighter1_1259_1382_Open_Image.style.display='inline'; Codehighlighter1_1259_1382_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reset.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ActionListener()</span><span id="Codehighlighter1_1259_1382_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1259_1382_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">匿名内部类实现方式</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;actionPerformed(ActionEvent&nbsp;e)<br />
<img id="Codehighlighter1_1321_1378_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1321_1378_Open_Text.style.display='none'; Codehighlighter1_1321_1378_Closed_Image.style.display='inline'; Codehighlighter1_1321_1378_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1321_1378_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1321_1378_Closed_Text.style.display='none'; Codehighlighter1_1321_1378_Open_Image.style.display='inline'; Codehighlighter1_1321_1378_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1321_1378_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1321_1378_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username.setText(</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password.setText(</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container&nbsp;contentPanel</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.getContentPane();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contentPanel.add(orgPanel);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setSize(</span><span style="color: #000000">300</span><span style="color: #000000">,</span><span style="color: #000000">250</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1497_1746_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1497_1746_Open_Text.style.display='none'; Codehighlighter1_1497_1746_Closed_Image.style.display='inline'; Codehighlighter1_1497_1746_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1497_1746_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1497_1746_Closed_Text.style.display='none'; Codehighlighter1_1497_1746_Open_Image.style.display='inline'; Codehighlighter1_1497_1746_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1497_1746_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1497_1746_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;设置窗口居中显示<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;width=Toolkit.getDefaultToolkit().getScreenSize().getWidth();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;height=Toolkit.getDefaultToolkit().getScreenSize().getHeight();&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;this.setLocation((int)(width-this.getWidth())/2,&nbsp;(int)(height-this.getHeight())/2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setLocationRelativeTo(</span><span style="color: #0000ff">null</span><span style="color: #000000">);&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setVisible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setResizable(</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1912_1936_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1912_1936_Open_Text.style.display='none'; Codehighlighter1_1912_1936_Closed_Image.style.display='inline'; Codehighlighter1_1912_1936_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1912_1936_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1912_1936_Closed_Text.style.display='none'; Codehighlighter1_1912_1936_Open_Image.style.display='inline'; Codehighlighter1_1912_1936_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1912_1936_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_1912_1936_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;内部类实现submit监听<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SubmitActionListener&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;ActionListener<br />
<img id="Codehighlighter1_1993_2137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1993_2137_Open_Text.style.display='none'; Codehighlighter1_1993_2137_Closed_Image.style.display='inline'; Codehighlighter1_1993_2137_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1993_2137_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1993_2137_Closed_Text.style.display='none'; Codehighlighter1_1993_2137_Open_Image.style.display='inline'; Codehighlighter1_1993_2137_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1993_2137_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1993_2137_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;actionPerformed(ActionEvent&nbsp;e)<br />
<img id="Codehighlighter1_2042_2134_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2042_2134_Open_Text.style.display='none'; Codehighlighter1_2042_2134_Closed_Image.style.display='inline'; Codehighlighter1_2042_2134_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2042_2134_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2042_2134_Closed_Text.style.display='none'; Codehighlighter1_2042_2134_Open_Image.style.display='inline'; Codehighlighter1_2042_2134_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2042_2134_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2042_2134_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(username.getText()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">String.valueOf(password.getPassword()));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;ss)<br />
<img id="Codehighlighter1_2180_2200_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2180_2200_Open_Text.style.display='none'; Codehighlighter1_2180_2200_Closed_Image.style.display='inline'; Codehighlighter1_2180_2200_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2180_2200_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2180_2200_Closed_Text.style.display='none'; Codehighlighter1_2180_2200_Open_Image.style.display='inline'; Codehighlighter1_2180_2200_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2180_2200_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2180_2200_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LoginUI();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<img src ="http://www.blogjava.net/absolutedo/aggbug/280095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-06-04 23:03 <a href="http://www.blogjava.net/absolutedo/archive/2009/06/04/280095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java学习:对半查找算法 递归写法</title><link>http://www.blogjava.net/absolutedo/archive/2009/05/05/268909.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Tue, 05 May 2009 01:09:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/05/05/268909.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/268909.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/05/05/268909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/268909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/268909.html</trackback:ping><description><![CDATA[<p>&nbsp;<font color="darkgreen"><strong>对半查找</strong> </font>（<span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Binary Search</span><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">）的基本思想是，首先</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K</span><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">与表中间（记录）的关键词</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"> K<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dbz.gif" width="6" align="absBottom"  alt="" /> </span><sub><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">n/2<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dby.gif" width="5" align="absBottom"  alt="" /></span></sub><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">比较，其结果有三种情况：（</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K</span><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">＜</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dbz.gif" width="6" align="absBottom"  alt="" /></span><sub><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">n/2<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dby.gif" width="5" align="absBottom"  alt="" /></span></sub><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">，</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K= K<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dbz.gif" width="6" align="absBottom"  alt="" /> </span><sub><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">n/2</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体"> <img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dby.gif" width="5" align="absBottom"  alt="" /> </span></sub><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">，</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K</span><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">＞</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">K<img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dbz.gif" width="6" align="absBottom"  alt="" /></span><sub><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">n/2<font face="Symbol"><img height="14" src="http://course.cug.edu.cn/21cn/%CA%FD%BE%DD%BD%E1%B9%B9/images/common/dby.gif" width="5" align="absBottom"  alt="" /></font></span></sub><span style="font-family: 宋体; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">）；然后根据比较结果就能确定下一次应该到表的哪一半中去查找（或查找成功），并对确定了的这一半重复上述过程，如此下去直到表的长度递减为</span><span lang="EN-US" style="font-family: Times New Roman; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">1<span style="mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-spacerun: yes">&nbsp; </span><strong style="mso-bidi-font-weight: normal">.</strong></span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_26_670_Open_Image" onclick="this.style.display='none'; Codehighlighter1_26_670_Open_Text.style.display='none'; Codehighlighter1_26_670_Closed_Image.style.display='inline'; Codehighlighter1_26_670_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_26_670_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_26_670_Closed_Text.style.display='none'; Codehighlighter1_26_670_Open_Image.style.display='inline'; Codehighlighter1_26_670_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;IntegerQuery&nbsp;</span><span id="Codehighlighter1_26_670_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_26_670_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;query(</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;arrays,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;queryVal,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;begin,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;end)<br />
<img id="Codehighlighter1_100_518_Open_Image" onclick="this.style.display='none'; Codehighlighter1_100_518_Open_Text.style.display='none'; Codehighlighter1_100_518_Closed_Image.style.display='inline'; Codehighlighter1_100_518_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_100_518_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_100_518_Closed_Text.style.display='none'; Codehighlighter1_100_518_Open_Image.style.display='inline'; Codehighlighter1_100_518_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_100_518_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_100_518_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;centerIndex</span><span style="color: #000000">=</span><span style="color: #000000">(begin</span><span style="color: #000000">+</span><span style="color: #000000">end)</span><span style="color: #000000">/</span><span style="color: #000000">2</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;centerVal</span><span style="color: #000000">=</span><span style="color: #000000">arrays[centerIndex];<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(begin</span><span style="color: #000000">&gt;</span><span style="color: #000000">end)</span><span style="color: #008000">//</span><span style="color: #008000">init&nbsp;error</span><span style="color: #008000"><br />
<img id="Codehighlighter1_202_272_Open_Image" onclick="this.style.display='none'; Codehighlighter1_202_272_Open_Text.style.display='none'; Codehighlighter1_202_272_Closed_Image.style.display='inline'; Codehighlighter1_202_272_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_202_272_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_202_272_Closed_Text.style.display='none'; Codehighlighter1_202_272_Open_Image.style.display='inline'; Codehighlighter1_202_272_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_202_272_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_202_272_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(queryVal</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;not&nbsp;in&nbsp;this&nbsp;array!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(queryVal</span><span style="color: #000000">==</span><span style="color: #000000">centerVal)<br />
<img id="Codehighlighter1_302_395_Open_Image" onclick="this.style.display='none'; Codehighlighter1_302_395_Open_Text.style.display='none'; Codehighlighter1_302_395_Closed_Image.style.display='inline'; Codehighlighter1_302_395_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_302_395_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_302_395_Closed_Text.style.display='none'; Codehighlighter1_302_395_Open_Image.style.display='inline'; Codehighlighter1_302_395_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_302_395_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_302_395_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(queryVal</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;in&nbsp;this&nbsp;array,it's&nbsp;index&nbsp;is:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">centerIndex);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(queryVal</span><span style="color: #000000">&gt;</span><span style="color: #000000">centerVal)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin</span><span style="color: #000000">=</span><span style="color: #000000">centerIndex</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end</span><span style="color: #000000">=</span><span style="color: #000000">centerIndex</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query(arrays,queryVal,begin,end);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_560_668_Open_Image" onclick="this.style.display='none'; Codehighlighter1_560_668_Open_Text.style.display='none'; Codehighlighter1_560_668_Closed_Image.style.display='inline'; Codehighlighter1_560_668_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_560_668_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_560_668_Closed_Text.style.display='none'; Codehighlighter1_560_668_Open_Image.style.display='inline'; Codehighlighter1_560_668_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)</span><span id="Codehighlighter1_560_668_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_560_668_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_577_601_Open_Image" onclick="this.style.display='none'; Codehighlighter1_577_601_Open_Text.style.display='none'; Codehighlighter1_577_601_Closed_Image.style.display='inline'; Codehighlighter1_577_601_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_577_601_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_577_601_Closed_Text.style.display='none'; Codehighlighter1_577_601_Open_Image.style.display='inline'; Codehighlighter1_577_601_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;arrays</span><span style="color: #000000">=</span><span id="Codehighlighter1_577_601_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_577_601_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">4</span><span style="color: #000000">,</span><span style="color: #000000">5</span><span style="color: #000000">,</span><span style="color: #000000">7</span><span style="color: #000000">,</span><span style="color: #000000">9</span><span style="color: #000000">,</span><span style="color: #000000">12</span><span style="color: #000000">,</span><span style="color: #000000">15</span><span style="color: #000000">,</span><span style="color: #000000">24</span><span style="color: #000000">,</span><span style="color: #000000">32</span><span style="color: #000000">}</span></span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;queryVal</span><span style="color: #000000">=</span><span style="color: #000000">24</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query(arrays,queryVal,</span><span style="color: #000000">0</span><span style="color: #000000">,arrays.length</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<img src ="http://www.blogjava.net/absolutedo/aggbug/268909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-05-05 09:09 <a href="http://www.blogjava.net/absolutedo/archive/2009/05/05/268909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习  NineByNine  乘法口诀</title><link>http://www.blogjava.net/absolutedo/archive/2009/04/21/266863.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Tue, 21 Apr 2009 14:50:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2009/04/21/266863.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/266863.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2009/04/21/266863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/266863.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/266863.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.jbase.test;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_49_535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_535_Open_Text.style.display='none'; Codehighlighter1_49_535_Closed_Image.style.display='inline'; Codehighlighter1_49_535_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_535_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_49_535_Closed_Text.style.display='none'; Codehighlighter1_49_535_Open_Image.style.display='inline'; Codehighlighter1_49_535_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;NinebyNine&nbsp;</span><span id="Codehighlighter1_49_535_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_49_535_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;m</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String&nbsp;args[])<br />
<img id="Codehighlighter1_142_533_Open_Image" onclick="this.style.display='none'; Codehighlighter1_142_533_Open_Text.style.display='none'; Codehighlighter1_142_533_Closed_Image.style.display='inline'; Codehighlighter1_142_533_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_142_533_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_142_533_Closed_Text.style.display='none'; Codehighlighter1_142_533_Open_Image.style.display='inline'; Codehighlighter1_142_533_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_142_533_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_142_533_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_146_339_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_339_Open_Text.style.display='none'; Codehighlighter1_146_339_Closed_Image.style.display='inline'; Codehighlighter1_146_339_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_146_339_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_339_Closed_Text.style.display='none'; Codehighlighter1_146_339_Open_Image.style.display='inline'; Codehighlighter1_146_339_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_146_339_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_146_339_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=1;i&lt;=9;i++)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j=1;j&lt;=i;j++)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==j)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i+"x"+j+"="+i*j+"\t");<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(i+"x"+j+"="+i*j+"\t");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(m</span><span style="color: #000000">&lt;=</span><span style="color: #000000">9</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_357_527_Open_Image" onclick="this.style.display='none'; Codehighlighter1_357_527_Open_Text.style.display='none'; Codehighlighter1_357_527_Closed_Image.style.display='inline'; Codehighlighter1_357_527_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_357_527_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_357_527_Closed_Text.style.display='none'; Codehighlighter1_357_527_Open_Image.style.display='inline'; Codehighlighter1_357_527_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_357_527_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_357_527_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(n</span><span style="color: #000000">&lt;=</span><span style="color: #000000">m)<br />
<img id="Codehighlighter1_377_507_Open_Image" onclick="this.style.display='none'; Codehighlighter1_377_507_Open_Text.style.display='none'; Codehighlighter1_377_507_Closed_Image.style.display='inline'; Codehighlighter1_377_507_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_377_507_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_377_507_Closed_Text.style.display='none'; Codehighlighter1_377_507_Open_Image.style.display='inline'; Codehighlighter1_377_507_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_377_507_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_377_507_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(n</span><span style="color: #000000">==</span><span style="color: #000000">m)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(m</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">x</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">n</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">m</span><span style="color: #000000">*</span><span style="color: #000000">n</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(m</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">x</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">n</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">m</span><span style="color: #000000">*</span><span style="color: #000000">n</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
呵呵,在用sql写小学生的九九乘法口诀,无奈sql中没有类似for循环的语句,好象只好while来控制,写来写去,效果就是出不来,自己先用java写了下,用两个for循环,很快就写好了,只是调整了一下输出格式.但是我用while循环控制语句的时候,一开始还是出错了,想是想到跳出内层循环的时候,j的值要从1开始,我竟然在内层循环这样写:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">if</span><span style="color: #000000">(n</span><span style="color: #000000">==</span><span style="color: #000000">m)<br />
<img id="Codehighlighter1_9_25_Open_Image" onclick="this.style.display='none'; Codehighlighter1_9_25_Open_Text.style.display='none'; Codehighlighter1_9_25_Closed_Image.style.display='inline'; Codehighlighter1_9_25_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_9_25_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_9_25_Closed_Text.style.display='none'; Codehighlighter1_9_25_Open_Image.style.display='inline'; Codehighlighter1_9_25_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_9_25_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_9_25_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;n</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;n</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
直接导致myeclipse down掉了,见笑了,呵呵!<br />
<br />
sql 写的乘法口诀如下:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@i</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">,</span><span style="color: #008000">@j</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">,</span><span style="color: #008000">@str</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1024</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@i</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@j</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@str</span><span style="color: #808080">=</span><span style="color: #ff0000">''</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">while</span><span style="color: #000000">(</span><span style="color: #008000">@i</span><span style="color: #808080">&lt;=</span><span style="font-weight: bold; color: #800000">9</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(</span><span style="color: #008000">@j</span><span style="color: #808080">&lt;=</span><span style="color: #008000">@i</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@j</span><span style="color: #808080">=</span><span style="color: #008000">@i</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@str</span><span style="color: #808080">=</span><span style="color: #008000">@str</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #000000">char</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">9</span><span style="color: #000000">)</span><span style="color: #808080">+</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(</span><span style="color: #008000">@i</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">))</span><span style="color: #808080">+</span><span style="color: #ff0000">'</span><span style="color: #ff0000">*</span><span style="color: #ff0000">'</span><span style="color: #808080">+</span><span style="color: #ff00ff">convert</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">),</span><span style="color: #008000">@j</span><span style="color: #000000">)</span><span style="color: #808080">+</span><span style="color: #ff0000">'</span><span style="color: #ff0000">=</span><span style="color: #ff0000">'</span><span style="color: #808080">+</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(</span><span style="color: #008000">@i</span><span style="color: #808080">*</span><span style="color: #008000">@j</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">))</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #000000">char</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">13</span><span style="color: #000000">)<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@str</span><span style="color: #808080">=</span><span style="color: #008000">@str</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #000000">char</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">9</span><span style="color: #000000">)</span><span style="color: #808080">+</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(</span><span style="color: #008000">@i</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">))</span><span style="color: #808080">+</span><span style="color: #ff0000">'</span><span style="color: #ff0000">*</span><span style="color: #ff0000">'</span><span style="color: #808080">+</span><span style="color: #ff00ff">convert</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">),</span><span style="color: #008000">@j</span><span style="color: #000000">)</span><span style="color: #808080">+</span><span style="color: #ff0000">'</span><span style="color: #ff0000">=</span><span style="color: #ff0000">'</span><span style="color: #808080">+</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(</span><span style="color: #008000">@i</span><span style="color: #808080">*</span><span style="color: #008000">@j</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000">))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@j</span><span style="color: #808080">=</span><span style="color: #008000">@j</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@i</span><span style="color: #808080">=</span><span style="color: #008000">@i</span><span style="color: #808080">+</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@j</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@str</span></div>
<br />
打印效果:<br />
<img height="137" alt="" src="http://www.blogjava.net/images/blogjava_net/absolutedo/9x9.jpg" width="567" border="0" /><br />
<img src ="http://www.blogjava.net/absolutedo/aggbug/266863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2009-04-21 22:50 <a href="http://www.blogjava.net/absolutedo/archive/2009/04/21/266863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习  JDBC连接SQLServer2K测试</title><link>http://www.blogjava.net/absolutedo/archive/2008/12/04/244270.html</link><dc:creator>absolutej</dc:creator><author>absolutej</author><pubDate>Thu, 04 Dec 2008 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/absolutedo/archive/2008/12/04/244270.html</guid><wfw:comment>http://www.blogjava.net/absolutedo/comments/244270.html</wfw:comment><comments>http://www.blogjava.net/absolutedo/archive/2008/12/04/244270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/absolutedo/comments/commentRss/244270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/absolutedo/services/trackbacks/244270.html</trackback:ping><description><![CDATA[<p>刚装完数据库,JDK什么的,呵呵,可能是由于自己没有整理的习惯,每次都要写个连接测试类,看JDBC连接是否成功.今天把以前写的一个简单的JDBC测试类放到博客里,以后要用,直接考过去就可以了.<br />
<br />
import java.sql.SQLException;<br />
import java.lang.ClassNotFoundException;<br />
import java.sql.Connection ;<br />
import java.sql.DriverManager;<br />
<br />
public class T <br />
{</p>
<p>&nbsp;&nbsp;&nbsp; public static void main(String[] args)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection &nbsp;conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433","sa","sa");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Weather Connect Success?"+conn!=null?"Success":"Failure");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(ClassNotFoundException cnfe) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnfe.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(SQLException e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br />
}</p>
 <img src ="http://www.blogjava.net/absolutedo/aggbug/244270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/absolutedo/" target="_blank">absolutej</a> 2008-12-04 09:33 <a href="http://www.blogjava.net/absolutedo/archive/2008/12/04/244270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>