﻿<?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-yxhxj2006-随笔分类-java</title><link>http://www.blogjava.net/yxhxj2006/category/52365.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 19 Nov 2015 05:09:19 GMT</lastBuildDate><pubDate>Thu, 19 Nov 2015 05:09:19 GMT</pubDate><ttl>60</ttl><item><title>在Java中直接调用js代码</title><link>http://www.blogjava.net/yxhxj2006/archive/2015/11/19/428272.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Wed, 18 Nov 2015 16:25:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2015/11/19/428272.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/428272.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2015/11/19/428272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/428272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/428272.html</trackback:ping><description><![CDATA[<p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">JDK1.6版添加了新的ScriptEngine类，允许用户直接执行js代码。</p><h3><a name="t0" style="color: rgb(51, 102, 153);"></a>在Java中直接调用js代码</h3><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">不能调用浏览器中定义的js函数，会抛出异常提示ReferenceError: &#8220;alert&#8221; is not defined。</p><div style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;"><table width="869" style="height: 426px;"><tbody><tr><td>&nbsp;</td><td><pre style="white-space: pre-wrap; word-wrap: break-word;">package com.sinaapp.manjushri;&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">import javax.script.ScriptEngine;&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">import javax.script.ScriptEngineManager;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">import javax.script.ScriptException; &nbsp; /**  * 直接调用js代码  */</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">public class ScriptEngineTest { &nbsp; &nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">public static void main(String[] args) {&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">  ScriptEngineManager manager = new ScriptEngineManager();</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">  ScriptEngine engine = manager.getEngineByName("javascript");</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">     try{                engine.eval("var a=3; var b=4;print (a+b);");           // engine.eval("alert(\"js alert\");");    // 不能调用浏览器中定义的js函数 // 错误，会抛出alert引用不存在的异常</pre><pre style="white-space: pre-wrap; word-wrap: break-word;"> }catch(ScriptException e){   e.printStackTrace();  }  } &nbsp;  }</pre></td></tr></tbody></table></div><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">输出结果：7<br /></p><h3><a name="t1" style="color: rgb(51, 102, 153);"></a>在Java中绑定js变量</h3><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">在调用engine.get(key);时，如果key没有定义，则返回null</p><div style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;"><table><tbody><tr><td>&nbsp;</td><td><pre style="white-space: pre-wrap; word-wrap: break-word;">package com.sinaapp.manjushri; &nbsp;   import javax.script.Bindings;   import javax.script.ScriptContext;   import javax.script.ScriptEngine;   import javax.script.ScriptEngineManager;   import javax.script.ScriptException; &nbsp;   public class ScriptEngineTest2 {    public static void main(String[] args) {    ScriptEngineManager manager = new ScriptEngineManager();    ScriptEngine engine = manager.getEngineByName("javascript");    engine.put("a", 4);    engine.put("b", 3);    Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);   try {                          // 只能为Double，使用Float和Integer会抛出异常      Double result = (Double) engine.eval("a+b");         System.out.println("result = " + result);     engine.eval("c=a+b");      Double c = (Double)engine.get("c");      System.out.println("c = " + c);         } catch (ScriptException e) {     e.printStackTrace();         }      }   }</pre></td></tr></tbody></table></div><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">输出：<br />result = 7.0<br />c = 7.0</p><h3><a name="t2" style="color: rgb(51, 102, 153);"></a>在Java中调用js文件中的function，传入调用参数，并获取返回值</h3><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">js文件中的merge函数将两个参数a，b相加，并返回c。</p><div style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;"><table><tbody><tr><td>&nbsp;</td><td><pre style="white-space: pre-wrap; word-wrap: break-word;">// expression.js&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">function merge(a, b) {&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;"> c = a * b;&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;"> return c;&nbsp;</pre><pre style="white-space: pre-wrap; word-wrap: break-word;">}</pre></td></tr></tbody></table></div><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">在Java代码中读取js文件，并参数两个参数，然后回去返回值。</p><div style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;"><table><tbody><tr><td>&nbsp;</td><td><pre style="white-space: pre-wrap; word-wrap: break-word;">package com.sinaapp.manjushri; &nbsp;   import java.io.FileReader;  &nbsp; import javax.script.Invocable;   import javax.script.ScriptEngine;   import javax.script.ScriptEngineManager; &nbsp;  /**  * Java调用并执行js文件，传递参数，并活动返回值  *   * @author manjushri  */   public class ScriptEngineTest { &nbsp;    public static void main(String[] args) throws Exception {    ScriptEngineManager manager = new ScriptEngineManager();    ScriptEngine engine = manager.getEngineByName("javascript"); &nbsp;     String jsFileName = "expression.js";   // 读取js文件     FileReader reader = new FileReader(jsFileName);   // 执行指定脚本    engine.eval(reader);     if(engine instanceof Invocable) {     Invocable invoke = (Invocable)engine;    // 调用merge方法，并传入两个参数      // c = merge(2, 3);      Double c = (Double)invoke.invokeFunction("merge", 2, 3);      System.out.println("c = " + c);    }     reader.close();      } }</pre></td></tr></tbody></table></div><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;">输出结果：<br />c = 5.0</p><hr style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;" /><p style="color: #333333; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; line-height: 25px; background-color: #ffffff;"><strong>java调用脚本语言笔记（jython,jruby,groovy）</strong></p><div id="article_content" style="margin: 20px 0px 0px; font-stretch: normal; line-height: 25px; font-family: 'Helvetica Neue', Tahoma, Arial, 'Microsoft YaHei', 微软雅黑; color: #333333; background-color: #ffffff;"><p>&nbsp;有两种方法<br />1.java se 6以后实现了jsr 223规范<br />java代码：</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;factory&nbsp;=&nbsp;new&nbsp;ScriptEngineManager();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;scriptEngine&nbsp;=&nbsp;factory.getEngineByName("javascript");//或者"js"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">scriptEngine.eval(code);//执行一段脚本，code是js代码&nbsp;&nbsp;</li></ol></div><p><br />&nbsp;很方便调用脚本</p><p>2.可以使用脚本语方本身提供的与java的集成手段</p><p>jython集成<br />使用jsr223:<br />前提下载jython的包，已实现jsr223<br />(建议在官网上下载，在安装目录下有jython.jar，<a href="http://repo2.maven.org/maven2/org/python/jython/2.5.0/" style="color: #4169e1; text-decoration: none;">http://repo2.maven.org/maven2/org/python/jython/2.5.0/</a>&nbsp;这里也有，但是这个包里没有jsr223的实现，看包下存不存在org.python.jsr223)</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;factory&nbsp;=&nbsp;new&nbsp;ScriptEngineManager();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;scriptEngine&nbsp;=&nbsp;factory.getEngineByName("python");//或者"jython"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">scriptEngine.eval(code);&nbsp;&nbsp;</li></ol></div><p><br />使用PythonInterpreter，可以调用exec(String code)方法:</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">PythonInterpreter&nbsp;interpreter&nbsp;=&nbsp;new&nbsp;PythonInterpreter();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">interpreter.exec(code);&nbsp;&nbsp;</li></ol></div><p><strong>访问数据库<br /></strong>使用jdbc:</p><div bg_python"="" style="width: 700.90625px;"><div><div><strong>[python]</strong>&nbsp;<a title="view plain" href="http://blog.csdn.net/anbo724/article/details/6607818" style="color: #4169e1; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;"><br /></a></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">from&nbsp;oracle.jdbc.driver&nbsp;import&nbsp;OracleDriver&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">from&nbsp;java.sql&nbsp;import&nbsp;DriverManager&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">username&nbsp;=&nbsp;'hr'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">password&nbsp;=&nbsp;'123456'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">url&nbsp;=&nbsp;'jdbc:oracle:thin:@localhost:1521:XE'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">driver&nbsp;=&nbsp;OracleDriver()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">DriverManager.registerDriver(driver)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">conn&nbsp;=&nbsp;DriverManager.getConnection(url,&nbsp;username,&nbsp;password)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">stmt&nbsp;=&nbsp;conn.createStatement()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">sql&nbsp;=&nbsp;"select&nbsp;salary&nbsp;from&nbsp;EMPLOYEES&nbsp;t&nbsp;where&nbsp;t.salary&lt;2300"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">rs&nbsp;=&nbsp;stmt.executeQuery(sql)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">while&nbsp;(rs.next()):&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;print&nbsp;rs.getInt('salary')&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">rs.close()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">stmt.close()&nbsp;&nbsp;</li></ol></div><p><br />&nbsp;结果:<br />2200<br />2100<br />2200</p><p>使用zxJDBC :</p><div bg_python"="" style="width: 700.90625px;"><div><div><strong>[python]</strong>&nbsp;<a title="view plain" href="http://blog.csdn.net/anbo724/article/details/6607818" style="color: #4169e1; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;"><br /></a></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">from&nbsp;com.ziclix.python.sql&nbsp;import&nbsp;zxJDBC&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">url&nbsp;=&nbsp;'jdbc:oracle:thin:@localhost:1521:XE'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">username&nbsp;=&nbsp;'hr'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">password&nbsp;=&nbsp;'123456'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">driverName&nbsp;=&nbsp;'oracle.jdbc.driver.OracleDriver'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">mysqlConn&nbsp;=&nbsp;zxJDBC.connect(url,username,&nbsp;password,driverName)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">cursor&nbsp;=&nbsp;mysqlConn.cursor()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">cursor.execute("select&nbsp;last_name&nbsp;from&nbsp;EMPLOYEES&nbsp;t&nbsp;where&nbsp;t.salary&lt;2300");&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">#print&nbsp;cursor.fetchone()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">list&nbsp;=&nbsp;cursor.fetchall()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">for&nbsp;record&nbsp;in&nbsp;list:&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;"name:"+record[0]&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">#print&nbsp;cursor.description[0]&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">#print&nbsp;cursor.description[1]&nbsp;&nbsp;</li></ol></div><p><br />&nbsp;结果:<br />name:麦克<br />name:Olson<br />name:Philtanker</p><p>从数据库中查出的中文内容正常的。<br />而在代码里面的中文全部是乱码或抛异常，未解决。</p><p><strong>与jruby集成<br /></strong>使用jsr223:Java代码</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;factory&nbsp;=&nbsp;new&nbsp;ScriptEngineManager();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;scriptEngine&nbsp;=&nbsp;factory.getEngineByName("jruby");//或者"ruby"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">scriptEngine.eval(code);&nbsp;&nbsp;</li></ol></div><p>&nbsp;<strong>访问数据库</strong></p><p><strong>Ruby代码</strong></p><div bg_ruby"="" style="width: 700.90625px;"><div><div><strong>[ruby]</strong>&nbsp;<a title="view plain" href="http://blog.csdn.net/anbo724/article/details/6607818" style="color: #4169e1; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;"><br /></a></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">require&nbsp;'java'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">module&nbsp;JavaLang&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;include_package&nbsp;"java.lang"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">end&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">module&nbsp;JavaSql&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;include_package&nbsp;'java.sql'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">end&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">begin&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;username&nbsp;=&nbsp;'hr'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;password&nbsp;=&nbsp;'123456'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;url&nbsp;=&nbsp;'jdbc:oracle:thin:@localhost:1521:XE'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;driverName&nbsp;=&nbsp;'oracle.jdbc.driver.OracleDriver'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;JavaLang::Class.forName(driverName).newInstance&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;conn&nbsp;=&nbsp;JavaSql::DriverManager.getConnection(url,&nbsp;username,&nbsp;password)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;stmt&nbsp;=&nbsp;conn.createStatement&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;sql&nbsp;=&nbsp;"select&nbsp;last_name&nbsp;from&nbsp;EMPLOYEES&nbsp;t&nbsp;where&nbsp;t.salary&lt;2300"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;rs&nbsp;=&nbsp;stmt.executeQuery(sql)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;while&nbsp;(rs.next)&nbsp;do&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;puts&nbsp;"名字:"+rs.getString("last_name")&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;end&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;rs.close&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;stmt.close&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;conn.close()&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">rescue&nbsp;JavaLang::ClassNotFoundException&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;puts&nbsp;"ClassNotFoundException"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">rescue&nbsp;JavaSql::SQLException&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;puts&nbsp;"SQLException"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">end&nbsp;&nbsp;</li></ol></div><p><br />&nbsp;</p><p>&nbsp;结果:<br />名字:楹﹀厠<br />名字:Olson<br />名字:Philtanker</p><p>&nbsp;</p><p>从数据库中查出的中文内容为乱码的。<br />而在代码里面的中文正常。</p><p>&nbsp;</p><p><strong>与groovy集成<br /></strong>使用jsr223:</p><p>Java代码</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong>&nbsp;<a title="view plain" href="http://blog.csdn.net/anbo724/article/details/6607818" style="color: #4169e1; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;"><br /></a></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;factory&nbsp;=&nbsp;new&nbsp;ScriptEngineManager();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">ScriptEngineManager&nbsp;scriptEngine&nbsp;=&nbsp;factory.getEngineByName("groovy");//或者"Groovy"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">scriptEngine.eval(code);&nbsp;&nbsp;</li></ol></div><p><br />&nbsp;使用GroovyShell:</p><p>Java代码</p><div bg_java"="" style="width: 700.90625px;"><div><div><strong>[java]</strong>&nbsp;<a title="view plain" href="http://blog.csdn.net/anbo724/article/details/6607818" style="color: #4169e1; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;"><br /></a></div></div><ol start="1"><li style="list-style-type: none; line-height: 18px;">GroovyShell&nbsp;shell&nbsp;=&nbsp;new&nbsp;GroovyShell();&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">Script&nbsp;script&nbsp;=&nbsp;shell.parse(code);&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">Object&nbsp;result&nbsp;=&nbsp;script.run();&nbsp;&nbsp;</li></ol></div><p><br />访问数据库</p><div style="width: 700.90625px;"><div><div>Groovy代码</div></div></div><p>&nbsp;</p><div bg_plain"="" style="width: 700.90625px;"><ol start="1"><li style="list-style-type: none; line-height: 18px;">import&nbsp;groovy.sql.Sql&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">def&nbsp;username&nbsp;=&nbsp;'hr'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">def&nbsp;password&nbsp;=&nbsp;'123456'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">def&nbsp;url&nbsp;=&nbsp;'jdbc:oracle:thin:@localhost:1521:XE'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">def&nbsp;driverName&nbsp;=&nbsp;'oracle.jdbc.driver.OracleDriver'&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">def&nbsp;sql&nbsp;=&nbsp;Sql.newInstance(url,&nbsp;username,&nbsp;password,&nbsp;driverName)&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">sql.eachRow("select&nbsp;last_name&nbsp;from&nbsp;EMPLOYEES&nbsp;t&nbsp;where&nbsp;t.salary&lt;2300")&nbsp;{&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">&nbsp;println&nbsp;"名字：${it.last_name}"&nbsp;&nbsp;</li><li style="list-style-type: none; line-height: 18px;">}&nbsp;&nbsp;</li></ol></div><p>结果:<br />名字：麦克<br />名字：Olson<br />名字：Philtanker</p><p>&nbsp;</p><p>在使用groovy过程中碰到了一个异常<br />Exception in thread "main" java.lang.VerifyError: (class: groovy/runtime/metaclass/java/util/ArrayListMetaClass, method: super$2$invokeMethod signature: (Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;ZZ)Ljava/lang/Object;) Illegal use of nonvirtual function call<br />这个异常解决花了很长时间<br />是因为在原来项目中存在json-lib-2.1.jar(有可能名称为json-lib-2.1-jdk15.jar)，这个包是用来处理json的，与groovy1.7.5存在冲突,更新为json-lib-2.3.jar即可<br />(json-lib里有一些groovy运行时处理的内容)</p></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/428272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2015-11-19 00:25 <a href="http://www.blogjava.net/yxhxj2006/archive/2015/11/19/428272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>myeclipse中java文件头注释格式设置</title><link>http://www.blogjava.net/yxhxj2006/archive/2014/01/14/408940.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Tue, 14 Jan 2014 15:23:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2014/01/14/408940.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/408940.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2014/01/14/408940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/408940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/408940.html</trackback:ping><description><![CDATA[<h3><div style="background-color: #eeeeee; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><div style="text-align: justify;font-size: 13px; "><span style="font-size: 13px; ">myeclipse中java文件头注释格式设置 &nbsp;</span></div><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><div style="text-align: justify;"><font size="2"><br /></font></div><font size="2"><div style="text-align: justify;">windows-&gt;preferences-&gt;java-&gt;Code&nbsp;Templates-&gt;comments-&gt;Type-&gt;edit&nbsp;</div></font><font size="2"><div style="text-align: justify;">Eclipse注释规范模版总结</div></font><font size="2"><div style="text-align: justify;">新建类文件</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@ClassName:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${file_name}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;&nbsp;&nbsp;${todo}(用一句话描述该文件做什么)&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${user}</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@version</span><span style="font-size: 13px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V1.0 &nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${date}&nbsp;${time}&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">方法</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span><span style="font-size: 13px; ">&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${enclosing_method}&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;&nbsp;${todo}(这里用一句话描述这个方法的作用)&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@param</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${tags} &nbsp; &nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@return</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${return_type} &nbsp; &nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@throws</span><span style="font-size: 13px; ">&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${user}</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${date}&nbsp;${time}&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><div style="text-align: center;"></div><font size="2"><div style="text-align: justify;">输入设置模板：&nbsp;</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span><span style="font-size: 13px; ">&nbsp; &nbsp; &nbsp;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;${file_name}&nbsp;Create&nbsp;on&nbsp;${date} &nbsp; &nbsp;&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">* &nbsp; &nbsp; &nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;Copyright&nbsp;(c)&nbsp;${date}&nbsp;by&nbsp;taotaosoft &nbsp; &nbsp; &nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">* &nbsp; &nbsp; &nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">&nbsp;&lt;a&nbsp;href="xiuzhong.li@gmail.com"&gt;Jerryli&lt;/a&gt; &nbsp; &nbsp;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@version</span><span style="font-size: 13px; ">&nbsp;1.0&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">* &nbsp; &nbsp;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*/</span><font size="2">&nbsp;</font></div></span><div style="text-align: center;"></div><font size="2"><div style="text-align: justify;">注意选择自动添加注释,养成一个规范的习惯是最好的。&nbsp;</div></font><div style="text-align: center;"></div><font size="2"><div style="text-align: justify;">选菜单&nbsp;</div></font><font size="2"><div style="text-align: justify;"><font size="2">windows--&gt;preference&nbsp;&nbsp;--&gt;&nbsp;Java--&gt;Code&nbsp;Style--&gt;Code&nbsp;Templates&nbsp;&nbsp;--&gt;&nbsp;code--&gt;</font><span style="font-size: 13px; color: #0000ff; ">new</span><font size="2">&nbsp;Java&nbsp;files&nbsp;</font></div></font><font size="2"><div style="text-align: justify;">选中点编辑&nbsp;</div></font><font size="2"><div style="text-align: justify;">${filecomment}&nbsp;</div></font><font size="2"><div style="text-align: justify;">${package_declaration}&nbsp;</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span><span style="font-size: 13px; ">&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">&nbsp;作者姓名&nbsp;&nbsp;E-mail:&nbsp;email地址&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@version</span><span style="font-size: 13px; ">&nbsp;创建时间：${date}&nbsp;${time}&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;类说明&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">*/</span><font size="2">&nbsp;</font></div></span><font size="2"><div style="text-align: justify;">${typecomment}&nbsp;</div></font><font size="2"><div style="text-align: justify;">${type_declaration}&nbsp;</div></font><font size="2"><div style="text-align: justify;">&nbsp;&nbsp;</div></font><font size="2"><div style="text-align: justify;">&nbsp;Eclipse注释规范模版总结</div></font><font size="2"><div style="text-align: justify;">1、&nbsp;&nbsp;具体操作</div></font><div style="text-align: center;"></div><font size="2"><div style="text-align: justify;">(1)在eclipse中，打开Window-&gt;Preference-&gt;Java-&gt;Code&nbsp;Style-&gt;Code&nbsp;Template</div></font><font size="2"><div style="text-align: justify;">(2)然后展开Comments节点就是所有需设置注释的元素，参照2注释规范对应设置即可</div></font><font size="2"><div style="text-align: justify;">2、&nbsp;&nbsp;注释规范</div></font><div style="text-align: center;"></div><font size="2"><div style="text-align: justify;">(1)文件(Files)注释标签</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;FileName:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${file_name}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;${todo}(用一句话描述该文件做什么)</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">*&nbsp;All&nbsp;rights&nbsp;Reserved,&nbsp;Designed&nbsp;By&nbsp;ZTE-ITS</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Copyright:&nbsp;&nbsp;&nbsp;&nbsp;Copyright(C)&nbsp;2010-2011</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Company&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZTE-ITS&nbsp;WuXi&nbsp;LTD.</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;名字</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@version</span><span style="font-size: 13px; ">&nbsp;&nbsp;&nbsp;&nbsp;V1.0&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Createdate:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${date}&nbsp;${time}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Modification&nbsp;&nbsp;History:</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Discription</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;-----------------------------------------------------------------------------------</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${date}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wu.zh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;Why&nbsp;&amp;&nbsp;What&nbsp;is&nbsp;modified:&nbsp;&lt;修改原因描述&gt;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(2)类型(Types)注释标签(类的注释)：</div></font><font size="2"><div style="text-align: justify;"><font size="2">&nbsp;</font><span style="font-size: 13px; color: #008000; ">/**</span></div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@ClassName:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${type_name}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:${todo}(这里用一句话描述这个类的作用)</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@author</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;Android_Robot</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${date}&nbsp;${time}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${tags}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(3)字段(Fields)注释标签：</div></font><font size="2"><div style="text-align: justify;"><font size="2">&nbsp;</font><span style="font-size: 13px; color: #008000; ">/**</span><span style="font-size: 13px; color: #008000; ">&nbsp;&nbsp;</span></div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Fields&nbsp;${field}&nbsp;:&nbsp;${todo}(用一句话描述这个变量表示什么) &nbsp;&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span><font size="2">&nbsp;&nbsp;</font></div></span><font size="2"><div style="text-align: justify;">&nbsp;&nbsp;</div></font><font size="2"><div style="text-align: justify;">(4)构造函数标签：</div></font><font size="2"><div style="text-align: justify;"><font size="2">&nbsp;</font><span style="font-size: 13px; color: #008000; ">/**</span></div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${enclosing_type}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;&nbsp;&nbsp;&nbsp;${todo}(这里用一句话描述这个方法的作用)</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@param</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;${tags}</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@throws</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(5)方法(Methods)标签：</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Title:&nbsp;${enclosing_method}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;${todo}(这里用一句话描述这个方法的作用)</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@param</span><span style="font-size: 13px; ">:&nbsp;${tags} &nbsp;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@return</span><span style="font-size: 13px; ">:&nbsp;${return_type} &nbsp;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@throws</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(6)覆盖方法(Overriding&nbsp;Methods)标签:</div></font><font size="2"><div style="text-align: justify;"><font size="2">&nbsp;</font><span style="font-size: 13px; color: #008000; ">/**</span></div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;&lt;p&gt;Title:&nbsp;${enclosing_method}&lt;/p&gt;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;&lt;p&gt;Description:&nbsp;&lt;/p&gt;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${tags}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${see_to_overridden}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(7)代表方法(Delegate&nbsp;Methods)标签：</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${tags}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;${see_to_target}</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(8)getter方法标签：</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${enclosing_method}&nbsp;&lt;BR&gt;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;please&nbsp;write&nbsp;your&nbsp;description&nbsp;&lt;BR&gt;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@return</span><span style="font-size: 13px; ">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${field_type}&nbsp;&lt;BR&gt;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span></div></span><font size="2"><div style="text-align: justify;">&nbsp;</div></font><font size="2"><div style="text-align: justify;">(9)setter方法标签：</div></font><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">/**</span><span style="font-size: 13px; ">&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Title:&nbsp;&nbsp;${enclosing_method}&nbsp;&lt;BR&gt;&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;@Description:&nbsp;please&nbsp;write&nbsp;your&nbsp;description&nbsp;&lt;BR&gt;&nbsp;</span></div><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;*&nbsp;</span><span style="font-size: 13px; color: #808080; ">@return</span><span style="font-size: 13px; ">:&nbsp;${field_type}&nbsp;&lt;BR&gt;&nbsp;</span></div></span><span style="font-size: 13px; color: #008000; "><div style="text-align: justify;"><span style="font-size: 13px; ">&nbsp;</span><span style="font-size: 13px; ">*/</span><font size="2">&nbsp;</font></div></span></div></div></h3><img src ="http://www.blogjava.net/yxhxj2006/aggbug/408940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2014-01-14 23:23 <a href="http://www.blogjava.net/yxhxj2006/archive/2014/01/14/408940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常见Map 及 ArrayList 是否有序总结</title><link>http://www.blogjava.net/yxhxj2006/archive/2013/06/09/400452.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Sun, 09 Jun 2013 13:20:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/06/09/400452.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/400452.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/06/09/400452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/400452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/400452.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->说明：此处的排序&nbsp;是指：<br /><br />1：&nbsp;往集合中插入元素的顺序与遍历元素的顺序的关系；<br /><br />2：&nbsp;往对象中插入元素否会根据元素的大小排序<br /><br />&nbsp;<br /><br />?<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MapSortTest&nbsp;{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("放入顺序为：a:aaa&nbsp;c:ccc&nbsp;b:bbb&nbsp;d:ddd&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("HashMap&nbsp;排序测试");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;map&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;HashMap();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put("a",&nbsp;"aaa");&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put("c",&nbsp;"ccc");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put("b",&nbsp;"bbb");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put("d",&nbsp;"ddd");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iterator&nbsp;=&nbsp;map.keySet().iterator();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(iterator.hasNext())&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;key&nbsp;=&nbsp;iterator.next();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("key:"+key+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:"&nbsp;+&nbsp;map.get(key));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("HashMap&nbsp;进出无次序&nbsp;；&nbsp;key大小无次序&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("***********************************************************");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Hashtable&nbsp;排序测试");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hashtable&nbsp;tab&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Hashtable();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab.put("a",&nbsp;"aaa");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab.put("c",&nbsp;"ccc");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab.put("b",&nbsp;"bbb");&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab.put("d",&nbsp;"ddd");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iterator_1&nbsp;=&nbsp;tab.keySet().iterator();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(iterator_1.hasNext())&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;key&nbsp;=&nbsp;iterator_1.next();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("key&nbsp;:"+key+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:"+&nbsp;tab.get(key));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Hashtable&nbsp;进出无次序&nbsp;；&nbsp;key大小无次序&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("***********************************************************");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("TreeMap&nbsp;排序测试");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TreeMap&nbsp;tmp&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;TreeMap();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp.put("a",&nbsp;"aaa");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp.put("c",&nbsp;"ccc");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp.put("b",&nbsp;"bbb");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp.put("d",&nbsp;"ddd");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iterator_2&nbsp;=&nbsp;tmp.keySet().iterator();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(iterator_2.hasNext())&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;key&nbsp;=&nbsp;iterator_2.next();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("key:"+key+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:"&nbsp;+&nbsp;tmp.get(key));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("TreeMap&nbsp;进出无次序&nbsp;；&nbsp;key大小从小到大&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("***********************************************************");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("LinkedHashMap&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;LinkedHashMap&nbsp;linkedHashMap&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;LinkedHashMap();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkedHashMap.put("a",&nbsp;"aaa");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkedHashMap.put("c",&nbsp;"ccc");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkedHashMap.put("b",&nbsp;"bbb");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkedHashMap.put("d",&nbsp;"ddd");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&nbsp;iterator2&nbsp;=&nbsp;linkedHashMap.keySet().iterator();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(iterator2.hasNext())&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;key&nbsp;=&nbsp;iterator2.next();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("key:"+key+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:"&nbsp;+&nbsp;linkedHashMap.get(key));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("LinkedHashMap&nbsp;先进先出；&nbsp;key大小无次序&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("ArrayList&nbsp;排序测试");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("放入顺序为：aaa&nbsp;ccc&nbsp;bbb&nbsp;ddd");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList&nbsp;arrayList=<span style="color: #0000FF; ">new</span>&nbsp;ArrayList();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayList.add("aaa");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayList.add("ccc");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayList.add("bbb");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayList.add("ddd");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("ArrayList&nbsp;先进先出；值大小无次序&nbsp;");<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collections.sort(arrayList);&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=0;i&lt;arrayList.size();i++){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(arrayList.get(i));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("***********************************************************");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;<br />}<br /><br />&nbsp;<br /><br />运行结果：<br /><br />?<br />放入顺序为：a:aaa&nbsp;c:ccc&nbsp;b:bbb&nbsp;d:ddd&nbsp;<br />HashMap&nbsp;排序测试<br />key:d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ddd<br />key:b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:bbb<br />key:c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ccc<br />key:a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:aaa<br />HashMap&nbsp;进出无次序&nbsp;；&nbsp;key大小无次序&nbsp;<br />***********************************************************<br />Hashtable&nbsp;排序测试<br />key&nbsp;:b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:bbb<br />key&nbsp;:a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:aaa<br />key&nbsp;:d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ddd<br />key&nbsp;:c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ccc<br />Hashtable&nbsp;进出无次序&nbsp;；&nbsp;key大小无次序&nbsp;<br />***********************************************************<br />TreeMap&nbsp;排序测试<br />key:a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:aaa<br />key:b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:bbb<br />key:c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ccc<br />key:d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ddd<br />TreeMap&nbsp;进出无次序&nbsp;；&nbsp;key大小从小到大&nbsp;<br />***********************************************************<br />LinkedHashMap&nbsp;排序测试<br />key:a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:aaa<br />key:c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ccc<br />key:b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:bbb<br />key:d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:ddd<br />LinkedHashMap&nbsp;先进先出；&nbsp;key大小无次序&nbsp;<br />&nbsp;<br />ArrayList&nbsp;排序测试<br />放入顺序为：aaa&nbsp;ccc&nbsp;bbb&nbsp;ddd<br />LinkedHashMap&nbsp;先进先出；值大小无次序&nbsp;<br />aaa<br />ccc<br />bbb<br />ddd<br />***********************************************************</div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/400452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-06-09 21:20 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/06/09/400452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 12小时和24小时制时间format </title><link>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397855.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Mon, 15 Apr 2013 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397855.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/397855.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/397855.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/397855.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->12小时制：&nbsp;dff&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;hh:mm:ss");<br />24小时制：&nbsp;dff&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");</div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/397855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-04-15 14:56 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>String、data、Calendar、Timestamp 之间的转换</title><link>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397854.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Mon, 15 Apr 2013 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397854.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/397854.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397854.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/397854.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/397854.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br />String、data、Calendar、Timestamp&nbsp;之间的转换&nbsp;<br /><br />SimpleDateFormat&nbsp;sdf&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");<br />1.Calendar&nbsp;转化&nbsp;String&nbsp;<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">获取当前时间的具体情况,如年,月,日,week,date,分,秒等&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;calendat&nbsp;=&nbsp;Calendar.getInstance();<br />SimpleDateFormat&nbsp;sdf&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd");<br />String&nbsp;dateStr&nbsp;=&nbsp;sdf.format(calendar.getTime());<br /><br />2.String&nbsp;转化Calendar<br />String&nbsp;str="2010-5-27";<br />SimpleDateFormat&nbsp;sdf=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd");<br />Date&nbsp;date&nbsp;=sdf.parse(str);<br />Calendar&nbsp;calendar&nbsp;=&nbsp;Calendar.getInstance();<br />calendar.setTime(date);<br /><br />3.Date&nbsp;转化String<br />SimpleDateFormat&nbsp;sdf=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd");<br />String&nbsp;dateStr=sdf.format(<span style="color: #0000FF; ">new</span>&nbsp;Date());<br /><br />4.String&nbsp;转化Date<br />String&nbsp;str="2010-5-27";<br />SimpleDateFormat&nbsp;sdf=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd");<br />Date&nbsp;birthday&nbsp;=&nbsp;sdf.parse(str);<br /><br />5.Date&nbsp;转化Calendar<br />Calendar&nbsp;calendar&nbsp;=&nbsp;Calendar.getInstance();<br />calendar.setTime(<span style="color: #0000FF; ">new</span>&nbsp;java.util.Date());<br /><br />6.Calendar转化Date<br />Calendar&nbsp;calendar&nbsp;=&nbsp;Calendar.getInstance();<br />java.util.Date&nbsp;date&nbsp;=calendar.getTime();<br /><br />7.Date&nbsp;转成&nbsp;String<br />System.out.println(sdf.format(<span style="color: #0000FF; ">new</span>&nbsp;Date()));&nbsp;<br />8.String&nbsp;转成&nbsp;Timestamp<br />Timestamp&nbsp;ts&nbsp;=&nbsp;Timestamp.valueOf("2011-1-14&nbsp;08:11:00");<br /><br />9.Timestamp&nbsp;转成&nbsp;String<br />sdf.format(ts);<br /><br />Timestamp和Date多数用法是一样的。<br />10.Date&nbsp;转&nbsp;TimeStamp<br />SimpleDateFormat&nbsp;df&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");<br />String&nbsp;time&nbsp;=&nbsp;df.format(<span style="color: #0000FF; ">new</span>&nbsp;Date());<br />Timestamp&nbsp;ts&nbsp;=&nbsp;Timestamp.valueOf(time);<br /><br />11.日期比较大小<br />String&nbsp;ti="2010-11-25&nbsp;20:11:00";<br />SimpleDateFormat&nbsp;sdf&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");&nbsp;<br />Date&nbsp;time=sdf.parse(ti);<br />String&nbsp;ti2="2011-11-26&nbsp;20:11:00";<br />Date&nbsp;time2=sdf.parse(ti2);<br /><span style="color: #0000FF; ">int</span>&nbsp;c=ti2.compareTo(ti);<br /><span style="color: #0000FF; ">if</span>(c&gt;0){<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(ti+"大");<br />}<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(c==0){<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("一样大");<br />}<span style="color: #0000FF; ">else</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(ti2+"大");<br />}<br /><br />12.Date/&nbsp;Timestamp&nbsp;转成&nbsp;Calendar&nbsp;<br />Calendar&nbsp;calendar&nbsp;=&nbsp;Calendar.getInstance();<br />calendar.setTime(startDate);<br />calendar.add(Calendar.YEAR,&nbsp;2);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">日期加2年</span><span style="color: #008000; "><br /></span>System.out.println(calendar.getTime());<br />calendar.add(Calendar.DATE,&nbsp;-30);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">日期加30天</span><span style="color: #008000; "><br /></span>System.out.println(calendar.getTime());<br />calendar.add(Calendar.MONTH,&nbsp;3);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">日期加3个月</span><span style="color: #008000; "><br /></span>System.out.println(calendar.getTime());<br />Date&nbsp;date=<span style="color: #0000FF; ">new</span>&nbsp;Date();<br />DateFormat&nbsp;df=DateFormat.getDayeInstance();<br />ps.setString(4,df.format(date))<br />Date&nbsp;date&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Date();&nbsp;<br />SimpleDateFormat&nbsp;from&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");&nbsp;&nbsp;<br />String&nbsp;times&nbsp;=&nbsp;from.format(date);<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Test1&nbsp;{<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;&nbsp;&nbsp;m=System.currentTimeMillis();<br />&nbsp;&nbsp;System.out.println(<span style="color: #0000FF; ">new</span>&nbsp;Date(m)&nbsp;);<br />}<br />}&nbsp;<br /></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/397854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-04-15 14:38 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/04/15/397854.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA邮件发送的简单实现</title><link>http://www.blogjava.net/yxhxj2006/archive/2013/03/09/396225.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Fri, 08 Mar 2013 16:29:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/03/09/396225.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/396225.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/03/09/396225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/396225.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/396225.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA MAIL是利用现有的邮件账户发送邮件的工具，比如说，我在网易注册一个邮箱账户，通过JAVA Mail的操控，我可以不亲自登录网易邮箱，让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。JavaMail可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载,并将ma...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2013/03/09/396225.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/396225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-03-09 00:29 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/03/09/396225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用gmail smtp发送邮件</title><link>http://www.blogjava.net/yxhxj2006/archive/2013/03/08/396195.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Fri, 08 Mar 2013 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/03/08/396195.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/396195.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/03/08/396195.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/396195.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/396195.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span>&nbsp;java.util.Properties;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.mail.Message;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.mail.Session;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.mail.Transport;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.mail.internet.InternetAddress;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.mail.internet.MimeMessage;<br /><br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;SendMail&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;Runnable&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;smtp_host&nbsp;=&nbsp;"smtp.gmail.com";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;from_userName&nbsp;=&nbsp;"xx@gmail.com";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;from_passWord&nbsp;=&nbsp;"xx";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;String&nbsp;show_name&nbsp;=&nbsp;"xxx";<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;email_address;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;email_subject;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;email_content;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;SendMail(String&nbsp;email_address,&nbsp;String&nbsp;email_subject,&nbsp;String&nbsp;email_content)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.email_address&nbsp;=&nbsp;email_address;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.email_subject&nbsp;=&nbsp;email_subject;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.email_content&nbsp;=&nbsp;email_content;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;run()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;executeMailSend(email_address,&nbsp;email_subject,&nbsp;email_content);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080; ">@param</span><span style="color: #008000; ">&nbsp;recipients:&nbsp;the&nbsp;mail&nbsp;send&nbsp;to<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080; ">@param</span><span style="color: #008000; ">&nbsp;sendSubject:&nbsp;the&nbsp;mail&nbsp;subject<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080; ">@param</span><span style="color: #008000; ">&nbsp;sendText:&nbsp;the&nbsp;mail&nbsp;content<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;executeMailSend(String&nbsp;recipients,&nbsp;String&nbsp;sendSubject,&nbsp;String&nbsp;sendText)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&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;Properties&nbsp;props&nbsp;=&nbsp;System.getProperties();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.starttls.enable",&nbsp;"true");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.host",&nbsp;smtp_host);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.user",&nbsp;from_userName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.password",&nbsp;from_passWord);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.port",&nbsp;"587");&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">gmail&nbsp;smtp&nbsp;port&nbsp;587</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put("mail.smtp.auth",&nbsp;"true");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><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;Session&nbsp;session&nbsp;=&nbsp;Session.getDefaultInstance(props,&nbsp;<span style="color: #0000FF; ">null</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setDebug(<span style="color: #0000FF; ">false</span>);<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;MimeMessage&nbsp;message&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;MimeMessage(session);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.setFrom(<span style="color: #0000FF; ">new</span>&nbsp;InternetAddress(from_userName));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.addRecipient(Message.RecipientType.TO,&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;InternetAddress(recipients));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.setFrom(<span style="color: #0000FF; ">new</span>&nbsp;InternetAddress(show_name&nbsp;+&nbsp;"&lt;"&nbsp;+&nbsp;from_userName&nbsp;+&nbsp;"&gt;"));&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.setSubject(sendSubject);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.setContent(sendText,&nbsp;"text/html;charset=utf-8");&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transport&nbsp;transport&nbsp;=&nbsp;session.getTransport("smtp");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transport.connect(smtp_host,&nbsp;from_userName,&nbsp;from_passWord);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transport.sendMessage(message,&nbsp;message.getAllRecipients());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transport.close();<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;System.out.println("send&nbsp;an&nbsp;email&nbsp;to&nbsp;"&nbsp;+&nbsp;recipients&nbsp;+&nbsp;"&nbsp;success");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(Exception&nbsp;e)&nbsp;{<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;&nbsp;&nbsp;&nbsp;System.out.println("failure!&nbsp;");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main&nbsp;(String&nbsp;args[]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;SendMail("yy@gmail.com","test","hehe").run();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.1875px; background-color: #ffffff;">结果老是报如下的错误<br /></span><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->javax.mail.MessagingException:&nbsp;530&nbsp;5.7.0&nbsp;Must&nbsp;issue&nbsp;a&nbsp;STARTTLS&nbsp;command&nbsp;first.&nbsp;36sm443504yxh.67<br />failure!&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)<br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)<br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)<br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;SendMail.executeMailSend(SendMail.java:59)<br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;SendMail.run(SendMail.java:25)<br />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;SendMail.main(SendMail.java:70)<br />&nbsp;<span style="background-color: #ffffff; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.1875px;">折腾了个把小时，苦苦寻求后发现一个解决办法&nbsp;<br /></span><span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">props.put(</span><span class="string" style="color: blue; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">"mail.smtp.port"</span><span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">,&nbsp;</span><span class="string" style="color: blue; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">"587"</span><span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">); &nbsp;<br /></span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.1875px; background-color: #ffffff;">替换成</span><br /><div>props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");&nbsp;</div><div><span style="white-space:pre">			</span>props.setProperty("mail.smtp.socketFactory.fallback", "false");&nbsp;</div><div><span style="white-space:pre">			</span>props.setProperty("mail.smtp.port", "465");&nbsp;<br /><span style="white-space: pre;">			</span>props.setProperty("mail.smtp.socketFactory.port", "465");&nbsp;<br /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.1875px; background-color: #ffffff;">究其原因也不太清楚，网上有资料说port 587也可以，不知结果不行</span></div></div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.1875px; background-color: #ffffff;">把上述代码中的&nbsp;</span></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/396195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-03-08 15:16 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/03/08/396195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Json-lib使用——JSONObject与JSONArray</title><link>http://www.blogjava.net/yxhxj2006/archive/2013/03/04/396038.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Mon, 04 Mar 2013 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2013/03/04/396038.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/396038.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2013/03/04/396038.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/396038.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/396038.html</trackback:ping><description><![CDATA[<p><span style="font-size: 16px"></span></p><p><span style="font-size: 16px">1.<strong>从Object到String</strong></span><br /><span style="font-size: 16px">&nbsp;要先用Object对象构造一个JSONObject或者JSONArray对象，然后调用它的toString()方法即可</span></p> <p><span style="font-size: 16px">（1）示例一</span></p> <div><pre><span style="font-size: 16px"><span style="color: #008080">1</span> Book book=<span style="color: #0000ff">new</span> Book();</span><br /><span style="font-size: 16px"><span style="color: #008080">2</span> book.setName("Java");</span><br /><span style="font-size: 16px"><span style="color: #008080">3</span> book.setPrice(52.3f);</span><br /><span style="font-size: 16px"><span style="color: #008080">4</span> JSONObject object=JSONObject.fromObject(book);</span><br /><span style="font-size: 16px"><span style="color: #008080">5</span> System.out.println(object.toString());</span></pre></div> <p><span style="font-size: 16px">（2）示例二</span></p> <div> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="font-size: 16px"><span style="color: #008080"> 1</span>         Book book=<span style="color: #0000ff">new</span> Book();</span><br /><span style="font-size: 16px"><span style="color: #008080"> 2</span>         book.setName("Java");</span><br /><span style="font-size: 16px"><span style="color: #008080"> 3</span>         book.setPrice(52.3f);</span><br /><span style="color: #008080; font-size: 16px"> 4         </span><br /><span style="font-size: 16px"><span style="color: #008080"> 5</span>         Book book2=<span style="color: #0000ff">new</span> Book();</span><br /><span style="font-size: 16px"><span style="color: #008080"> 6</span>         book2.setName("C");</span><br /><span style="font-size: 16px"><span style="color: #008080"> 7</span>         book2.setPrice(42.3f);</span><br /><span style="font-size: 16px"><span style="color: #008080"> 8</span>         List list=<span style="color: #0000ff">new</span> ArrayList();</span><br /><span style="font-size: 16px"><span style="color: #008080"> 9</span>         list.add(book);</span><br /><span style="font-size: 16px"><span style="color: #008080">10</span>         list.add(book2);</span><br /><span style="font-size: 16px"><span style="color: #008080">11</span>         JSONArray arry=JSONArray.fromObject(list);</span><br /><span style="font-size: 16px"><span style="color: #008080">12</span>         System.out.println(arry.toString());</span><br /><span style="font-size: 16px"><span style="color: #008080">13</span> <span style="color: #008000">//</span><span style="color: #008000">结果如下：</span><span style="color: #008000"><br /></span><span style="color: #008080">14</span> [{"name":"Java","price":52.3},{"name":"C","price":42.3}]</span></pre> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div> <p><span style="font-size: 16px">2.从String到Object</span><br /><span style="font-size: 16px">&nbsp;要先用String对象构造一个JSONObject或者JSONArray对象</span><br /><span style="font-size: 16px">(1)示例一&nbsp;</span></p> <div><pre><span style="font-size: 16px"><span style="color: #008080">1</span> String json="{name:'Java',price:52.3}";    </span><br /><span style="font-size: 16px"><span style="color: #008080">2</span> JSONObject object=JSONObject.fromObject(json);</span><br /><span style="font-size: 16px"><span style="color: #008080">3</span> System.out.println(object.get("name")+" "+object.get("price"));</span></pre></div> <p><span style="font-size: 16px">(2)示例二</span></p> <div> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="font-size: 16px"><span style="color: #008080">1</span> String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";</span><br /><span style="font-size: 16px"><span style="color: #008080">2</span> JSONArray array=JSONArray.fromObject(json);</span><br /><span style="font-size: 16px"><span style="color: #008080">3</span> <span style="color: #0000ff">for</span>(<span style="color: #0000ff">int</span> i=0;i&lt;array.size();i++){</span><br /><span style="font-size: 16px"><span style="color: #008080">4</span>     Map o=(Map)array.get(i);</span><br /><span style="font-size: 16px"><span style="color: #008080">5</span>     System.out.println(o.get("name")+" "+o.get("price"));</span><br /><span style="font-size: 16px"><span style="color: #008080">6</span> }</span></pre> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div> <p><span style="font-size: 16px">3.从String到Bean</span></p> <p><span style="font-size: 16px">(1)单个Bean对象</span></p> <div><pre><span style="font-size: 16px"><span style="color: #008080">1        </span> String json="{name:'Java',price:52.3}";</span><br /><span style="font-size: 16px"><span style="color: #008080">2</span>         JSONObject object=JSONObject.fromObject(json);</span><br /><span style="font-size: 16px"><span style="color: #008080">3</span>         Product product=(Product)JSONObject.toBean(object,Product.<span style="color: #0000ff">class</span>);</span><br /><span style="font-size: 16px"><span style="color: #008080">4</span>         System.out.println(product.getName()+" "+product.getPrice());</span></pre></div> <p><span style="font-size: 16px">(2).Bean的数组</span></p> <div> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="font-size: 16px"><span style="color: #008080">1</span>         String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";</span><br /><span style="font-size: 16px"><span style="color: #008080">2</span>         JSONArray array=JSONArray.fromObject(json);</span><br /><span style="font-size: 16px"><span style="color: #008080">3</span>         Product[] products=(Product[]) JSONArray.toArray(array,Product.<span style="color: #0000ff">class</span>);</span><br /><span style="font-size: 16px"><span style="color: #008080">4</span>         <span style="color: #0000ff">for</span>(Product p:products){</span><br /><span style="font-size: 16px"><span style="color: #008080">5</span>             System.out.println(p.getName()+" "+p.getPrice());</span><br /><span style="font-size: 16px"><span style="color: #008080">6</span>         }</span></pre> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div> <p><span style="font-size: 16px">自定义封装JSON操作的类</span></p> <div> <div><a title="复制代码" href=""><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="font-size: 16px"><span style="color: #008080"> 1</span> <span style="color: #0000ff">package</span> com.util;</span><br /><span style="color: #008080; font-size: 16px"> 2 </span><br /><span style="font-size: 16px"><span style="color: #008080"> 3</span> <span style="color: #0000ff">import</span> java.util.List;</span><br /><span style="font-size: 16px"><span style="color: #008080"> 4</span> <span style="color: #0000ff">import</span> java.util.Map;</span><br /><span style="color: #008080; font-size: 16px"> 5 </span><br /><span style="font-size: 16px"><span style="color: #008080"> 6</span> <span style="color: #0000ff">import</span> net.sf.json.JSONArray;</span><br /><span style="font-size: 16px"><span style="color: #008080"> 7</span> <span style="color: #0000ff">import</span> net.sf.json.JSONObject;</span><br /><span style="color: #008080; font-size: 16px"> 8 </span><br /><span style="font-size: 16px"><span style="color: #008080"> 9</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> JsonHelper {</span><br /><span style="font-size: 16px"><span style="color: #008080">10</span>     <span style="color: #008000">//</span><span style="color: #008000">从普通的Bean转换为字符串</span><span style="color: #008000"><br /></span><span style="color: #008080">11</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getJson(Object o){</span><br /><span style="font-size: 16px"><span style="color: #008080">12</span>         JSONObject jo=JSONObject.fromObject(o);</span><br /><span style="font-size: 16px"><span style="color: #008080">13</span>         <span style="color: #0000ff">return</span> jo.toString();</span><br /><span style="font-size: 16px"><span style="color: #008080">14</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">15</span>     <span style="color: #008000">//</span><span style="color: #008000">从Java的列表转换为字符串</span><span style="color: #008000"><br /></span><span style="color: #008080">16</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getJson(List list){</span><br /><span style="font-size: 16px"><span style="color: #008080">17</span>         JSONArray ja=JSONArray.fromObject(list);</span><br /><span style="font-size: 16px"><span style="color: #008080">18</span>         <span style="color: #0000ff">return</span> ja.toString();</span><br /><span style="font-size: 16px"><span style="color: #008080">19</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">20</span>     <span style="color: #008000">//</span><span style="color: #008000">从Java对象数组转换为字符串</span><span style="color: #008000"><br /></span><span style="color: #008080">21</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> String getJson(Object[] arry){</span><br /><span style="font-size: 16px"><span style="color: #008080">22</span>         JSONArray ja=JSONArray.fromObject(arry);</span><br /><span style="font-size: 16px"><span style="color: #008080">23</span>         <span style="color: #0000ff">return</span> ja.toString();</span><br /><span style="font-size: 16px"><span style="color: #008080">24</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">25</span>     <span style="color: #008000">//</span><span style="color: #008000">从json格式的字符串转换为Map对象</span><span style="color: #008000"><br /></span><span style="color: #008080">26</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Map getObject(String s){</span><br /><span style="font-size: 16px"><span style="color: #008080">27</span>         <span style="color: #0000ff">return</span>     JSONObject.fromObject(s);</span><br /><span style="font-size: 16px"><span style="color: #008080">28</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">29</span>     <span style="color: #008000">//</span><span style="color: #008000">从json格式的字符串转换为List数组</span><span style="color: #008000"><br /></span><span style="color: #008080">30</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> List getArray(String s){</span><br /><span style="font-size: 16px"><span style="color: #008080">31</span>         <span style="color: #0000ff">return</span> JSONArray.fromObject(s);</span><br /><span style="font-size: 16px"><span style="color: #008080">32</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">33</span>     <span style="color: #008000">//</span><span style="color: #008000">从json格式的字符串转换为某个Bean</span><span style="color: #008000"><br /></span><span style="color: #008080">34</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Object getObject(String s,Class cls){</span><br /><span style="font-size: 16px"><span style="color: #008080">35</span>         JSONObject jo=JSONObject.fromObject(s);</span><br /><span style="font-size: 16px"><span style="color: #008080">36</span>         <span style="color: #0000ff">return</span> JSONObject.toBean(jo, cls);</span><br /><span style="font-size: 16px"><span style="color: #008080">37</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">38</span>     <span style="color: #008000">//</span><span style="color: #008000">从json格式的字符串转换为某类对象的数组</span><span style="color: #008000"><br /></span><span style="color: #008080">39</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Object getArray(String s,Class cls){</span><br /><span style="font-size: 16px"><span style="color: #008080">40</span>         JSONArray ja=JSONArray.fromObject(s);</span><br /><span style="font-size: 16px"><span style="color: #008080">41</span>         <span style="color: #0000ff">return</span> JSONArray.toArray(ja, cls);</span><br /><span style="font-size: 16px"><span style="color: #008080">42</span>     }</span><br /><span style="font-size: 16px"><span style="color: #008080">43</span> }</span></pre></div><div><pre><span style="font-size: 16px"><br /><br /><br /><br /><br /></span></pre></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/396038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2013-03-04 15:22 <a href="http://www.blogjava.net/yxhxj2006/archive/2013/03/04/396038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 集合框架</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388113.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Wed, 19 Sep 2012 16:42:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388113.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/388113.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/388113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/388113.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在常见用法中，集合（collection）和数学上直观的集（set）的概念是相同的。 集是一个唯一项组，也就是说组中没有重复项。实际上，&#8220;集合框架&#8221;包含了一个 Set 接口和许多具体的 Set 类。但正式的集概念却比 Java 技术提前了一个世纪，那时英国数学家 George Boole 按逻辑正式的定义了集的概念。大部分人在小学时通过我们熟悉的维恩图引入的&#8220;集...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388113.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/388113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-09-20 00:42 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java命名规范</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388111.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Wed, 19 Sep 2012 16:40:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388111.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/388111.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/388111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/388111.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1命名规范&nbsp;1.1 package (*)&nbsp;包名全部由小写的ASCII字母组成，用&#8220;.&#8221;分隔。&nbsp;在此项目中，所有的包均以&#8220;com.prosten.ticket&#8221;开头。&nbsp;1.2 class (*)&nbsp;类名应当是名词，每个内部单词的头一个字母大写。应当使你的类名简单和具有说明性。用完整的英语单词或约定俗成的...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388111.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/388111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-09-20 00:40 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/09/20/388111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Debug不为人知的秘密</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Thu, 30 Aug 2012 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/386621.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/386621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/386621.html</trackback:ping><description><![CDATA[<h1><span style="font-size: x-large; "><span style="color: #990000; ">Debug视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">认识debug视图，红色部分框为线程堆栈视图，黄色部分框为表达式、断点、变量视图，蓝色部分为代码视图。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "></p><h1><span style="font-size: x-large; "><span style="color: #990000; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8254/bdd19152-af7b-35f0-90cc-0f562beaf0aa.gif" alt="" style="border: 0px; " /><br />&nbsp;线程堆栈视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">分别介绍一下这几个按钮的含义：</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.表示当前实现继续运行直到下一个断点，快捷键为F8。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.表示打断整个进程</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.表示进入当前方法，快捷键为F5。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">4.表示运行下一行代码，快捷键为F6。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">5.表示退出当前方法，返回到调用层，快捷键为F7。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">6.表示当前线程的堆栈，从中可以看出在运行哪些代码，并且整个调用过程，以及代码行号</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8256/1a253fc0-bad9-3f26-a3d5-6cfec51a58e8.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><h1><span style="font-size: x-large; "><span style="color: #990000; ">变量视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.为变量名视图，显示当前代码行中所有可以访问的实例变量和局部变量</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.显示所有的变量值</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.可以通过该窗口来改变变量值</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8258/737d51a1-e2f2-3de2-a3c5-c63d707f5123.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><h1><span style="font-size: x-large; "><span style="color: #990000; ">断点视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.显示所有断点</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2. 将当前窗口1中选中的端口失效，再次点击启用。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.异常断点</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8260/38125bfd-ee2c-3b4e-bef6-da2a6aa1928a.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><h1><span style="font-size: x-large; "><span style="color: #990000; ">表达式视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">表达式视图：表达式视图是Debug过程中较为常用的一个视图，可以对自己的感兴趣的一些变量进行观察，也可以增加一些自己的表达式，也可以查看一行代码的运行结果。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.表达式</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2. 点击此可以新增一个表达式</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8262/305f7d48-2e12-3dff-b217-ebb6214a313a.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><h1><span style="font-size: x-large; "><span style="color: #990000; ">代码视图</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">代码视图：用来显示具体的代码。其中绿色部分是指当前将要执行的代码</span></p><h1><br /><img src="http://dl.iteye.com/upload/attachment/0062/8264/d229f4fa-0de0-36ae-9217-bb95917113d7.gif" alt="" style="border: 0px; " /><br />&nbsp;</h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; text-indent: 36pt; ">&nbsp;</p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; text-indent: 36pt; "><span style="font-size: small; ">场景一：小明辛苦了两天终于将自己的负责的任务完成了，第二天转测后，测试找到了小明说，小明的程序有bug，可以是小明经过仔细调试，发现本地没有任何问题，但是测试的环境上确实有问题，所以小明遇到了难题，测试的环境linux，又不能上去linux去debug，小明这个时候想要是Linux也可以debug就好了.</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">远程debug</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">远程debug：远程debug顾名思义，能够将远程操作系统上的任何java进行debug，但是有前提是本地需要有同步的代码。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.远程debug的步骤是在远程操作系统上启动java进程时增加特殊的</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.在Eclipse中新建一个Remote Java Application</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">远程debug</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.打开Debug Configurations视图</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.右击Remote Java Application，</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">New</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.选择源码工程</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">4.输入远程IP和端口，端口即服务</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">端的$DEBUG_PORT,点击OK。</span></p><h1><br /><br /><img src="http://dl.iteye.com/upload/attachment/0062/8266/fb13f7aa-53c8-3e48-952b-7e2d01a199fe.gif" alt="" style="border: 0px; " /><br />&nbsp;<br />&nbsp;</h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; ">&nbsp;</p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">场景一：小明写了一个任务执行者，该执行者不间断的执行一些任务，在现网上运行了一段时间后，发现有概率的出现一些故障，发现运行一段时间后，该任务者异常退出了，退出的因为是空指针，可以小明想要在本地debug，不知道断点打在哪里，该问题是概率事件，不一定会出现，所以小明debug几遍下来后，头晕眼花，连代码都看不清楚了，小明想要是能有个断点每当出现空指针异常的时候就停下来让他发现问题，那该多好呀。</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">异常断点</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">异常断点：在定位问题的过程中，常常会遇到断点无法打到合适的位置，以至于和问题的触发点千差万别，所以这个时候不妨试试异常断点，顾名思义，异常断点是指抛出某种异常后自动挂起的断点。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">点击红色部位，增加一个异常断点</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8268/633e6a0b-c84c-372c-bd5b-90003a370668.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">输入想要定位的异常类型，例如NullPointerException，这样系统中抛出任何NullPointerException异常后，都会挂起当前线程，给你机会去定位问题。</span></p><h1>&nbsp;</h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">场景一：小明写了一个巨大的循环，在调测代码时，小明发现每当循环到第100000次的时候，就是出现问题，没有达到自己的预期，于是小明在循环里打了个断点，想看看到底怎么回事，可小明万万没有想到，想要到达100000次循环是多么的困难，小明这个时候已经开始浮想联翩，如果能有这样的断点：</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;循环次数== 100000，线程停下来</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">条件断点</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">如右图，循环1000次，如果想要在循环到500</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">次的时候停下来，可以创建一个条件断点，右</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">击断点悬着Breakpoint Properties。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><br /><img src="http://dl.iteye.com/upload/attachment/0062/8270/d041bc2a-bf70-3b38-ba13-944f07c82915.gif" alt="" style="border: 0px; " /><br />&nbsp;</p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">选中Enable Condition</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">在空白处，添加你自己的条件，如果条件返回true，线程会被挂起，如果为false，则忽略该异常</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">Hit Count为该断点经过多少次后，正式挂起线程，如果设置为500，则表达前499次，经过该断点都不会停下，当第500次，该断点会挂起当前线程。</span></p><h1><span style="color: #990000; font-size: x-large; ">&nbsp;<br /><img src="http://dl.iteye.com/upload/attachment/0062/8276/5efbd419-81d4-3012-ad4c-6f81b434191a.gif" alt="" style="border: 0px; " /><br />&nbsp;</span></h1><h1><span style="font-size: x-large; "><span style="color: #990000; ">表达式</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">表达式可以查看一些在当前代码中没有的命令行，方便定位问题。</span></p><h1>&nbsp;</h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">场景一：小明最近遇到一个难题，在调用一个第三方插件时总是会有问题，小明怀疑是第三方插件的bug，但小明没有找到源码不能进行debug，小明该怎么办呢？</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">Debug定位第三方插件的问题</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.使用反编译工具将代码反编译</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.将反编译后的源码进行过滤</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.修复源码编译错误</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">4.进行debug</span></p><h1><span style="font-size: x-large; "><span style="color: #990000; ">Debug一些经验</span></span></h1><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">1.尽量减少debug，少用debug，优秀的程序员总是花80%的时间来思考如何解决问题，20%的时间来动手完成代码，而糟糕的程序员总是用20%的时间去写代码，80%的时间去调试代码，动手之前尽量想好如何去做，并且已经为你自己的思路做了充分的实验。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">2.尽可能的提高debug的效率，设置合适的断点，使用快捷键。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">3.debug的F6快捷键经常用到，它与金山词霸的快捷键冲突，所以在debug的时候最好将金山词霸关掉。</span></p><p style=" padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14.399999618530273px; line-height: 25.200000762939453px; background-color: #ffffff; "><span style="font-size: small; ">4.debug的表达式是可执行代码，将会对代码结果产生永久性影响，在调试时注意，经常将不用的表达式清除掉。</span></p><img src ="http://www.blogjava.net/yxhxj2006/aggbug/386621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-30 18:16 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI操作Excel表格</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385164.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Thu, 09 Aug 2012 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385164.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/385164.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385164.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/385164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/385164.html</trackback:ping><description><![CDATA[在我们实际的开发中，表现层的解决方案虽然有多样，但是IE浏览器已成为最多人使用的浏览器，因为大家都用Windows。在企业办公系统中，常常有客户这样子要求：你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是：我们已经习惯用Excel打印。<br />Apache的Jakata项目的POI子项目，目前比较成熟的是HSSF接口，处理MSExcel对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西，而是真正的Excel对象，你可以控制一些属性如sheet,cell等等。<br />首先，理解一下一个Excel的文件的组织形式，一个Excel文件对应于一个workbook(HSSFWorkbook)，一个workbook可以有多个sheet（HSSFSheet）组成，一个sheet是由多个row（HSSFRow）组成，一个row是由多个cell（HSSFCell）组成。<br />POI可以到<a href="http://www.apache.org">www.apache.org</a>下载到。实际运行时，需要有poi包就可以了。HSSF提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象，样式和格式，还有辅助操作。有以下几种对象：<br />HSSFWorkbook excel的文档对象<br />HSSFSheet excel的表单<br />HSSFRow excel的行<br />HSSFCell excel的格子单元<br />HSSFFont excel字体<br />HSSFDataFormat 日期格式<br />在poi1.7中才有以下2项：<br />HSSFHeader sheet头<br />HSSFFooter sheet尾（只有打印的时候才能看到效果）<br />和这个样式<br />HSSFCellStyle cell样式<br />辅助操作包括<br />HSSFDateUtil 日期<br />HSSFPrintSetup 打印<br />HSSFErrorConstants 错误信息表<br />以下可能需要使用到如下的类<br />import org.apache.poi.hssf.usermodel.HSSFCell;<br />&nbsp;import org.apache.poi.hssf.usermodel.HSSFCellStyle;<br />&nbsp;import org.apache.poi.hssf.usermodel.HSSFDataFormat; <br />import org.apache.poi.hssf.usermodel.HSSFFont;<br />&nbsp;import org.apache.poi.hssf.usermodel.HSSFRow;<br />&nbsp;import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor;<br />先看poi的examples包中提供的最简单的例子，建立一个空xls文件。<br />import java.io.FileOutputStream;<br />import java.io.IOException;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />public class ExcelSample1 {<br />public static void main(String[] args) throws IOException {<br />//创建一个excel文件<br />HSSFWorkbook wb= new HSSFWorkbook();<br />FileOutputStream fileOut= new FileOutputStream("c:\\workbook.xls");<br />// FileOutputStream fileOut= new FileOutputStream("c:/workbook.xls");<br />wb.write(fileOut);<br />fileOut.close();<br />}<br />}<br />通过这个例子，我们在c盘下建立的是一个空白的xls文件（不是空文件）。<br />在此基础上，我们可以进一步看其它的例子。<br />import org.apache.poi.hssf.usermodel.*;<br />import java.io.FileOutputStream;<br />import java.io.IOException;<br />public class CreateCells<br />{<br />public static void main(String[] args) throws IOException<br />{<br />HSSFWorkbook wb = new HSSFWorkbook(); //建立新HSSFWorkbook对象<br />HSSFSheet sheet = wb.createSheet("new sheet"); //建立新的sheet对象<br />HSSFRow row = sheet.createRow((short)0);<br />//在sheet里创建一行，参数为行号（第一行，此处可想象成数组）<br />HSSFCell cell = row.createCell((short)0);<br />//在row里建立新cell（单元格），参数为列号（第一列）<br />cell.setCellvalue(1); //设置cell的整数类型的值<br />row.createCell((short)1).setCellvalue(1.2); //设置cell浮点类型的值<br />row.createCell((short)2).setCellvalue("test"); //设置cell字符类型的值<br />row.createCell((short)3).setCellvalue(true); //设置cell布尔类型的值<br />HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell样式<br />cellStyle.setDataFormat(HSSFDataFormat. getBuiltinFormat("m/d/yy h:mm"));<br />//设置cell样式为定制的日期格式<br />HSSFCell dCell =row.createCell((short)4);<br />dCell.setCellvalue(new Date()); //设置cell为日期类型的值<br />dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式<br />HSSFCell csCell =row.createCell((short)5);<br />csCell.setEncoding(HSSFCell.ENCODING_UTF_16);<br />//设置cell编码解决中文高位字节截断<br />csCell.setCellvalue("中文测试_Chinese Words Test"); //设置中西文结合字符串<br />row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR);<br />//建立错误cell<br />FileOutputStream fileOut = new FileOutputStream("workbook.xls");<br />wb.write(fileOut);<br />fileOut.close();<br />}<br />}<br />通过这个例子，我们可以清楚的看到xls文件从大到小包括了HSSFWorkbook HSSFSheet HSSFRow HSSFCell这样几个对象。我们可以在cell中设置各种类型的值。尤其要注意的是如果你想正确的显示非欧美的字符时，尤其象中日韩这样的语言，必须设置编码为16位的即是HSSFCell.ENCODING_UTF_16，才能保证字符的高8位不被截断而引起编码失真形成乱码。其他测试可以通过参考examples包中的测试例子掌握poi的详细用法，包括字体的设置，cell大小和低纹的设置等。需要注意的是POI是一个仍然在完善中的公开代码的项目，所以有些功能正在不断的扩充。<br />感觉上面的操作比较的繁琐，然后就自己写了一个方法。这个方法不需要事先创建row和cell，直接进行cteateCell就可以了，在程序中会自动进行判断，如果不存在的话会创建。<br />private static void cteateCell(HSSFWorkbook wb,HSSFRow row,short col,short align,String val){<br />HSSFCell cell = row.createCell(col);<br />cell.setEncoding(HSSFCell.ENCODING_UTF_16);<br />cell.setCellValue(val);<br />HSSFCellStyle cellstyle = wb.createCellStyle();<br />cellstyle.setAlignment(align);<br />cell.setCellStyle(cellstyle);<br />}<br />对里面的几个参数的说明：<br />short col 应该是你的cell单元格的位置也就是列号；<br />short align 应该是你的对齐方式；<br />String val 应该是你单元格里面要添加的值；<br />具体的调用如下：<br />HSSFRow row = sheet.createRow((short)1);<br />cteateCell(wb,row,(short)0,HSSFCellStyle.ALIGN_CENTER_SELECTION,"SampleID");<br />在上边的例子里我们看到了要设置一个单元格里面信息的格式（例如，要将信息居中）设置的操作如下：<br />HSSFCellStyle cellstyle = wb.createCellStyle();<br />cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);<br />cell.setCellStyle(cellstyle);<br />还有我们我们经常会用到的合并单元格，在这里我们也有这样的操作，代码如下：<br />sheet.addMergedRegion(new Region(1,(short)1,2,(short)4));<br /><!--StartFragment -->


<div><!--StartFragment -->


<div>&nbsp;这里面我们还要介绍一个经常会遇到的问题，就是怎么来冻结一个窗口。poi也为我们集成了这样的事情了。代码如下：<br />sheet.createFreezePane(1,2);<br />&#955; 在这里我们需要注意的是<br />一、该方法是在一个具体的sheet里面来进行操作。<br />二、方法createFreezepane;有2个参数。前一个参数代表列；后一个参数代表行。<br />上边的代码对应的excel文件如下：<br /><!--StartFragment -->

</div>
<div> </div></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/385164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-09 16:45 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java对Excel表格的操作</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385160.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Thu, 09 Aug 2012 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385160.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/385160.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385160.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/385160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/385160.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java对Excel表格的操作目前软件开发多采用B/S架构。正B/S架构可以给软件的开发部署带来很大的便利，但是与此同时这种架构也带来了一些问题，例如Web报表的处理等，在B/S架构下，客户端的开发并没有丰富的、互动性能良好的界面组件供开发人员调用，而且调用客户端机器上的设备也很不方便。这些缺陷将会导致B/S架构的软件在客户端的一些功能开发陷入困境。&nbsp;&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385160.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/385160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-09 16:31 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/09/385160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>