<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>C lei</title>
    <description>  埋头苦干、低调做事</description>
    <link>http://c-lei.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>关于Response拦截并压缩</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/195537" style="color:red;">http://c-lei.javaeye.com/blog/195537</a>&nbsp;
          发表时间: 2008年05月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>一下代码 来自pebble-2.3.1</p>
<p>首先是一个过滤器拦截response</p>
<pre name="code" class="java">import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class GZIPFilter implements Filter {

  public void doFilter(ServletRequest req, ServletResponse res,
                       FilterChain chain) throws IOException, ServletException {

      HttpServletRequest request = (HttpServletRequest) req;
      HttpServletResponse response = (HttpServletResponse) res;

      String ae = request.getHeader("Accept-Encoding");
      if (ae != null &amp;&amp; ae.indexOf("gzip") != -1) {
        GZIPResponseWrapper wrappedResponse = new GZIPResponseWrapper(response);
        chain.doFilter(req, wrappedResponse);
        wrappedResponse.finishResponse();
      } else {
        chain.doFilter(req, res);
      }
  }

  public void init(FilterConfig filterConfig) {
  }

  public void destroy() {
  }

}
</pre>
<p>&nbsp;GZIPResponseWrapper 类继承 HttpServletResponseWrapper，主要重写getOutputStream() ，getWriter() 方法</p>
<pre name="code" class="java">import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class GZIPResponseWrapper extends HttpServletResponseWrapper {

  protected HttpServletResponse wrappedResponse = null;
  protected ServletOutputStream stream = null;
  protected PrintWriter writer = null;

  public GZIPResponseWrapper(HttpServletResponse response) {
    super(response);
    wrappedResponse = response;
  }

  public ServletOutputStream createOutputStream() throws IOException {
    return (new GZIPResponseStream(wrappedResponse));
  }

  public void finishResponse() {
    try {
      if (writer != null) {
        writer.close();
      } else {
        if (stream != null) {
          stream.close();
        }
      }
    } catch (IOException e) {
    }
  }

  public void flushBuffer() throws IOException {
    stream.flush();
  }

  public ServletOutputStream getOutputStream() throws IOException {
    if (writer != null) {
      throw new IllegalStateException("getWriter() has already been called!");
    }

    if (stream == null)
      stream = createOutputStream();
    return (stream);
  }

  public PrintWriter getWriter() throws IOException {
    if (writer != null) {
      return (writer);
    }

    if (stream != null) {
      throw new IllegalStateException("getOutputStream() has already been called!");
    }

    stream = createOutputStream();
    writer = new PrintWriter(new OutputStreamWriter(stream, "UTF-8"));
    return (writer);
  }

  public void setContentLength(int length) {
  }

}


</pre>
<p>&nbsp;GZIPResponseStream 继承 ServletOutputStream，主要重写write方法</p>
<pre name="code" class="java">import java.io.*;
import java.util.zip.GZIPOutputStream;
import javax.servlet.*;
import javax.servlet.http.*;

public class GZIPResponseStream extends ServletOutputStream {

  protected ByteArrayOutputStream baos = null;
  protected GZIPOutputStream gzipstream = null;
  protected boolean closed = false;
  protected HttpServletResponse response = null;
  protected ServletOutputStream output = null;

  public GZIPResponseStream(HttpServletResponse response) throws IOException {
    closed = false;
    this.response = response;
    this.output = response.getOutputStream();
    baos = new ByteArrayOutputStream();
    gzipstream = new GZIPOutputStream(baos);
  }

  public void close() throws IOException {
    if (closed) {
      throw new IOException("This output stream has already been closed");
    }
    gzipstream.finish();
    gzipstream.flush();
    gzipstream.close();

    byte[] bytes = baos.toByteArray();
    response.setContentLength(bytes.length);
    response.addHeader("Content-Encoding", "gzip");
    output.write(bytes);
    output.flush();
    output.close();
    closed = true;
  }

  public void flush() throws IOException {
    if (closed) {
      throw new IOException("Cannot flush a closed output stream");
    }
    gzipstream.flush();
  }

  public void write(int b) throws IOException {
    if (closed) {
      throw new IOException("Cannot write to a closed output stream");
    }
    gzipstream.write((byte) b);
  }

  public void write(byte b[]) throws IOException {
    write(b, 0, b.length);
  }

  public void write(byte b[], int off, int len) throws IOException {
    if (closed) {
      throw new IOException("Cannot write to a closed output stream");
    }
    gzipstream.write(b, off, len);
  }

  public boolean closed() {
    return (this.closed);
  }

  public void reset() {
  }

}</pre>
<p>&nbsp;</p>
<p>GZIPOutputStream 说明 来自 JDK API 1.6.0 中文版</p>
<dl><dt>
<pre>public class <strong>GZIPOutputStream</strong><dt>extends <a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html" title="java.util.zip 中的类">DeflaterOutputStream</a></dt></pre>
</dt></dl>
<pre></pre>
<p>此类为使用 GZIP 文件格式写入压缩数据实现流过滤器。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<p><!-- =========== FIELD SUMMARY =========== --><a name="field_summary"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left" colspan="2"><span style="font-size: x-small;"><strong>字段摘要</strong></span></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td align="right" valign="top" width="1%"><span><code>protected &nbsp;<a href="http://c-lei.javaeye.com/java/util/zip/CRC32.html" title="java.util.zip 中的类">CRC32</a></code></span></td>
<td><code><strong><a href="http://c-lei.javaeye.com/java/util/zip/GZIPOutputStream.html#crc">crc</a></strong></code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未压缩数据的 CRC-32 。</td>
</tr>
</tbody>
</table>
&nbsp;<a name="fields_inherited_from_class_java.util.zip.DeflaterOutputStream"><!-- --></a> 
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableSubHeadingColor" bgcolor="#eeeeff">
<th align="left"><strong>从类 java.util.zip.<a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html" title="java.util.zip 中的类">DeflaterOutputStream</a> 继承的字段</strong></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#buf">buf</a>, <a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#def">def</a></code></td>
</tr>
</tbody>
</table>
&nbsp;<a name="fields_inherited_from_class_java.io.FilterOutputStream"><!-- --></a> 
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableSubHeadingColor" bgcolor="#eeeeff">
<th align="left"><strong>从类 java.io.<a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html" title="java.io 中的类">FilterOutputStream</a> 继承的字段</strong></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html#out">out</a></code></td>
</tr>
</tbody>
</table>
&nbsp; <!-- ======== CONSTRUCTOR SUMMARY ======== --><a name="constructor_summary"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left" colspan="2"><span style="font-size: x-small;"><strong>构造方法摘要</strong></span></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><strong><a href="http://c-lei.javaeye.com/java/util/zip/GZIPOutputStream.html#GZIPOutputStream(java.io.OutputStream)">GZIPOutputStream</a></strong>(<a href="http://c-lei.javaeye.com/java/io/OutputStream.html" title="java.io 中的类">OutputStream</a>&nbsp;out)</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用默认缓冲区大小创建新的输出流。</td>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><strong><a href="http://c-lei.javaeye.com/java/util/zip/GZIPOutputStream.html#GZIPOutputStream(java.io.OutputStream, int)">GZIPOutputStream</a></strong>(<a href="http://c-lei.javaeye.com/java/io/OutputStream.html" title="java.io 中的类">OutputStream</a>&nbsp;out, int&nbsp;size)</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用指定缓冲区大小创建新的输出流。</td>
</tr>
</tbody>
</table>
&nbsp; <!-- ========== METHOD SUMMARY =========== --><a name="method_summary"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left" colspan="2"><span style="font-size: x-small;"><strong>方法摘要</strong></span></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td align="right" valign="top" width="1%"><span><code>&nbsp;void</code></span></td>
<td><code><strong><a href="http://c-lei.javaeye.com/java/util/zip/GZIPOutputStream.html#finish()">finish</a></strong>()</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完成将压缩数据写入输出流的操作，无需关闭底层流。</td>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td align="right" valign="top" width="1%"><span><code>&nbsp;void</code></span></td>
<td><code><strong><a href="http://c-lei.javaeye.com/java/util/zip/GZIPOutputStream.html#write(byte[], int, int)">write</a></strong>(byte[]&nbsp;buf, int&nbsp;off, int&nbsp;len)</code> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将字节数组写入压缩输出流。</td>
</tr>
</tbody>
</table>
&nbsp;<a name="methods_inherited_from_class_java.util.zip.DeflaterOutputStream"><!-- --></a> 
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableSubHeadingColor" bgcolor="#eeeeff">
<th align="left"><strong>从类 java.util.zip.<a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html" title="java.util.zip 中的类">DeflaterOutputStream</a> 继承的方法</strong></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#close()">close</a>, <a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#deflate()">deflate</a>, <a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#write(int)">write</a></code></td>
</tr>
</tbody>
</table>
&nbsp;<a name="methods_inherited_from_class_java.io.FilterOutputStream"><!-- --></a> 
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableSubHeadingColor" bgcolor="#eeeeff">
<th align="left"><strong>从类 java.io.<a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html" title="java.io 中的类">FilterOutputStream</a> 继承的方法</strong></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html#flush()">flush</a>, <a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html#write(byte[])">write</a></code></td>
</tr>
</tbody>
</table>
&nbsp;<a name="methods_inherited_from_class_java.lang.Object"><!-- --></a> 
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableSubHeadingColor" bgcolor="#eeeeff">
<th align="left"><strong>从类 java.lang.<a href="http://c-lei.javaeye.com/java/lang/Object.html" title="java.lang 中的类">Object</a> 继承的方法</strong></th>
</tr>
<tr class="TableRowColor" bgcolor="#ffffff">
<td><code><a href="http://c-lei.javaeye.com/java/lang/Object.html#clone()">clone</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#equals(java.lang.Object)">equals</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#finalize()">finalize</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#getClass()">getClass</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#hashCode()">hashCode</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#notify()">notify</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#notifyAll()">notifyAll</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#toString()">toString</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#wait()">wait</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#wait(long)">wait</a>, <a href="http://c-lei.javaeye.com/java/lang/Object.html#wait(long, int)">wait</a></code></td>
</tr>
</tbody>
</table>
&nbsp; </p>
<p><!-- ============ FIELD DETAIL =========== --><a name="field_detail"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left"><span style="font-size: x-small;"><strong>字段详细信息</strong></span></th>
</tr>
</tbody>
</table>
<a name="crc"><!-- --></a></p>
<h3>crc</h3>
<pre>protected <a href="http://c-lei.javaeye.com/java/util/zip/CRC32.html" title="java.util.zip 中的类">CRC32</a> <strong>crc</strong></pre>
<dl><dd>未压缩数据的 CRC-32 。
<p>&nbsp;</p>
<dl></dl></dd></dl>
<p><!-- ========= CONSTRUCTOR DETAIL ======== --><a name="constructor_detail"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left"><span style="font-size: x-small;"><strong>构造方法详细信息</strong></span></th>
</tr>
</tbody>
</table>
<a name="GZIPOutputStream(java.io.OutputStream, int)"><!-- --></a></p>
<h3>GZIPOutputStream</h3>
<pre>public <strong>GZIPOutputStream</strong>(<a href="http://c-lei.javaeye.com/java/io/OutputStream.html" title="java.io 中的类">OutputStream</a> out,
                        int size)
                 throws <a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></pre>
<dl><dd>使用指定缓冲区大小创建新的输出流。
<p>&nbsp;</p>
<dl><dt><strong>参数：</strong> </dt><dd><code>out</code> - 输出流 </dd><dd><code>size</code> - 输出缓冲区大小 </dd><dt><strong>抛出：</strong> </dt><dd><code><a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></code> - 如果发生 I/O 错误。 </dd><dd><code><a href="http://c-lei.javaeye.com/java/lang/IllegalArgumentException.html" title="java.lang 中的类">IllegalArgumentException</a></code> - 如果大小为 &lt;= 0</dd></dl></dd></dl>
<hr />
<p><a name="GZIPOutputStream(java.io.OutputStream)"><!-- --></a></p>
<h3>GZIPOutputStream</h3>
<pre>public <strong>GZIPOutputStream</strong>(<a href="http://c-lei.javaeye.com/java/io/OutputStream.html" title="java.io 中的类">OutputStream</a> out)
                 throws <a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></pre>
<dl><dd>使用默认缓冲区大小创建新的输出流。
<p>&nbsp;</p>
<dl><dt><strong>参数：</strong> </dt><dd><code>out</code> - 输出流 </dd><dt><strong>抛出：</strong> </dt><dd><code><a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></code> - 如果发生 I/O 错误。</dd></dl></dd></dl>
<p><!-- ============ METHOD DETAIL ========== --><a name="method_detail"><!-- --></a>
<table cellspacing="0" border="1" width="100%" cellpadding="3">
<tbody>
<tr class="TableHeadingColor" bgcolor="#ccccff">
<th align="left"><span style="font-size: x-small;"><strong>方法详细信息</strong></span></th>
</tr>
</tbody>
</table>
<a name="write(byte[], int, int)"><!-- --></a></p>
<h3>write</h3>
<pre>public void <strong>write</strong>(byte[] buf,
                  int off,
                  int len)
           throws <a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></pre>
<dl><dd>将字节数组写入压缩输出流。在写入所有字节前，此方法将阻塞。
<p>&nbsp;</p>
</dd><dd><dl><dt><strong>覆盖：</strong> </dt><dd>类 <code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html" title="java.util.zip 中的类">DeflaterOutputStream</a></code> 中的 <code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#write(byte[], int, int)">write</a></code></dd></dl></dd><dd><dl><dt><strong>参数：</strong> </dt><dd><code>buf</code> - 要写入的数据 </dd><dd><code>off</code> - 数据的初始偏移量 </dd><dd><code>len</code> - 数据的长度 </dd><dt><strong>抛出：</strong> </dt><dd><code><a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></code> - 如果发生 I/O 错误 </dd><dt><strong>另请参见：</strong> </dt><dd><a href="http://c-lei.javaeye.com/java/io/FilterOutputStream.html#write(int)"><code>FilterOutputStream.write(int)</code></a></dd></dl></dd></dl>
<hr />
<p><a name="finish()"><!-- --></a></p>
<h3>finish</h3>
<pre>public void <strong>finish</strong>()
            throws <a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></pre>
<dl><dd>完成将压缩数据写入输出流的操作，无需关闭底层流。对同一输出流相继应用多个过滤器时使用此方法。
<p>&nbsp;</p>
</dd><dd><dl><dt><strong>覆盖：</strong> </dt><dd>类 <code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html" title="java.util.zip 中的类">DeflaterOutputStream</a></code> 中的 <code><a href="http://c-lei.javaeye.com/java/util/zip/DeflaterOutputStream.html#finish()">finish</a></code></dd></dl></dd><dd><dl><dt><strong>抛出：</strong> </dt><dd><code><a href="http://c-lei.javaeye.com/java/io/IOException.html" title="java.io 中的类">IOException</a></code> - 如果发生 I/O 错误</dd></dl></dd></dl><!-- ========= END OF CLASS DATA ========= -->
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/195537#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 May 2008 10:38:01 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/195537</link>
        <guid>http://c-lei.javaeye.com/blog/195537</guid>
      </item>
      <item>
        <title>求字符串中出现次数最多的字符</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/188847" style="color:red;">http://c-lei.javaeye.com/blog/188847</a>&nbsp;
          发表时间: 2008年05月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">	/*
	 * 得到字符出现次数最多的字符
	 */
	public static void getMaxMinChar(String str) {
		Map&lt;Character, Integer&gt; map = new TreeMap&lt;Character, Integer&gt;();
		for (int i = 0; i &lt; str.length(); i++) {
			if (map.containsKey(str.charAt(i))) {
				map.put(str.charAt(i), map.get(str.charAt(i)) + 1);
			} else {
				map.put(str.charAt(i), 1);
			}
		}
		char maxchar = ' ';
		int maxnum = 0;
		for (char c : map.keySet()) {
			if (map.get(c) &gt; maxnum) {
				maxnum = map.get(c);
				maxchar = c;
			}
		}
		System.out.print("出现次数最到的字符：" + maxchar + "   出现次数=" + maxnum);
	}</pre>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/188847#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 May 2008 15:18:05 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/188847</link>
        <guid>http://c-lei.javaeye.com/blog/188847</guid>
      </item>
      <item>
        <title>.............</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/188836" style="color:red;">http://c-lei.javaeye.com/blog/188836</a>&nbsp;
          发表时间: 2008年05月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          .................
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/188836#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 May 2008 14:12:34 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/188836</link>
        <guid>http://c-lei.javaeye.com/blog/188836</guid>
      </item>
      <item>
        <title>java排序</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/188835" style="color:red;">http://c-lei.javaeye.com/blog/188835</a>&nbsp;
          发表时间: 2008年05月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">.........????</pre>
<pre name="code" class="java"> public static int[] sort(int[] num)
    {
        for (int i = 0; i &lt; num.length; i++)
        {
            for (int j = 0; j &lt; num.length- i - 1; j++)
            {
                int a = num[j];
                int b = num[j + 1];
                if (a &lt; b)
                {
                    num[j] = b;
                    num[j + 1] = a;
                }
            }
        }
        return num;
    }</pre>
<p><span style="color: #99ccff;">(依次取出数组中的值跟其他位置上的值比较)&nbsp; 此为选择排序？？</span></p>
<p>&nbsp;</p>
<pre name="code" class="java">	public static int[] sort(int[] num) {
		int temp;
		for(int i = 0; i &lt; num.length; i++){
			for(int j = i + 1;j &lt; num.length; j ++){
				if(num[i] &gt; num[j]){
					temp = num[i];
					num[i] = num[j];
					num[j] = temp;
				}
			}
		}
		return num;
	}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/188835#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 May 2008 14:12:31 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/188835</link>
        <guid>http://c-lei.javaeye.com/blog/188835</guid>
      </item>
      <item>
        <title>学习！</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/176609" style="color:red;">http://c-lei.javaeye.com/blog/176609</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="color: #99ccff"><strong>hibernate &gt; struts2 &gt; Spring &gt; Lucene &gt; dwr &gt;&nbsp;&nbsp;prototype &gt; ext &gt; css</strong></span> </p><p>&nbsp;</p><p>&nbsp;</p><p><strong><span style="color: #c0c0c0">Junit &gt; dbunit &gt;&nbsp;ant &gt;</span></strong> &nbsp;</p><p>&nbsp;</p><p>這些是在工作中迫切需要熟悉的!</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/176609#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 09:42:42 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/176609</link>
        <guid>http://c-lei.javaeye.com/blog/176609</guid>
      </item>
      <item>
        <title>项目中关于中文按拼音排序的处理</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/170704" style="color:red;">http://c-lei.javaeye.com/blog/170704</a>&nbsp;
          发表时间: 2008年03月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 针对<span style="font-size: small; color: #99ccff; font-family: 幼圆">User</span>实体中的姓名按拼音排序</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><pre name="code" class="java">import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;

public class User implements Comparable&lt;User&gt;{
	private String name;
	private int age;

	User(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return this.name;
	}

	public int getAge() {
		return this.age;
	}
	@Override
	public int compareTo(User other) {
		if (other == null) {
			return 1;
		}
		Comparator comparator = Collator.getInstance(Locale.CHINA);
		return comparator.compare(name, other.getName());
	}
}</pre><p>接下来测试下：</p><pre name="code" class="java">public static void main(String[] args) {
	User user01 = new User(&quot;阿三&quot;, 18);
	User user02 = new User(&quot;段蕾&quot;, 19);
	User user03 = new User(&quot;长江&quot;, 11);
	User user04 = new User(&quot;版主&quot;, 25);

	Set&lt;User&gt; set = new TreeSet&lt;User&gt;();

	set.add(user01);
	set.add(user02);
	set.add(user03);
	set.add(user04);
	for (User user : set) {
		System.out.print(user.getName() + &quot;---&quot;);
	}
}</pre><p>&nbsp;</p>输出结果如下：<pre name="code" class="java">阿三---版主---长江---段蕾---</pre>
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/170704#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Mar 2008 08:12:45 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/170704</link>
        <guid>http://c-lei.javaeye.com/blog/170704</guid>
      </item>
      <item>
        <title>有关压力的问题</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/170558" style="color:red;">http://c-lei.javaeye.com/blog/170558</a>&nbsp;
          发表时间: 2008年03月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近不知道为什么，感觉有压力，我自己想了下，可能最重要的问题是我对于自己的处境非常有危机感，因为自己实在是不怎么样，基本是没什么竞争力。所以最近一直都在拼命的看书，一点都没放松过。感觉自己一直处于高度运算的状态，一直都在思考。
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/170558#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 12 Mar 2008 15:55:22 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/170558</link>
        <guid>http://c-lei.javaeye.com/blog/170558</guid>
      </item>
      <item>
        <title>距離 </title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/169295" style="color:red;">http://c-lei.javaeye.com/blog/169295</a>&nbsp;
          发表时间: 2008年03月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我開始明白距離是可以產生美的
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/169295#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 08 Mar 2008 10:07:34 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/169295</link>
        <guid>http://c-lei.javaeye.com/blog/169295</guid>
      </item>
      <item>
        <title>思考中</title>
        <author>LEICHAO</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://c-lei.javaeye.com">LEICHAO</a>&nbsp;
          链接：<a href="http://c-lei.javaeye.com/blog/164719" style="color:red;">http://c-lei.javaeye.com/blog/164719</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; &nbsp; 首先要说的是，我的文笔不怎么样，我的技术也不怎么样，可是为了在N年后我还记得自己做过些什么，学过些什么，最终决定写下来。
          <br/>
          <span style="color:red;">
            <a href="http://c-lei.javaeye.com/blog/164719#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 12:42:39 +0800</pubDate>
        <link>http://c-lei.javaeye.com/blog/164719</link>
        <guid>http://c-lei.javaeye.com/blog/164719</guid>
      </item>
  </channel>
</rss>