﻿<?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-纪念SUN</title><link>http://www.blogjava.net/andyBlog/</link><description>Powered By Andy</description><language>zh-cn</language><lastBuildDate>Sat, 18 Apr 2026 17:53:49 GMT</lastBuildDate><pubDate>Sat, 18 Apr 2026 17:53:49 GMT</pubDate><ttl>60</ttl><item><title>测试clone</title><link>http://www.blogjava.net/andyBlog/archive/2011/12/26/367164.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Mon, 26 Dec 2011 02:54:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2011/12/26/367164.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/367164.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2011/12/26/367164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/367164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/367164.html</trackback:ping><description><![CDATA[<div>package cn.xx<br /><br />import java.io.ByteArrayInputStream;<br />import java.io.ByteArrayOutputStream;<br />import java.io.IOException;<br />import java.io.ObjectInputStream;<br />import java.io.ObjectOutputStream;<br />import java.io.Serializable;<br />import java.lang.reflect.InvocationTargetException;<br />import java.lang.reflect.Method;<br />import java.util.Arrays;<br /><br />/**<br />&nbsp;* &lt;pre&gt;<br />&nbsp;* @Types&nbsp;&nbsp; role : 测试clone<br /><br />&nbsp;* @Create&nbsp; time : 2011-12-26 : 上午10:49:39<br />&nbsp;* @ver&nbsp;&nbsp;&nbsp;&nbsp; curr : 1.0<br />&nbsp;* &lt;/pre&gt;<br />&nbsp;*/<br />public class TestClone implements Serializable{<br /><br />&nbsp;&nbsp; &nbsp;private static final long serialVersionUID = -7340886443308126418L;<br /><br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * &lt;pre&gt;<br />&nbsp;&nbsp; &nbsp; * @Methods role : 对象的Clone<br />&nbsp;&nbsp; &nbsp; * 注: 要clone对象必须要实现Serializable接口,　不然抛NoSerializableException<br />&nbsp;&nbsp; &nbsp; * &lt;/pre&gt;<br />&nbsp;&nbsp; &nbsp; * @param obj<br />&nbsp;&nbsp; &nbsp; * @return<br />&nbsp;&nbsp; &nbsp; * @throws IOException <br />&nbsp;&nbsp; &nbsp; * @throws ClassNotFoundException <br />&nbsp;&nbsp; &nbsp; * @Create&nbsp; time : 2011-12-23 : 下午5:26:57<br />&nbsp;&nbsp; &nbsp; * @ver&nbsp;&nbsp;&nbsp;&nbsp; curr : 1.0<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;@SuppressWarnings("unchecked")<br />&nbsp;&nbsp; &nbsp;public static &lt;T&gt; T invokeCopy(T obj) throws IOException, ClassNotFoundException{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//T newObj = null;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// write object to memory<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ByteArrayOutputStream bos = new ByteArrayOutputStream();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ObjectOutputStream oos = new ObjectOutputStream(bos);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;oos.writeObject(obj);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;oos.flush();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// read object come from memory<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ObjectInputStream ois = new ObjectInputStream(bis);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//newObj = (T)ois.readObject();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//bis.close();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//oos.close();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// return clone object<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return (T)ois.readObject();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * &lt;pre&gt;<br />&nbsp;&nbsp; &nbsp; * @Methods role : 实现对象的clone<br />&nbsp;&nbsp; &nbsp; * 两种方案(二选一实现都可以):<br />&nbsp;&nbsp; &nbsp; * 1: 实现Cloneable接口,　深度clone自己重写clone()实现,此方法只实现浅度clone<br />&nbsp;&nbsp; &nbsp; * 2: 实现Serializable接口<br />&nbsp;&nbsp; &nbsp; * @param obj<br />&nbsp;&nbsp; &nbsp; * @return<br />&nbsp;&nbsp; &nbsp; * @throws NoSuchMethodException<br />&nbsp;&nbsp; &nbsp; * @throws SecurityException<br />&nbsp;&nbsp; &nbsp; * @throws IllegalAccessException<br />&nbsp;&nbsp; &nbsp; * @throws IllegalArgumentException<br />&nbsp;&nbsp; &nbsp; * @throws InvocationTargetException<br />&nbsp;&nbsp; &nbsp; * @throws ClassNotFoundException<br />&nbsp;&nbsp; &nbsp; * @throws IOException<br />&nbsp;&nbsp; &nbsp; * @throws CloneNotSupportedException<br />&nbsp;&nbsp; &nbsp; * @Create&nbsp; time : 2011-12-26 : 上午10:31:37<br />&nbsp;&nbsp; &nbsp; * @ver&nbsp;&nbsp;&nbsp;&nbsp; curr : 1.0<br />&nbsp;&nbsp; &nbsp; * &lt;/pre&gt;<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public static&lt;T&gt; T clone(T obj) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IOException, CloneNotSupportedException{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// is null<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(null == obj) return null;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// is instanceof Cloneable<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(obj instanceof Cloneable){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return invokeClone(obj);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// is instanceof Serializable<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else if(obj instanceof Serializable){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return invokeCopy(obj);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// is not supported clone<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;throw new java.lang.CloneNotSupportedException();<br />&nbsp;&nbsp; &nbsp;}<br /><br />&nbsp;&nbsp; &nbsp;@SuppressWarnings("unchecked")<br />&nbsp;&nbsp; &nbsp;public static &lt;T&gt; T invokeClone(T obj) throws NoSuchMethodException,<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;IllegalAccessException, InvocationTargetException {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Class&lt;? extends Object&gt; classObject = obj.getClass();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Method method = classObject.getDeclaredMethod("clone");<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return (T)method.invoke(obj);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;public static void main(String[] args) throws ClassNotFoundException, IOException {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String x = "123";<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String v = invokeCopy(x);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String[][] array = {{"1", "2"},{ "3", "2","2","3"},{"V","3"}}, array2;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(x);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(v);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;array2 = invokeCopy(array);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(Arrays.deepToString(array2));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int[] a = {1,48,2}, b = {1, 20, 19};<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("a --- hashCode: " + a.hashCode() + "---b: hashCode:" + b.hashCode());<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b = invokeCopy(a);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(b.hashCode());<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(Arrays.toString(b));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;short age = 25;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Person p = new TestClone(). new Person(1l, "andy", age), ps, pe;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ps = invokeCopy(p);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(ps);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//pe = clone(p);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pe = invokeClone(p);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(pe);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (NoSuchMethodException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (SecurityException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (IllegalAccessException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (IllegalArgumentException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (InvocationTargetException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;class Person implements Serializable{//, Cloneable{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;private static final long serialVersionUID = 7605971168826706980L;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;private Long id;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;private String name;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;private short age;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public Person() {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public Person(Long id, String name, short age) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;super();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.id = id;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.name = name;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.age = age;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br /><br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public Long getId() {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return id;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public void setId(Long id) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.id = id;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public String getName() {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return name;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public void setName(String name) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.name = name;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public short getAge() {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return age;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public void setAge(short age) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.age = age;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br /><br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;public String toString() {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/*protected Object clone() throws CloneNotSupportedException {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return super.clone();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}*/<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;}<br />}</div><img src ="http://www.blogjava.net/andyBlog/aggbug/367164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2011-12-26 10:54 <a href="http://www.blogjava.net/andyBlog/archive/2011/12/26/367164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为什么要关闭和io流</title><link>http://www.blogjava.net/andyBlog/archive/2011/11/18/364193.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Fri, 18 Nov 2011 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2011/11/18/364193.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/364193.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2011/11/18/364193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/364193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/364193.html</trackback:ping><description><![CDATA[package cn.webmctv.test;<br /><br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.IOException;<br />import java.io.InputStream;<br /><br />public class TestInputStream {<br /><br />&nbsp;&nbsp; &nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/* 为什么要关闭和io流, 由于java底层是用c实现的，　所以当我们不停的调用new InputStream -&gt; impl <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * 时候，　c打开的文件会一直没有关闭，而导致文件删除不了，别的程序访问不了的问题，和操作系统打开文件<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * 超过最大数异常。而下面new FileInputStream(new File("c:/q.txt"));这种方式没有关闭c打开的<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * 文件一直new 就会出现打开文件太多异常。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;short count = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;InputStream inStream = null;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i = 0; i &lt; Short.MAX_VALUE; i++) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//inStream.<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inStream = new FileInputStream(new File("/root/install.log"));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//count ++;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("count: " + count++);<br />&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;//p.load(inStream);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (FileNotFoundException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} finally{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(inStream != null) try{ inStream.close(); } catch(IOException e){};<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(Short.MAX_VALUE);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;*/<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;short count = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;InputStream inStream = null;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i = 0; i &lt; Short.MAX_VALUE; i++) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//inStream.<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;inStream = new FileInputStream(new File("/root/install.log"));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//count ++;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("count: " + count++);<br />&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;//p.load(inStream);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (FileNotFoundException e) {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} finally{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(inStream != null) try{ inStream.close(); } catch(IOException e){};<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(Short.MAX_VALUE);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;}<br />}<br /><img src ="http://www.blogjava.net/andyBlog/aggbug/364193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2011-11-18 10:09 <a href="http://www.blogjava.net/andyBlog/archive/2011/11/18/364193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两个变量不通过第三个变量交换值</title><link>http://www.blogjava.net/andyBlog/archive/2010/03/27/316683.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Sat, 27 Mar 2010 03:12:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2010/03/27/316683.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/316683.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2010/03/27/316683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/316683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/316683.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;cn.coder.y2010.m03.d27;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img id="Codehighlighter1_33_58_Open_Image" onclick="this.style.display='none'; Codehighlighter1_33_58_Open_Text.style.display='none'; Codehighlighter1_33_58_Closed_Image.style.display='inline'; Codehighlighter1_33_58_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_33_58_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_33_58_Closed_Text.style.display='none'; Codehighlighter1_33_58_Open_Image.style.display='inline'; Codehighlighter1_33_58_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_33_58_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_33_58_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;*&nbsp;两个变量不通过第三个变量交换值<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_88_266_Open_Image" onclick="this.style.display='none'; Codehighlighter1_88_266_Open_Text.style.display='none'; Codehighlighter1_88_266_Closed_Image.style.display='inline'; Codehighlighter1_88_266_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_88_266_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_88_266_Closed_Text.style.display='none'; Codehighlighter1_88_266_Open_Image.style.display='inline'; Codehighlighter1_88_266_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SwitchIntValue&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_88_266_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_88_266_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img id="Codehighlighter1_134_264_Open_Image" onclick="this.style.display='none'; Codehighlighter1_134_264_Open_Text.style.display='none'; Codehighlighter1_134_264_Closed_Image.style.display='inline'; Codehighlighter1_134_264_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_134_264_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_134_264_Closed_Text.style.display='none'; Codehighlighter1_134_264_Open_Image.style.display='inline'; Codehighlighter1_134_264_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&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)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_134_264_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_134_264_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">,j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;j;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;5&nbsp;+&nbsp;3;</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;j;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;8&nbsp;-&nbsp;3;</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;j;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;8&nbsp;-&nbsp;5;</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-&nbsp;:&nbsp;-&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;j);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
<img src ="http://www.blogjava.net/andyBlog/aggbug/316683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2010-03-27 11:12 <a href="http://www.blogjava.net/andyBlog/archive/2010/03/27/316683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MD5初解</title><link>http://www.blogjava.net/andyBlog/archive/2010/02/25/MD5.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Thu, 25 Feb 2010 12:46:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2010/02/25/MD5.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/313948.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2010/02/25/MD5.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/313948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/313948.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_73_697_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_697_Open_Text.style.display='none'; Codehighlighter1_73_697_Closed_Image.style.display='inline'; Codehighlighter1_73_697_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_73_697_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_73_697_Closed_Text.style.display='none'; Codehighlighter1_73_697_Open_Image.style.display='inline'; Codehighlighter1_73_697_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #000000">&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;String&nbsp;md5(String&nbsp;pwd)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;NoSuchAlgorithmException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_73_697_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_73_697_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;sb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder();<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;MessageDigest&nbsp;digest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MessageDigest.getInstance(</span><span style="color: #000000">"</span><span style="color: #000000">md5</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;digest.digest(pwd.getBytes());<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;与16进制进行与<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;16&nbsp;59&nbsp;1011001<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;59&gt;&gt;&gt;4&amp;0xf&nbsp;101&nbsp;|&nbsp;59&amp;0xf&nbsp;1011001<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&amp;1111&nbsp;|&nbsp;&amp;00001111<br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;结果&nbsp;101&nbsp;|&nbsp;00001001<br />
</span><span style="color: #008080">11</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;16进制&nbsp;5&nbsp;9</span><span style="color: #008000"><br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img id="Codehighlighter1_360_630_Open_Image" onclick="this.style.display='none'; Codehighlighter1_360_630_Open_Text.style.display='none'; Codehighlighter1_360_630_Closed_Image.style.display='inline'; Codehighlighter1_360_630_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_360_630_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_360_630_Closed_Text.style.display='none'; Codehighlighter1_360_630_Open_Image.style.display='inline'; Codehighlighter1_360_630_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;s&nbsp;:&nbsp;b)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_360_630_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_360_630_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;左边的四位0101<br />
</span><span style="color: #008080">14</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">sb.append(Character.forDigit(<br />
</span><span style="color: #008080">15</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;((s&nbsp;&gt;&gt;&gt;&nbsp;4)&nbsp;&amp;&nbsp;0xf)&nbsp;&gt;&nbsp;4&nbsp;?&nbsp;(s&nbsp;&gt;&gt;&gt;&nbsp;4)&nbsp;&amp;&nbsp;0xf&nbsp;^&nbsp;0xe<br />
</span><span style="color: #008080">16</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;(s&nbsp;&gt;&gt;&gt;&nbsp;4)&nbsp;&amp;&nbsp;0xf,&nbsp;16));</span><span style="color: #008000"><br />
</span><span style="color: #008080">17</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(Character.forDigit((s&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xf</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">));<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;右边的四位1001</span><span style="color: #008000"><br />
</span><span style="color: #008080">19</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(Character.forDigit(s&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xf</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">));<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;所有MD5的生面0-f之间的字母与数字</span><span style="color: #008000"><br />
</span><span style="color: #008080">22</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sb.toString().toUpperCase();<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img style="width: 1240px; height: 515px" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/andyblog/b.png" width="1240" height="515" /> 
 <img src ="http://www.blogjava.net/andyBlog/aggbug/313948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2010-02-25 20:46 <a href="http://www.blogjava.net/andyBlog/archive/2010/02/25/MD5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>URL编码</title><link>http://www.blogjava.net/andyBlog/archive/2010/02/22/313660.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Mon, 22 Feb 2010 10:57:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2010/02/22/313660.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/313660.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2010/02/22/313660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/313660.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/313660.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/andyBlog/archive/2010/02/22/313660.html'>阅读全文</a><img src ="http://www.blogjava.net/andyBlog/aggbug/313660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2010-02-22 18:57 <a href="http://www.blogjava.net/andyBlog/archive/2010/02/22/313660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA 序列化</title><link>http://www.blogjava.net/andyBlog/archive/2010/01/22/310559.html</link><dc:creator>Powered By Andy</dc:creator><author>Powered By Andy</author><pubDate>Fri, 22 Jan 2010 12:52:00 GMT</pubDate><guid>http://www.blogjava.net/andyBlog/archive/2010/01/22/310559.html</guid><wfw:comment>http://www.blogjava.net/andyBlog/comments/310559.html</wfw:comment><comments>http://www.blogjava.net/andyBlog/archive/2010/01/22/310559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyBlog/comments/commentRss/310559.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyBlog/services/trackbacks/310559.html</trackback:ping><description><![CDATA[<p>package cn.test;</p>
<p>import java.io.File;<br />
import java.io.FileInputStream;<br />
import java.io.FileNotFoundException;<br />
import java.io.FileOutputStream;<br />
import java.io.IOException;<br />
import java.io.ObjectInputStream;<br />
import java.io.ObjectOutputStream;<br />
import java.io.Serializable;</p>
<p>public class TestSeralizable implements Serializable{</p>
<p>&nbsp;&nbsp;&nbsp; private static final long serialVersionUID = -2495488416590182981L;</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 保存序列化的对像<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param path<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param o<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public void writeObject(String path, Object o){<br />
&nbsp;File file = new File(path);<br />
&nbsp;if(file.exists()){<br />
&nbsp;&nbsp;&nbsp;&nbsp; file.delete();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;FileOutputStream stream = null;<br />
&nbsp;ObjectOutputStream outputStream = null;<br />
&nbsp;<br />
&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp; stream = new FileOutputStream(file);<br />
&nbsp;&nbsp;&nbsp;&nbsp; outputStream = new ObjectOutputStream(stream);<br />
&nbsp;&nbsp;&nbsp;&nbsp; outputStream.writeObject(o);<br />
&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;} finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;stream.close();<br />
&nbsp;&nbsp;outputStream.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException e) {<br />
&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp; } finally{<br />
&nbsp;&nbsp;stream = null;<br />
&nbsp;&nbsp;outputStream = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 读取序列化对像<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param &lt;T&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param path<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; @SuppressWarnings("unchecked")<br />
&nbsp;&nbsp;&nbsp; public &lt;T&gt; T&nbsp; readObject(String path){<br />
&nbsp;File file = new File(path);<br />
&nbsp;if(!file.exists()){<br />
&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;}<br />
&nbsp;FileInputStream stream = null;<br />
&nbsp;ObjectInputStream inputStream = null;<br />
&nbsp;<br />
&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp; stream = new FileInputStream(file);<br />
&nbsp;&nbsp;&nbsp;&nbsp; inputStream = new ObjectInputStream(stream);<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp; (T)inputStream.readObject();<br />
&nbsp;} catch (FileNotFoundException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;} catch (ClassNotFoundException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;} finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;stream.close();<br />
&nbsp;&nbsp;inputStream.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException e) {<br />
&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp; } finally{<br />
&nbsp;&nbsp;stream = null;<br />
&nbsp;&nbsp;inputStream = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;return null;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
&nbsp;// ---------------&nbsp; 创建序列化实例&nbsp;&nbsp; ----------------------//<br />
&nbsp;<br />
&nbsp;TestSeralizable test = new TestSeralizable();<br />
&nbsp;TestSeralizable.UserBean user = new TestSeralizable().new UserBean();<br />
&nbsp;user.setName("wkw");<br />
&nbsp;user.setAge(24);<br />
&nbsp;user.setEmail("wkw11@163.com");<br />
&nbsp;user.setPassword("123");<br />
&nbsp;<br />
&nbsp;// ---------------&nbsp; 保存序列化实例&nbsp;&nbsp; ----------------------//<br />
&nbsp;test.writeObject("c:/qq.tmp", user);<br />
&nbsp;<br />
&nbsp;// ---------------&nbsp; 读取序列化实例&nbsp;&nbsp; ----------------------//<br />
&nbsp;UserBean unSeralizableObject = test.readObject("c:/qq.tmp");<br />
&nbsp;System.out.println(unSeralizableObject);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 内部类<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @author Administrator<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public class UserBean&nbsp; implements Serializable{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; private String name;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private String password;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private Integer age;<br />
&nbsp;&nbsp;&nbsp;&nbsp; private String email;<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp; public UserBean() {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;// TODO Auto-generated constructor stub<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param password<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param age<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param email<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp; public UserBean(String name, String password, Integer age, String email) {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;this.name = name;<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;&nbsp;this.age = age;<br />
&nbsp;&nbsp;this.email = email;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public String getName() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return name;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public void setName(String name) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.name = name;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public String getPassword() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return password;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public void setPassword(String password) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.password = password;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public Integer getAge() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return age;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public void setAge(Integer age) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.age = age;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public String getEmail() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return email;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; public void setEmail(String email) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.email = email;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; private static final long serialVersionUID = 7645220056029053735L;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; @Override<br />
&nbsp;&nbsp;&nbsp;&nbsp; public String toString() {<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;return "[" + this.name + "," + this.password + "," + this.age + "," + this.email +"]";<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p><br />
&nbsp;}<br />
}<br />
</p>
<img src ="http://www.blogjava.net/andyBlog/aggbug/310559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyBlog/" target="_blank">Powered By Andy</a> 2010-01-22 20:52 <a href="http://www.blogjava.net/andyBlog/archive/2010/01/22/310559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>