﻿<?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-解决之道</title><link>http://www.blogjava.net/xiaohuanbaby/</link><description>个人日记</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 10:01:50 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 10:01:50 GMT</pubDate><ttl>60</ttl><item><title>关于CLASSPATH</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219062.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219062.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219062.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219062.html</trackback:ping><description><![CDATA[
		<p>今天看翁恺的教程，讲JAVA基础，提到CLASSPATH...so bad...惭愧啊..只知道是环境变量..却不知道是做什么用的，以前只知道要set classpath=什么什么，至于为什么这么设，是作什么用的却还不知道，今天试了试..才有原来如此的感觉..<br /><br />我的理解，CLASSPATH是针对.class文件的，它是一个路径，能够让系统自动的去某个目录下去寻找你所要运行的.class文件..<br /><br />设置CLASSPATH，可以在系统下电脑属性里的环境变量里直接添加，也可以自己创建一个.bat文件，输入set classpath=d:\javatest;.;这里可以设置多个路径，‘.’代表当前目录.然后在DOC下执行这个.bat文件就OK了。这样我把.class文件放在d:\javatest下，无论我在哪JAVA这个.class文件，它都能够被正常执行.<br /><br />再有，关于package，如果一个a.java文件定义了一个package javatest；(当然a.java在javatest这个目录里)</p>
		<p>编译的时候需要在javatest的目录下执行JAVAC指令。此时会在当前目录生成一个a.class文件(假设只有一个a类)，但是此时这个文件的名字不再是A，而是多了一个姓，姓javatest，也就是说，我直接在当前目录下执行java a系统会提示找不到目标文件。所以在运行这个a.class的时候需要这样执行java javatest.a..<br /><br />这个时候需要注意的是，系统同样会在CLASSPATH的目录下寻找javatest这个目录.如果CLASSPATH此时被设置为set classpath=d:\javatest;.;那么在当前目录下（d:\javatest）下执行java javatest.a，系统会报错，因为在当前目录（d:\javatest）和d:\javatest目录下找不到目标文件，正确的做法是在d:\下执行java javatest.a..<br /><br />呵呵，原来接触的时候很乱，现在终于有了那么一点思路，还有待慢慢学习...</p>
<img src ="http://www.blogjava.net/realsmy/aggbug/69191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-09-12 16:45 <a href="http://www.blogjava.net/realsmy/archive/2006/09/12/69191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置让我头疼的MyEclipse...</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219061.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219061.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219061.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219061.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219061.html</trackback:ping><description><![CDATA[这几天一直在迷迷糊糊的学习，大多数时间都花在配置上，看了好多网上的文章，自己总结下，以防忘了。哈哈.<br /><br />最近老师讲的都是关于Web Programming的知识，能涉及到的方面有JAVA便宜环境JDK，WEB服务器tomcat,还有就是老师说以后会经常用的Eclipse。<br /><br />刚刚接触Eclipse，还没怎么弄熟悉呢~就开始弄到MyEclipse..MyEclipse是我接触的Eclipse的第一个插件。<br /><br />所以，一点一点的，第一步从JDK开始，这个简单...设置环境变量：<br />JAVA_HOME：F:\jdk1.5.0_06；<br />CLASSPATH：.;%JAVA_HOME%\lib;<br />然后在PATH里加入：%JAVA_HOME%\bin;（其实只需要把JDK的bin目录加到PATH里就可以，至于JAVA_HOME和CLASSPATH以后还会用到，估计这也是一种规范，所以就这样写了..）<br /><br />然后，安装tomcat...设置环境变量：<br />CATALINA_HOME：F:\Tomcat 5.0；<br />再在系统变量CLASSPATH的值的后面加入：%CATALINA_HOME%\common\lib; <br />再在系统变量Path的值中"%JAVA_HOME%\bin;"的后面加入：%CATALINA_HOME%\bin; <br /><br />然后安装Eclipse,把下载的ZIP包直接解压就可以用。<br /><br />最后就是MyEclipse，折磨了我好半天，其实很简单，下载MyEclipse的安装包之后执行（MyEclipseEnterpriseWorkbenchInstaller_5.0.1GA_E3.2.exe），会有两个路径需要修改，把这两个路径都设置成Eclipse的安装路径，比如我的Eclipse装到F：\下，就是F:\eclipse。<strong>然后把其中一个安装出来的文件夹（eclipse）中的features和plugins这2个目录覆盖原有的文件</strong>..我就是因为这个弄来半天没弄好，郁闷啊！<br /><br />然后运行eclipse.exe（首次运行要求指定Workspace），依次点击Window ——Preferences ——MyEclipse——Subscription ——Enter Subscription，输入注册名以及注册机生成的注册码。 <br /><br />这个MyEclipse这个插件就可以用了~哈哈~用来干啥还不了解呢！慢慢学习！<img src ="http://www.blogjava.net/realsmy/aggbug/69765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-09-14 22:51 <a href="http://www.blogjava.net/realsmy/archive/2006/09/14/69765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初识session</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219060.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219060.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219060.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219060.html</trackback:ping><description><![CDATA[
		<p>新建立一个Web Project...用来测试session的功能。<br /><br />session就象一个大容器，关键在于它的生命周期，它存活在父窗口的整个生命周期中。比如在一个index.htm页面中创建了一个session,那么在这个index.htm的页面没有被关闭的过程中，index的所有子连接，子连接的子连接等等，session都是同一个容器。但是，当我重新启动index.htm的时候，原来的session消失，新的session产生。<br /><br />就象以前学习的那个数据库的实践一样，可以实现不同的客户端每次访问服务器，服务器都会分配给客户端不同的一个session用以区别不同的用户。<br /><br />主要用法<br />//session test<br /><br />import javax.servlet.http.HttpSession;  //需要的包<br /><br />HttpSession session = request.getSession();   //定义session对象<br /><br />session.setAttribute("name",name);   //设置session属性<br /><br />String sessionname = (String)session.getAttribute("name");   //取session属性的值</p>
<img src ="http://www.blogjava.net/realsmy/aggbug/70230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-09-18 10:31 <a href="http://www.blogjava.net/realsmy/archive/2006/09/18/70230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JAVA创建,读取XML文件</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219059.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219059.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219059.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219059.html</trackback:ping><description><![CDATA[首先导入dom4j.jar包,这个包里面有我们创建XML文件需要用到的类,比如常用的有:<br /><br />Document:<br />import org.dom4j.Document;<br />Import org.dom4j.DocumentHelper;<br />DocumentHelper.createDocument(); 获得文档对象<br />addElement方法增加根节点<br />getRootElement方法获得根节点<br />asXML方法将文档对象包含的内容转换为字符<br />addComment方法在增加注释<br />getPath方法获得路径,根节点为/<br /><br />Element:<br />import org.dom4j.Elemet;<br />addElement方法增加子节点<br />addAttribute方法增加属性<br />getName方法获得节点名称<br />asXML方法将文档对象包含的内容转换为字符<br />addComment方法在增加注释<br />getPath方法获得路径<br />addText方法增加节点值<br />setText方法设置节点值<br />addNamespace方法增加命名空间<br />attributeCount方法获得属性个数<br />attributeValue方法获得属性值<br />elementText方法指定元素的值<br /><br />Attribute:<br />Import org.dom4j.Attribute;<br />getName方法获得属性名称<br />getValue方法获得属性值<br />setValue方法设置属性值<br /><br />Node:<br />import org.dom4j.Node;<br />Document和Element中selectSingleNode方法获得对象<br />setName方法设置节点名称<br />getText方法获得节点值<br />setText方法设置节点值<br /><br />List,Iterator:<br />import java.util.List;<br />Document和Element中selectNodes方法获得对象<br />import java.util.Iterator;<br />List中iterator方法,Iterator中hasNext方法和next方法来获得节点或属性<br /><br />XMLWriter:<br />import org.dom4j.io.XMLWriter;<br />Writer方法与OutputStream(FileOutputStream),Writer(FileWriter)<br />write方法写对象<br />close方法关闭写对象<br /><br />OutputFormat:<br />import org.dom4j.io.OutputFormat;<br />setEncoding方法设置字符集<br />createCompactFormat方法为紧凑格式,默认<br />createPrettyFormat方法为缩进格式<br /><br />SAXReader:<br />import org.dom4j.io.SAXReader ;<br />read方法与File<br /><br />下面,我们用这些类来实现一下创建XML文件的简单过程:<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> Test;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.dom4j.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.dom4j.io.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img id="Codehighlighter1_98_1408_Open_Image" onclick="this.style.display='none'; Codehighlighter1_98_1408_Open_Text.style.display='none'; Codehighlighter1_98_1408_Closed_Image.style.display='inline'; Codehighlighter1_98_1408_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_98_1408_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_98_1408_Closed_Text.style.display='none'; Codehighlighter1_98_1408_Open_Image.style.display='inline'; Codehighlighter1_98_1408_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> xmlTest </span><span id="Codehighlighter1_98_1408_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_98_1408_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_125_964_Open_Image" onclick="this.style.display='none'; Codehighlighter1_125_964_Open_Text.style.display='none'; Codehighlighter1_125_964_Closed_Image.style.display='inline'; Codehighlighter1_125_964_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_125_964_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_125_964_Closed_Text.style.display='none'; Codehighlighter1_125_964_Open_Image.style.display='inline'; Codehighlighter1_125_964_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> writeXML()</span><span id="Codehighlighter1_125_964_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_125_964_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Document doc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> org.dom4j.DocumentHelper.createDocument();<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建节点操作对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        Element rootElement </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> doc.addElement(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">student</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建根节点对象rootElement,标签名为student</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        <br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        rootElement.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对节点设置内容,后面读取XML文件的时候可以把他取出来</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        rootElement.addAttribute(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">id</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">030511111</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置节点属性</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        Element name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> rootElement.addElement(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">添加子节点</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        name.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">xiaozhang</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置子节点内容</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        Element age </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> rootElement.addElement(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">age</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        age.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">23</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id="Codehighlighter1_587_907_Open_Image" onclick="this.style.display='none'; Codehighlighter1_587_907_Open_Text.style.display='none'; Codehighlighter1_587_907_Closed_Image.style.display='inline'; Codehighlighter1_587_907_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_587_907_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_587_907_Closed_Text.style.display='none'; Codehighlighter1_587_907_Open_Image.style.display='inline'; Codehighlighter1_587_907_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_587_907_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_587_907_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            OutputFormat fmt </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> OutputFormat();<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建输出格式对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            fmt.setEncoding(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gb2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            XMLWriter writer </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> XMLWriter(fmt);<br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">以输出格式为参数,创建XML文件输出对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            OutputStream out </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileOutputStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">d:\\test.xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建输出流..</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            writer.setOutputStream(out);<br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置输出流</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            writer.write(doc);<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">输出doc对象,即形成XML文件</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #008000"><img id="Codehighlighter1_929_958_Open_Image" onclick="this.style.display='none'; Codehighlighter1_929_958_Open_Text.style.display='none'; Codehighlighter1_929_958_Closed_Image.style.display='inline'; Codehighlighter1_929_958_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_929_958_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_929_958_Closed_Text.style.display='none'; Codehighlighter1_929_958_Open_Image.style.display='inline'; Codehighlighter1_929_958_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (Exception e) </span><span id="Codehighlighter1_929_958_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_929_958_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            e.printStackTrace();<br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img id="Codehighlighter1_990_1299_Open_Image" onclick="this.style.display='none'; Codehighlighter1_990_1299_Open_Text.style.display='none'; Codehighlighter1_990_1299_Closed_Image.style.display='inline'; Codehighlighter1_990_1299_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_990_1299_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_990_1299_Closed_Text.style.display='none'; Codehighlighter1_990_1299_Open_Image.style.display='inline'; Codehighlighter1_990_1299_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> readXML()</span><span id="Codehighlighter1_990_1299_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_990_1299_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        SAXReader reader </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SAXReader();<br /></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建读取对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">48</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">        Document doc;<br /></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img id="Codehighlighter1_1063_1246_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1063_1246_Open_Text.style.display='none'; Codehighlighter1_1063_1246_Closed_Image.style.display='inline'; Codehighlighter1_1063_1246_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1063_1246_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1063_1246_Closed_Text.style.display='none'; Codehighlighter1_1063_1246_Open_Image.style.display='inline'; Codehighlighter1_1063_1246_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_1063_1246_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1063_1246_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            doc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> reader.read(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">d:\\test.xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">从test.xml文件中取得节点操作对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">52</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            Element name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> doc.getRootElement();<br /></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">取得节点对象</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">54</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            System.out.println(name.getText());<br /></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">输出节点内容</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">56</span><span style="COLOR: #008000"><img id="Codehighlighter1_1268_1296_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1268_1296_Open_Text.style.display='none'; Codehighlighter1_1268_1296_Closed_Image.style.display='inline'; Codehighlighter1_1268_1296_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1268_1296_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1268_1296_Closed_Text.style.display='none'; Codehighlighter1_1268_1296_Open_Image.style.display='inline'; Codehighlighter1_1268_1296_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (Exception e) </span><span id="Codehighlighter1_1268_1296_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1268_1296_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            e.printStackTrace();<br /></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img id="Codehighlighter1_1342_1406_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1342_1406_Open_Text.style.display='none'; Codehighlighter1_1342_1406_Closed_Image.style.display='inline'; Codehighlighter1_1342_1406_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1342_1406_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1342_1406_Closed_Text.style.display='none'; Codehighlighter1_1342_1406_Open_Image.style.display='inline'; Codehighlighter1_1342_1406_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args)</span><span id="Codehighlighter1_1342_1406_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_1342_1406_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        xmlTest s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> xmlTest();<br /></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        s.writeXML();<br /></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        s.readXML();    <br /></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><img src ="http://www.blogjava.net/realsmy/aggbug/80291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-11-10 08:53 <a href="http://www.blogjava.net/realsmy/archive/2006/11/10/80291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java连接oracle数据库</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219058.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219058.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219058.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219058.html</trackback:ping><description><![CDATA[偶理解不深,没什么说的,用的时候COPY就可以了~~<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> jdbc;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.sql.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img id="Codehighlighter1_57_879_Open_Image" onclick="this.style.display='none'; Codehighlighter1_57_879_Open_Text.style.display='none'; Codehighlighter1_57_879_Closed_Image.style.display='inline'; Codehighlighter1_57_879_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_57_879_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_879_Closed_Text.style.display='none'; Codehighlighter1_57_879_Open_Image.style.display='inline'; Codehighlighter1_57_879_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> jdbcTest </span><span id="Codehighlighter1_57_879_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_57_879_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img id="Codehighlighter1_78_785_Open_Image" onclick="this.style.display='none'; Codehighlighter1_78_785_Open_Text.style.display='none'; Codehighlighter1_78_785_Closed_Image.style.display='inline'; Codehighlighter1_78_785_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_78_785_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_78_785_Closed_Text.style.display='none'; Codehighlighter1_78_785_Open_Image.style.display='inline'; Codehighlighter1_78_785_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> test()</span><span id="Codehighlighter1_78_785_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_78_785_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Connection conn </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Statement sta </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_135_582_Open_Image" onclick="this.style.display='none'; Codehighlighter1_135_582_Open_Text.style.display='none'; Codehighlighter1_135_582_Closed_Image.style.display='inline'; Codehighlighter1_135_582_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_135_582_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_135_582_Closed_Text.style.display='none'; Codehighlighter1_135_582_Open_Image.style.display='inline'; Codehighlighter1_135_582_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">try</span><span id="Codehighlighter1_135_582_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_135_582_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            Class.forName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">oracle.jdbc.driver.OracleDriver</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加载驱动</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            conn </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> DriverManager.getConnection(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">jdbc:oracle:thin:@192.168.88.220:1521:oracle9</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">scott</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">tiger</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">192.168.88.220为你所访问的数据库的地址<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">1521为oracle的端口号<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">oracle9为数据库名<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">scott,tiger为oracle默认的用户名和密码</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            sta </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> conn.createStatement();<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            ResultSet rs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> sta.executeQuery(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select ename from emp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(rs.next())<br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img id="Codehighlighter1_525_577_Open_Image" onclick="this.style.display='none'; Codehighlighter1_525_577_Open_Text.style.display='none'; Codehighlighter1_525_577_Closed_Image.style.display='inline'; Codehighlighter1_525_577_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_525_577_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_525_577_Closed_Text.style.display='none'; Codehighlighter1_525_577_Open_Image.style.display='inline'; Codehighlighter1_525_577_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span id="Codehighlighter1_525_577_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_525_577_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(rs.getString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ename</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img id="Codehighlighter1_601_622_Open_Image" onclick="this.style.display='none'; Codehighlighter1_601_622_Open_Text.style.display='none'; Codehighlighter1_601_622_Closed_Image.style.display='inline'; Codehighlighter1_601_622_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_601_622_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_601_622_Closed_Text.style.display='none'; Codehighlighter1_601_622_Open_Image.style.display='inline'; Codehighlighter1_601_622_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        }</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception e)</span><span id="Codehighlighter1_601_622_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_601_622_Open_Text"><span style="COLOR: #000000">{e.printStackTrace();}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img id="Codehighlighter1_633_782_Open_Image" onclick="this.style.display='none'; Codehighlighter1_633_782_Open_Text.style.display='none'; Codehighlighter1_633_782_Closed_Image.style.display='inline'; Codehighlighter1_633_782_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_633_782_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_633_782_Closed_Text.style.display='none'; Codehighlighter1_633_782_Open_Image.style.display='inline'; Codehighlighter1_633_782_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">finally</span><span id="Codehighlighter1_633_782_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_633_782_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img id="Codehighlighter1_641_738_Open_Image" onclick="this.style.display='none'; Codehighlighter1_641_738_Open_Text.style.display='none'; Codehighlighter1_641_738_Closed_Image.style.display='inline'; Codehighlighter1_641_738_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_641_738_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_641_738_Closed_Text.style.display='none'; Codehighlighter1_641_738_Open_Image.style.display='inline'; Codehighlighter1_641_738_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">try</span><span id="Codehighlighter1_641_738_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_641_738_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id="Codehighlighter1_662_686_Open_Image" onclick="this.style.display='none'; Codehighlighter1_662_686_Open_Text.style.display='none'; Codehighlighter1_662_686_Closed_Image.style.display='inline'; Codehighlighter1_662_686_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_662_686_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_662_686_Closed_Text.style.display='none'; Codehighlighter1_662_686_Open_Image.style.display='inline'; Codehighlighter1_662_686_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(sta </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_662_686_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_662_686_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    sta.close();<br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img id="Codehighlighter1_708_733_Open_Image" onclick="this.style.display='none'; Codehighlighter1_708_733_Open_Text.style.display='none'; Codehighlighter1_708_733_Closed_Image.style.display='inline'; Codehighlighter1_708_733_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_708_733_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_708_733_Closed_Text.style.display='none'; Codehighlighter1_708_733_Open_Image.style.display='inline'; Codehighlighter1_708_733_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(conn </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_708_733_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_708_733_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    conn.close();<br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img id="Codehighlighter1_757_778_Open_Image" onclick="this.style.display='none'; Codehighlighter1_757_778_Open_Text.style.display='none'; Codehighlighter1_757_778_Closed_Image.style.display='inline'; Codehighlighter1_757_778_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_757_778_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_757_778_Closed_Text.style.display='none'; Codehighlighter1_757_778_Open_Image.style.display='inline'; Codehighlighter1_757_778_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            }</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception e)</span><span id="Codehighlighter1_757_778_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_757_778_Open_Text"><span style="COLOR: #000000">{e.printStackTrace();}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img id="Codehighlighter1_827_877_Open_Image" onclick="this.style.display='none'; Codehighlighter1_827_877_Open_Text.style.display='none'; Codehighlighter1_827_877_Closed_Image.style.display='inline'; Codehighlighter1_827_877_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_827_877_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_827_877_Closed_Text.style.display='none'; Codehighlighter1_827_877_Open_Image.style.display='inline'; Codehighlighter1_827_877_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="Codehighlighter1_827_877_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_827_877_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        jdbcTest jt </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> jdbcTest();<br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        jt.test();        <br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.blogjava.net/realsmy/aggbug/80295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-11-10 09:01 <a href="http://www.blogjava.net/realsmy/archive/2006/11/10/80295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java class loading技术研究</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219057.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219057.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219057.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219057.html</trackback:ping><description><![CDATA[
		<p>最近在忙毕业设计，被分到的课题是 ：java class loading技术研究<br /><br />第一次接触java虚拟机方面的问题，对我来说，还真有些困难。查了两天的资料，简单整理一下。<br /><br />一个类代表要执行的代码，而数据则表示其相关状态。状态时常改变，而代码则不会。当我们将一个特定的状态与一个类相对应起来，也就意味着将实例化一个对象。尽管相同的类对应的实例的状态千差万别，但其本质都对应着同一段代码。在JAVA中，一个类通常有着一个.class文件，但也有例外。<br /><br />我们所编译的代码，都是首先通过编译器编译成字节码文件。对于JAVA来说，就是生成一个一个的.class文件。当我们运行程序的时候，再由JAVA虚拟机将所需要的.class文件加载进内存。（这个时候的工作由每一个加载器来完成）。我的毕设所要研究的问题就在这里。如何自己定义一个classloader?自定义的classloader由什么意义呢?呵呵，才接触两天，具体的我还没理解透呢。<br /><br /><strong>关于classloader:</strong><br />classloader是一种tree-like的hierarchy的结构，这颗树的root是bootstrap classloader。当JVM启动后，系统往往会有三个或三个以上的Class Loader，也即：Bootstrap CL, Extension CL, System CL和User-defined CL。任何的CL都有一个parent CL（Bootstrap CL除外），从而所有的CL形成一颗自上而下的树，其中Bootstrap CL是这颗树的Root。<br />Bootstrap CL<br />└──Extension CL<br />└──System CL<br />└──User-defined CL.(classLoaderA)<br />└──User-defined CL.(classLoaderB)<br /><br />流程：</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当执行“</span>
				<span lang="EN-US">java XXX.class</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”时，</span>
				<span lang="EN-US">java.exe</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先找到</span>
				<span lang="EN-US">JRE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">Java Runtime Environment</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），接着找到位于</span>
				<span lang="EN-US">JRE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之中的</span>
				<span lang="EN-US">jvm.dll</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，最后载入</span>
				<span lang="EN-US">jvm.dll</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并启动虚拟机。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">虚拟机一启动，先做一些初始化动作，如获取系统参数等，然后产生</span>
				<span lang="EN-US">BL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				<span lang="EN-US">BL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">加载</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基础类，这些类都存放在</span>
				<span lang="EN-US">JRE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</span>
				<span lang="EN-US">lib</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下，可由</span>
				<span lang="EN-US">System.getProperty(“sun.boot.class.path”)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">列出。<br /></span>
				<br />jvm建立-&gt;初始化动作-&gt;产生第一个ClassLoader,即bootstrap loader-&gt;bootstrap loader在sum.misc.Launcher类里面的ExtClassLoader,并设定其Parent为null-&gt;bootstrap loader载入sun.misc.Launcher$AppClassLoader,并设定其parent为ExtClassLoader(但是AppClassLoader也是由bootstrap loader所载入的)-&gt;AppClassLoader载入各个xx.class,xx.class也有可能被ExtclassLoader或者bootstrap loader载入. <br /><br /><strong>Java类装载体系结构</strong></p>
		<p class="normal">装载类的过程非常简单：查找类所在位置，并将找到的Java类的字节码装入内存，生成对应的Class对象。Java的类装载器专门用来实现这样的过程，JVM并不止有一个类装载器，事实上，如果你愿意的话，你可以让JVM拥有无数个类装载器，当然这除了测试JVM外，我想不出还有其他的用途。你应该已经发现到了这样一个问题，类装载器自身也是一个类，它也需要被装载到内存中来，那么这些类装载器由谁来装载呢，总得有个根吧？没错，确实存在这样的根，它就是神龙见首不见尾的Bootstrap ClassLoader. 为什么说它神龙见首不见尾呢，因为你根本无法在Java代码中抓住哪怕是它的一点点的尾巴，尽管你能时时刻刻体会到它的存在，因为java的运行环境所需要的所有类库，都由它来装载，而它本身是C++写的程序，可以独立运行,可以说是JVM的运行起点,伟大吧。在Bootstrap完成它的任务后，会生成一个AppClassLoader(实际上之前系统还会使用扩展类装载器ExtClassLoader，它用于装载Java运行环境扩展包中的类),这个类装载器才是我们经常使用的，可以调用ClassLoader.getSystemClassLoader() 来获得，我们假定程序中没有使用类装载器相关操作设定或者自定义新的类装载器，那么我们编写的所有java类通通会由它来装载，值得尊敬吧。AppClassLoader查找类的区域就是耳熟能详的Classpath，也是初学者必须跨过的门槛，有没有灵光一闪的感觉，我们按照它的类查找范围给它取名为类路径类装载器。还是先前假定的情况，当Java中出现新的类，AppClassLoader首先在类传递给它的父类类装载器，也就是Extion ClassLoader，询问它是否能够装载该类，如果能，那AppClassLoader就不干这活了，同样Extion ClassLoader在装载时，也会先问问它的父类装载器。我们可以看出类装载器实际上是一个树状的结构图，每个类装载器有自己的父亲，类装载器在装载类时，总是先让自己的父类装载器装载(多么尊敬长辈),如果父类装载器无法装载该类时，自己就会动手装载，如果它也装载不了，那么对不起，它会大喊一声：Exception，class not found。有必要提一句，当由直接使用类路径装载器装载类失败抛出的是NoClassDefFoundException异常。如果使用自定义的类装载器loadClass方法或者ClassLoader的findSystemClass方法装载类，如果你不去刻意改变，那么抛出的是ClassNotFoundException。<br /><br /><strong>类加载器是什么？<br /></strong><br />Java和其他语言不同的是，Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以<br />一种和平台无关的格式保存的，而不是某种特定的机器上运行的格式。这种格式和传统的可<br />执行代码格式有很多重要的区别。具体来说，不同于C或者Ｃ++程序，Java程序不是一个独<br />立的可执行文件，而是由很多分开的类文件组成，每个类文件对应一个Java类。 另外，这<br />些类文件并不是马上加载到内存，而是当程序需要的时候才加载。 类加载器就是Java虚拟<br />机中用来把类加载到内存的工具。而且，Java类加载器也是用Java实现的。这样你就不需要<br />对Java虚拟机有深入的理解就可以很容易创建自己的类加载器了。<br /><br /><strong>为什么要创建类加载器?<br /><br /></strong>既然Java虚拟金已经有了类加载器，我们还要自己创建其他的呢?问得好。默认的类加载器<br />只知道如何从本地系统加载类。当你的程序完全在本机编译的话，默认的类加载器一般都工<br />作的很好。但是Java中最激动人心的地方之一就是很容易的从网络上而不只是本地加载类。<br />举个例子，浏览器可以通过自定义的类加载器加载类。 还有<br />很多加载类的方式。除了简单的从本地或者网络外，你还可以通过自定义Java中最激动人心<br />的地方之一:<br />* 执行非信任代码前自动验证数字签名<br />* 根据用户提供的密码解密代码<br />* 根据用户的需要动态的创建类<br />你关心的任何东西都能方便的以字节码的形式集成到你的应用中<br /><br />-----------------------------------------------------------------------------------<br /><br />以上大都是别人的文字，我选取了一些保存下来。用于以后的继续学习。 <br /><br />如果哪位朋友研究过这方面的内容，很乐意向您请教学习。<br /></p>
<img src ="http://www.blogjava.net/realsmy/aggbug/105823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2007-03-23 14:07 <a href="http://www.blogjava.net/realsmy/archive/2007/03/23/105823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于java class loader的理解笔记</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219056.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219056.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219056.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219056.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA中的一切都是以类的形式存在的（除少数底层的东西，那些我就不清楚是怎么回事了）。我们运行的接口是一个类，运行中所涉及到的对象也都是类对象。下面，我们来研究下，我所理解的类的加载机制。<br><br>比如我们有一个Student类，也就是经过编译后，是一个Student.class文件。当我们的程序运行的过程中，第一次实例化一个student对象的时候，系统首先要做的就是加载Student这个类。也就是把Student.class以字节玛的形势加载到内存中（并通过defineClass()这个方法转变成Class对象，最终以Class对象的形式存储在内存中）。这个加载的过程就是由类加载器来完成的。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/realsmy/archive/2007/04/03/108053.html'>阅读全文</a><img src ="http://www.blogjava.net/realsmy/aggbug/108053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2007-04-03 12:27 <a href="http://www.blogjava.net/realsmy/archive/2007/04/03/108053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA加密解密---自定义类加载器应用</title><link>http://www.blogjava.net/xiaohuanbaby/articles/219055.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/articles/219055.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219055.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/articles/219055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219055.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 自定义的类加载器能够灵活的控制类的加载过程。从而可以实现一些我们所要的功能。<br><br>但是，即使是这样的加密技术，对于某些高手来说，依然是脆弱的。我们所需要做的就是，理解这其中的过程，掌握这样的技术，最终能够应用到我们自己的实际项目中来。&nbsp;&nbsp;<a href='http://www.blogjava.net/realsmy/archive/2007/04/22/112575.html'>阅读全文</a><img src ="http://www.blogjava.net/realsmy/aggbug/112575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2007-04-22 11:09 <a href="http://www.blogjava.net/realsmy/archive/2007/04/22/112575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:45 <a href="http://www.blogjava.net/xiaohuanbaby/articles/219055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]JSP内部对象学习</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219048.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:29:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219048.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219048.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219048.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219048.html</trackback:ping><description><![CDATA[
		<p>最近在学JSP编程，感觉JSP的内部对象在实际开发中的作用不小。今天刚好看到一篇不错的资料，自己整理下！</p>
		<p>
				<br />1、Out对象 </p>
		<p>主要用来向客户端输出各种格式的数据，并且管理应用服务器上的输出缓冲区，Out对象的基类是javax.servlet.jsp.JspWriter类。 </p>
		<p>Out的主要方法： </p>
		<p>out.println(DataType);或out.print(DataType); </p>
		<p>实例： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a>  language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; out对象使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />out.println(new Date().toLocaleString()); <br />out.print("&lt;BR&gt;"); <br />out.print("测试成功"); <br />%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>2、Request对象 </p>
		<p>Request.setAttribute()与Request.getAttribute()方法实例（也可以使用forward建立请求关系）： </p>
		<p>引入页面： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;%@ include file="1.jsp" %&gt; <br />你刚才输入的内容是： <br />&lt;%=request.getAttribute("gr")%&gt; </p>
		<p>主页面： </p>
		<p>&lt; <a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; request对象使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />request.setAttribute("gr","123333"); <br />%&gt; <br />&lt;/FORM&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>Request.getParameter()方法实例 </p>
		<p>主页面 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; request.getParameter()方法使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;FORM METHOD=POST ACTION="2.jsp"&gt; <br />&lt;INPUT TYPE="text" NAME="gr1"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="text" NAME="gr2"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="text" NAME="gr3"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="submit" NAME="submit" value="提交"&gt; <br />&lt;INPUT TYPE="reset" NAME="reset" value="清除"&gt; <br />&lt;/FORM&gt; <br />&lt;/FORM&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>引入页面 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />你刚才输入的内容是：&lt;BR&gt; <br />&lt;%=request.getParameter("gr1")%&gt;&lt;BR&gt; <br />&lt;%=request.getParameter("gr2")%&gt;&lt;BR&gt; <br />&lt;%=request.getParameter("gr3")%&gt;&lt;BR&gt; </p>
		<p>Request.getParameterName()方法实例 </p>
		<p>主页面 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a>  language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; request.getParameterName()方法使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;FORM METHOD=post ACTION="2.jsp"&gt; <br />&lt;INPUT TYPE="text" NAME="gr1"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="text" NAME="gr2"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="text" NAME="gr3"&gt;&lt;BR&gt; <br />&lt;INPUT TYPE="submit" value="提交"&gt; <br />&lt;INPUT TYPE="reset" value="清除"&gt; <br />&lt;/FORM&gt; <br />&lt;/FORM&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>指向页面 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />你刚才输入的内容是：&lt;BR&gt; <br />&lt;% <br />Enumeration e=request.getParameterNames(); <br />while(e.hasMoreElements()){ <br />String parameterName=(String)e.nextElement(); <br />String parameterValue=(String)request.getParameter(parameterName); <br />out.print("参数名称："+parameterName+"&lt;BR&gt;"); <br />out.print("参数内容："+parameterValue+"&lt;BR&gt;"); <br />} <br />%&gt;<br />PS：Enumeration接口的API：<br />实现 Enumeration 接口的对象，它生成一系列元素，一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。<br />hasMoreElements () <br />          测试此枚举是否包含更多的元素。<br />nextElement () <br />          如果此枚举对象至少还有一个可提供的元素，则返回此枚举的下一个元素。</p>
		<p>Request.getAttributeName()方法实例 </p>
		<p>主页面： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; request.getAttributeName()方法使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;jsp:include page="2.jsp" flush="true"/&gt; <br />&lt;% <br />Enumeration e=request.getAttributeNames(); <br />while(e.hasMoreElements()){ <br />String attributeName=(String)e.nextElement(); <br />String attributeValue=(String)request.getAttribute(attributeName); <br />out.print("变量名称："+attributeName); <br />out.print("变量内容："+attributeValue+"&lt;BR&gt;"); <br />} <br />%&gt; <br />&lt;/FORM&gt; <br />&lt;/FORM&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>
				<br />转向页面 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;% <br />request.setAttribute("gr1","111"); <br />request.setAttribute("gr2","222"); <br />request.setAttribute("gr3","333"); <br />%&gt; </p>
		<p>request.getRemoteAddr()方法实例： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; request.getRemoteAddr()方法使用实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;B&gt;你的IP地址：&lt;/B&gt; <br />&lt;B&gt;&lt;%=request.getRemoteAddr()%&gt;&lt;/B&gt; <br />&lt;/FORM&gt; <br />&lt;/FORM&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>3、Response对象 </p>
		<p>response.setHeader()方法网页自动刷新实例： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; response刷新页面实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />response.setHeader("refresh","3"); <br />out.println(new Date().toLocaleString()); <br />%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>
				<br />response.sendRedirect();方法实现页面的跳转 <br />&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; response页面跳转实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />    response.sendRedirect("login.jsp");<br />%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>4、Application对象 </p>
		<p>在JSP服务器运行时刻，仅有一个Application对象，它由服务器创建，也由服务器自动清除, <br />不能被用户创建和清除。我们只能创建这个Appliation对象的同步拷贝。 </p>
		<p>setAttribute(),getAttribute()和removeAttribute()方法实例： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; Application对象方法实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />String username="rossini"; <br />String password="126263"; <br />application.setAttribute("username",username); <br />application.setAttribute("password",password); <br />out.println(application.getAttribute("username")+"&lt;BR&gt;"); <br />out.println(application.getAttribute("password")+"&lt;BR&gt;"); <br />application.removeAttribute("password"); <br />out.println(application.getAttribute("password")+"&lt;BR&gt;"); <br />%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>getAttributeNames()方法实例： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />import="java.util.*" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; Application对象方法实例&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />String username="rossini"; <br />String password="126263"; </p>
		<p>application.setAttribute("username",username); <br />application.setAttribute("password",password); </p>
		<p>Enumeration enum=application.getAttributeNames(); <br />while(enum.hasMoreElements()){ <br />String attrName=(String)enum.nextElement(); <br />out.println(attrName+"----"+application.getAttribute(attrName)+"&lt;BR&gt;"); <br />} </p>
		<p>%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>
				<br />5、Session对象 </p>
		<p>当用户登陆网站，系统将为他生成一个独一无二的Session对象，用以记录改用户的个人信息 <br />，一旦该用户退出网站，那么该Session对象将会注销。Session对象可以绑定若干个人信息或 <br />者Java对象，不同Session对象的同名变量是不会相互干扰的。 </p>
		<p>getValue(String name)、putValue(String name)、removeValue(String name)、getValueNames() <br />、getCreationTime()、getId()、getLastAccessedTime()、getMaxInactiveInterval()、 <br />setMaxInactiveInterval()方法： </p>
		<p>主文件： </p>
		<p>&lt;<a href="mailto:%@page">%@page</a>  language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; Session主页面&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />String username="rossini"; <br />String password="126263"; <br />session.putValue("username",username); <br />session.putValue("password",password); <br />%&gt; <br />&lt;A HREF="2.jsp"&gt;指向第二页&lt;/A&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>转向页面1 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; Session转向页面1&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />String usr=(String)session.getValue("username"); <br />String pwd=(String)session.getValue("password"); <br />%&gt; <br />&lt;%=usr%&gt;&lt;BR&gt; <br />&lt;%=pwd%&gt;&lt;BR&gt; <br />&lt;%out.println("session create:"+session.getCreationTime());%&gt;&lt;BR&gt; <br />&lt;%out.println("session id:"+session.getId());%&gt;&lt;BR&gt; <br />&lt;%out.println("session last access:"+session.getLastAccessedTime());%&gt;&lt;BR&gt; <br />&lt;%out.println("session 原来最大休眠时间:"+session.getMaxInactiveInterval());%&gt;&lt;BR&gt; <br />&lt;%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%&gt;&lt;BR&gt; <br />&lt;%out.println("session 最新最大休眠时间:"+session.getMaxInactiveInterval());%&gt;&lt;BR <br />&lt;% <br />String []name=session.getValueNames(); <br />out.println("--------------"+"&lt;BR&gt;"); <br />for(int i=0;i&lt;name.length;i++) <br />{ <br />out.println(session.getValue(name[i])+"&lt;BR&gt;"); <br />} <br />%&gt; <br />&lt;% <br />session.removeValue("username"); <br />%&gt; <br />&lt;A HREF="3.jsp"&gt;指向第三页&lt;/A&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>转向页面2 </p>
		<p>&lt;<a href="mailto:%@page">%@page</a> language="java" <br />contentType="text/html;charset=gb2312" <br />%&gt; <br />&lt;HTML&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt; Session转向页面2&lt;/TITLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;% <br />String usr=(String)session.getValue("username"); <br />String pwd=(String)session.getValue("password"); <br />%&gt; <br />&lt;%=usr%&gt;&lt;BR&gt; <br />&lt;%=pwd%&gt; <br />&lt;/BODY&gt; <br />&lt;/HTML&gt; </p>
		<p>invalidate()方法将会将会清除当前的session对象解除它和任何参数或者JAVA对象的绑定关系 <br /></p>
<img src ="http://www.blogjava.net/realsmy/aggbug/73901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2006-10-08 20:54 <a href="http://www.blogjava.net/realsmy/archive/2006/10/08/73901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/realsmy/archive/2006/10/08/73901.html'>http://www.blogjava.net/realsmy/archive/2006/10/08/73901.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:29 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]JSP生成验证码</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219047.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:29:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219047.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219047.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219047.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JSP生成验证码学习。&nbsp;&nbsp;<a href='http://www.blogjava.net/realsmy/archive/2007/04/18/111725.html'>阅读全文</a><img src ="http://www.blogjava.net/realsmy/aggbug/111725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2007-04-18 19:54 <a href="http://www.blogjava.net/realsmy/archive/2007/04/18/111725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/realsmy/archive/2007/04/18/111725.html'>http://www.blogjava.net/realsmy/archive/2007/04/18/111725.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:29 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]整理近几天处理JSP页面中遇到的几个问题</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219046.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:29:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219046.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219046.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219046.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 十一回家腐败了几天，回到公司，紧张的气氛又开始了。继续奋斗。&nbsp;&nbsp;<a href='http://www.blogjava.net/realsmy/archive/2007/10/10/151692.html'>阅读全文</a><img src ="http://www.blogjava.net/realsmy/aggbug/151692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/realsmy/" target="_blank">久城</a> 2007-10-10 13:51 <a href="http://www.blogjava.net/realsmy/archive/2007/10/10/151692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/realsmy/archive/2007/10/10/151692.html'>http://www.blogjava.net/realsmy/archive/2007/10/10/151692.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:29 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]关于JTable，为何这样？</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219037.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219037.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219037.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219037.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下周完我就工作满一年啦。回想大部分的时间都被好奇心给占去了，这个组件好玩弄一下，那个好玩也弄一下，最后手里还是什么都没得，而本身的工作是基于swing，倒是没花多少精力，最后也是对swing一知半解，今天想研究研究下talbe，却发现被这么个问题给卡住了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是这样的给TableModel传入表头和内容，但是直接将table加到frame中去，table显示不了表头如图1，但是将table放到JScrollPane中去，却能显示，如图2。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="147" alt="" src="http://www.blogjava.net/images/blogjava_net/kissjava/test1.gif" width="296" border="0" /></p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp; <img height="148" alt="" src="http://www.blogjava.net/images/blogjava_net/kissjava/test2.gif" width="297" border="0" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 图二&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; 为什么这样？实在是弄不明白，不知道有那位高手指点下不？<br />
&nbsp;&nbsp;&nbsp;&nbsp; 源码如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;kissJava.JTable;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.table.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_124_908_Open_Image" onclick="this.style.display='none'; Codehighlighter1_124_908_Open_Text.style.display='none'; Codehighlighter1_124_908_Closed_Image.style.display='inline'; Codehighlighter1_124_908_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_124_908_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_124_908_Closed_Text.style.display='none'; Codehighlighter1_124_908_Open_Image.style.display='inline'; Codehighlighter1_124_908_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestSortedTable&nbsp;</span><span id="Codehighlighter1_124_908_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_124_908_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_165_906_Open_Image" onclick="this.style.display='none'; Codehighlighter1_165_906_Open_Text.style.display='none'; Codehighlighter1_165_906_Closed_Image.style.display='inline'; Codehighlighter1_165_906_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_165_906_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_165_906_Closed_Text.style.display='none'; Codehighlighter1_165_906_Open_Image.style.display='inline'; Codehighlighter1_165_906_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String&nbsp;args[])</span><span id="Codehighlighter1_165_906_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_165_906_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JFrame&nbsp;frame&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JFrame(</span><span style="color: #000000">"</span><span style="color: #000000">JTable的header测试</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
<img id="Codehighlighter1_290_450_Open_Image" onclick="this.style.display='none'; Codehighlighter1_290_450_Open_Text.style.display='none'; Codehighlighter1_290_450_Closed_Image.style.display='inline'; Codehighlighter1_290_450_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_290_450_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_290_450_Closed_Text.style.display='none'; Codehighlighter1_290_450_Open_Image.style.display='inline'; Codehighlighter1_290_450_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;rows[][]&nbsp;</span><span style="color: #000000">=</span><span id="Codehighlighter1_290_450_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_290_450_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_296_313_Open_Image" onclick="this.style.display='none'; Codehighlighter1_296_313_Open_Text.style.display='none'; Codehighlighter1_296_313_Closed_Image.style.display='inline'; Codehighlighter1_296_313_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_296_313_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_296_313_Closed_Text.style.display='none'; Codehighlighter1_296_313_Open_Image.style.display='inline'; Codehighlighter1_296_313_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_296_313_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_296_313_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">王明</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">中国</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">44</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_320_337_Open_Image" onclick="this.style.display='none'; Codehighlighter1_320_337_Open_Text.style.display='none'; Codehighlighter1_320_337_Closed_Image.style.display='inline'; Codehighlighter1_320_337_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_320_337_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_320_337_Closed_Text.style.display='none'; Codehighlighter1_320_337_Open_Image.style.display='inline'; Codehighlighter1_320_337_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_320_337_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_320_337_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">姚明</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">中国</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">25</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_344_364_Open_Image" onclick="this.style.display='none'; Codehighlighter1_344_364_Open_Text.style.display='none'; Codehighlighter1_344_364_Closed_Image.style.display='inline'; Codehighlighter1_344_364_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_344_364_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_344_364_Closed_Text.style.display='none'; Codehighlighter1_344_364_Open_Image.style.display='inline'; Codehighlighter1_344_364_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_344_364_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_344_364_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">赵子龙</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">西蜀</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">1234</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_371_390_Open_Image" onclick="this.style.display='none'; Codehighlighter1_371_390_Open_Text.style.display='none'; Codehighlighter1_371_390_Closed_Image.style.display='inline'; Codehighlighter1_371_390_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_371_390_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_371_390_Closed_Text.style.display='none'; Codehighlighter1_371_390_Open_Image.style.display='inline'; Codehighlighter1_371_390_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_371_390_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_371_390_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">曹操</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">北魏</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">2112</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_397_422_Open_Image" onclick="this.style.display='none'; Codehighlighter1_397_422_Open_Text.style.display='none'; Codehighlighter1_397_422_Closed_Image.style.display='inline'; Codehighlighter1_397_422_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_397_422_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_397_422_Closed_Text.style.display='none'; Codehighlighter1_397_422_Open_Image.style.display='inline'; Codehighlighter1_397_422_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_397_422_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_397_422_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Bill&nbsp;Gates</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">美国</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">45</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">,<br />
<img id="Codehighlighter1_429_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_429_448_Open_Text.style.display='none'; Codehighlighter1_429_448_Closed_Image.style.display='inline'; Codehighlighter1_429_448_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_429_448_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_429_448_Closed_Text.style.display='none'; Codehighlighter1_429_448_Open_Image.style.display='inline'; Codehighlighter1_429_448_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_429_448_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_429_448_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Mike</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">英国</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">33</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">;<br />
<img id="Codehighlighter1_474_493_Open_Image" onclick="this.style.display='none'; Codehighlighter1_474_493_Open_Text.style.display='none'; Codehighlighter1_474_493_Closed_Image.style.display='inline'; Codehighlighter1_474_493_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_474_493_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_474_493_Closed_Text.style.display='none'; Codehighlighter1_474_493_Open_Image.style.display='inline'; Codehighlighter1_474_493_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;columns[]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_474_493_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_474_493_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">姓名</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">国籍</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">年龄</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;}</span></span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableModel&nbsp;model&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultTableModel(rows,&nbsp;columns);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JTable&nbsp;table&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JTable(model);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RowSorter</span><span style="color: #000000">&lt;</span><span style="color: #000000">TableModel</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;sorter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TableRowSorter</span><span style="color: #000000">&lt;</span><span style="color: #000000">TableModel</span><span style="color: #000000">&gt;</span><span style="color: #000000">(model);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setRowSorter(sorter);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JScrollPane&nbsp;pane&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JScrollPane(table);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame.add(pane,&nbsp;BorderLayout.CENTER);</span><span style="color: #008000">//</span><span style="color: #008000">显示header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;frame.add(table,&nbsp;BorderLayout.CENTER);</span><span style="color: #008000">//</span><span style="color: #008000">不显示header&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame.setSize(</span><span style="color: #000000">300</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame.setVisible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<img src ="http://www.blogjava.net/kissjava/aggbug/187671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-03-21 12:31 <a href="http://www.blogjava.net/kissjava/articles/187671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/articles/187671.html'>http://www.blogjava.net/kissjava/articles/187671.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]为JTable添加JScrollPane给corner设置颜色</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219036.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219036.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219036.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219036.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219036.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 有时候为了使JTable配合软件风格配置不同的颜色，当table的有表头以及添加了JScrollPane有ScollBar的时候会出现有个右上角有个区域的颜色是和底色是一样的，如下图1：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/kissjava/articles/187739.html'>阅读全文</a><img src ="http://www.blogjava.net/kissjava/aggbug/187739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-03-21 17:08 <a href="http://www.blogjava.net/kissjava/articles/187739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/articles/187739.html'>http://www.blogjava.net/kissjava/articles/187739.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]如何使可编辑的JComboBox的输入框高亮显示？</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219035.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219035.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219035.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219035.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要做一个可编辑的JComboBox，即可以在里面输入查找，也可以选择下拉框选择。但两者都必须在操作完后，comboBox的输入框都必须高亮显示，如图：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/kissjava/archive/2008/04/02/190383.html'>阅读全文</a><img src ="http://www.blogjava.net/kissjava/aggbug/190383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-02 15:27 <a href="http://www.blogjava.net/kissjava/archive/2008/04/02/190383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/04/02/190383.html'>http://www.blogjava.net/kissjava/archive/2008/04/02/190383.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Hibernate学习笔记一</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219034.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219034.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219034.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219034.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219034.html</trackback:ping><description><![CDATA[&nbsp;<strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">Configuration</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：负债管理</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的配置信息，</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的入口</span><span lang="EN-US" style="color: black"><o:p></o:p></span>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="color: black; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1、</span></span><span lang="EN-US" style="color: black">configure</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（）方法默认会在</span><span lang="EN-US" style="color: black">classpath</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面寻找</span><span lang="EN-US" style="color: black">hibernatev.cfg.xml<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="color: black; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2、</span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持带参数的访问，可以指定</span><span lang="EN-US" style="color: black">hbm.xml</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt"><span lang="EN-US" style="color: black">File file = new File(&#8220;d:\\cfg\\hibernate.xml&#8221;);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt"><span lang="EN-US" style="color: black">Configuration config = new Configuration().config(file);</span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">Session</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的缓存：</span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、充当蓄水池的作用，减少程序访问数据库的次数。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、保证缓存中的数据与数据库同步，同步的具体情况看</span><span lang="EN-US" style="color: black">FlushMode</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是什么</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">清理缓存是指查看缓存中的数据与数据库是否同步，不同步就发送更新语句</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.AUTO</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">判断对象属性有没有改变，是默认的清理模式</span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.COMMIT</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在事务结束之前清理</span><span lang="EN-US" style="color: black">Session</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的缓存，其他任何时候都不清理缓存</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.NEVER</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：除非强制调用</span><span lang="EN-US" style="color: black">Session.flush()</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，或则永不清理缓存。所作的修改只限与内存</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.ALWAYS</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在每一个查询语句前都调用</span><span lang="EN-US" style="color: black">flush()</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行缓存管理，这种模式经常不必要并且低效的。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120pt; text-indent: -120pt; mso-char-indent-count: -10.0"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p><span lang="EN-US">Hibernate</span>定义并支持下列对象状态<span lang="EN-US">(state): </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">瞬时<span lang="EN-US">(Transient)</span></span></em><span lang="EN-US"> - </span>由<tt><span lang="EN-US">new</span></tt>操作符创建，且尚未与<span lang="EN-US">Hibernate <tt>Session</tt> </span>关联的对象被认定为瞬时<span lang="EN-US">(Transient)</span>的。瞬时<span lang="EN-US">(Transient)</span>对象不会被持久化到数据库中，也不会被赋予持久化标识<span lang="EN-US">(identifier)</span>。 如果瞬时<span lang="EN-US">(Transient)</span>对象在程序中没有被引用，它会被垃圾回收器<span lang="EN-US">(garbage collector)</span>销毁。 使用<span lang="EN-US">Hibernate <tt>Session</tt></span>可以将其变为持久<span lang="EN-US">(Persistent)</span>状态。<span lang="EN-US">(Hibernate</span>会自动执行必要的<span lang="EN-US">SQL</span>语句<span lang="EN-US">) </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">持久<span lang="EN-US">(Persistent)</span></span></em><span lang="EN-US"> - </span>持久<span lang="EN-US">(Persistent)</span>的实例在数据库中有对应的记录，并拥有一个持久化标识<span lang="EN-US">(identifier)</span>。持久<span lang="EN-US">(Persistent)</span>的实例可能是刚被保存的，或刚被加载的，无论哪一种，按定义，它存在于相关联的<tt><span lang="EN-US">Session</span></tt>作用范围内。<span lang="EN-US"> Hibernate</span>会检测到处于持久<span lang="EN-US">(Persistent)</span>状态的对象的任何改动，在当前操作单元<span lang="EN-US">(unit of work)</span>执行完毕时将对象数据<span lang="EN-US">(state)</span>与数据库同步<span lang="EN-US">(synchronize)</span>。 开发者不需要手动执行<tt><span lang="EN-US">UPDATE</span></tt>。将对象从持久<span lang="EN-US">(Persistent)</span>状态变成瞬时<span lang="EN-US">(Transient)</span>状态同样也不需要手动执行<tt><span lang="EN-US">DELETE</span></tt>语句。<span lang="EN-US"> </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">脱管<span lang="EN-US">(Detached)</span></span></em><span lang="EN-US"> - </span>与持久<span lang="EN-US">(Persistent)</span>对象关联的<tt><span lang="EN-US">Session</span></tt>被关闭后，对象就变为脱管<span lang="EN-US">(Detached)</span>的。 对脱管<span lang="EN-US">(Detached)</span>对象的引用依然有效，对象可继续被修改。脱管<span lang="EN-US">(Detached)</span>对象如果重新关联到某个新的<tt><span lang="EN-US">Session</span></tt>上，会再次转变为持久<span lang="EN-US">(Persistent)</span>的<span lang="EN-US">(</span>在<span lang="EN-US">Detached</span>其间的改动将被持久化到数据库<span lang="EN-US">)</span>。 这个功能使得一种编程模型，即中间会给用户思考时间<span lang="EN-US">(user think-time)</span>的长时间运行的操作单元<span lang="EN-US">(unit of work)</span>的编程模型成为可能。我们称之为<em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">应用程序事务</span></em>，即从用户观点看是一个操作单元<span lang="EN-US">(unit of work)</span>。<span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索的配置文件标识符为</span><span lang="EN-US" style="color: black">lazy=&#8221;false&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，表示</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在数据库中取得字段值组装好一个对象后，会立即再从数据库此对象多关联的对象，如果这个关联的对象还有关联对象，则再组装此关联对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一对多和多对一关联对象则不适合立即检索。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">延迟检索：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索的配置文件标识符为</span><span lang="EN-US" style="color: black">lazy=&#8221;true&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，就是需要用到时才会去去被关联的对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">预先抓取</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指的是</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过</span><span lang="EN-US" style="color: black">select</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">语句使用</span><span lang="EN-US" style="color: black">outer join</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来获得对象的关联实例</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者关联集合。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">Hibernate2.x</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本：</span><span lang="EN-US" style="color: black">outer-join=&#8221;true&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">Hibernate3.x</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本：</span><span lang="EN-US" style="color: black">fetch=&#8221;join&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span><span lang="EN-US" style="color: black"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">one-to-one </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"cer" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.kissjava.Certificate" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">fetch</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"join" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">cascade</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"all"</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">one-to-one</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">（</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">1</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">）</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 25pt; text-indent: -25pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">many-to-one </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"team" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">column</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"team_id" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.kissjava.Team" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">fetch</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"join"</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">many-to-one</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">（</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">2</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">）</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span><span lang="EN-US" style="color: black">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）一个一对一关联的对象属性，名为</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在得到</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象时，采用预先抓取得到</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象，并且级联为</span><span lang="EN-US" style="color: black">all</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，说明</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的增加、删除及修改操作都会影响到</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span><span lang="EN-US" style="color: black">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）一个多对一关联的对象属性，名为</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表中通过</span><span lang="EN-US" style="color: black">team_id</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象发生关联，</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的实体类是</span><span lang="EN-US" style="color: black">Team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在取得</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例时，使用预先抓取得到</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/kissjava/aggbug/191727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-10 08:49 <a href="http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html'>http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]泛型学习</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219033.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219033.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219033.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219033.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     因为公司的程序要兼容到JDK1.3，所以对泛型没有系统的去了解下。今天有空学习下，哈已经是好遥远的东西啦。以下是在核心技术那本书上的摘抄：<br>   使用泛型机制编写的程序代码要比那些杂乱地使用Object变量，然后再进行强制类型转换的代码具有更好的安全性和可读性。如： ArrayList<Sting> files = new ArrayList<String>();<br>   一看就知道这个数组列表中包含的是String对象。同时编译器据此不需要强制类型转换，返回类型为String，而不是Object：<br>String file = files.get(0);<br>   同时当files调用add方法，编译器知道有一个类型是String的参数。这会比使用Object参数更安全，编译器可以进行检查，避免错误类型的对象。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/kissjava/archive/2008/04/10/191901.html'>阅读全文</a><img src ="http://www.blogjava.net/kissjava/aggbug/191901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-10 16:24 <a href="http://www.blogjava.net/kissjava/archive/2008/04/10/191901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/04/10/191901.html'>http://www.blogjava.net/kissjava/archive/2008/04/10/191901.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]国际：十个习惯让你精通新的开发技术【转】</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219032.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219032.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219032.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219032.html</trackback:ping><description><![CDATA[<p><font face="Arial">这篇文章，是从我的《高效<nobr><strong class="kgb" onmouseover='isShowAds = true;isShowAds2 = true;KeyGate_ads.Move(this,"","","-100835","开发","ROR%u5E94%u7528%u63A2%u7D22","http%3A//www.sd2china.cn/track1.html", event)' style="border-top-width: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; cursor: hand; color: #0000ff; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://s4.17luntan.com/ClickPortal/WebClick.aspx?id=-100835&amp;k=%u5F00%u53D1&amp;siteid=0098295a-e262-40f7-ae50-7a6fbbdb678b&amp;url=http%3A//news.csdn.net/n/20080408/115015.html&amp;gourl=http%3A//www.sd2china.cn/track1.html&amp;parm=B233C05BE9F1653F04711934DB72CFCDD4D652BE6A702FDA&amp;alliedsiteid=0");' onmouseout="isShowAds = false;isShowAds2 = false">开发</strong></nobr>人员的五个特征》一文中抽出的一个观点。从我自身的事业和习惯中，我考虑了很多方式怎么样才能有效地<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u5B66_u4E60";KeyGate_ads.ShowGgAds(this,"_u5B66_u4E60",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BP20nHPUCSJbsCILm6wPQ_8HiCMT0yT_s0KnyBMCNtwGQvwUQFBgUIM-BhwooFDgAUNeBmvr-_____wFgnaHfgdgFoAHInZD9A7IBDW5ld3MuY3Nkbi5uZXTIAQHaAStodHRwOi8vbmV3cy5jc2RuLm5ldC9uLzIwMDgwNDA4LzExNTAxNS5odG1sgAIBqQIP2DeRVCiDPqgDAegD2wXoAxb1AwAEAAA&amp;num=20&amp;adurl=http://www.yygww.com/&amp;client=ca-pub-3578421812762734");GgKwClickStat("学习","www.yygww.com","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u5B66_u4E60"'>学习</strong></nobr>。</font></p>
<p><font face="Arial"><strong>1. 要看书。</strong><br />
在成千上万的<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u7F16_u7A0B";KeyGate_ads.ShowGgAds(this,"_u7F16_u7A0B",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=Byx44HPUCSJbsCILm6wPQ_8HiCK6yrzHOloa1A8CNtwGQvwUQBBgEIM-BhwooFDgAUL_IsMP7_____wFgnaHfgdgFsgENbmV3cy5jc2RuLm5ldMgBAdoBK2h0dHA6Ly9uZXdzLmNzZG4ubmV0L24vMjAwODA0MDgvMTE1MDE1Lmh0bWypAg_YN5FUKIM-yALuw98DqAMB6APbBegDFvUDAAQAAA&amp;num=4&amp;adurl=http://www.szleadtech.com.cn&amp;client=ca-pub-3578421812762734");GgKwClickStat("编程","www.szleadtech.com.cn","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u7F16_u7A0B"'>编程</strong></nobr>图书中，可能很大一部分根本毫无用处。但是仍然有很多图书对你的(编程)能力有很大的提升。我一直坚持，相比在网络上查找很多有用信息，在同类图书中查找要来得更容易更快捷。阅读<nobr><strong class="kgb" onmouseover='isShowAds = true;isShowAds2 = true;KeyGate_ads.Move(this,"","","-100826","技术","Web%u6280%u672F%u5728%u4F01%u4E1A%u4E2D%u5E94%u7528","http%3A//www.sd2china.cn/track2.html", event)' style="border-top-width: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; cursor: hand; color: #0000ff; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://s4.17luntan.com/ClickPortal/WebClick.aspx?id=-100826&amp;k=%u6280%u672F&amp;siteid=0098295a-e262-40f7-ae50-7a6fbbdb678b&amp;url=http%3A//news.csdn.net/n/20080408/115015.html&amp;gourl=http%3A//www.sd2china.cn/track2.html&amp;parm=B233C05BE9F1653F04711934DB72CFCDD4D652BE6A702FDA&amp;alliedsiteid=0");' onmouseout="isShowAds = false;isShowAds2 = false">技术</strong></nobr>图书可心更好地抓住核心内容。对于理论，架构和设计等方面来说，图书也一样很有帮助。只不过要找到高质量的、权威的信息，就不如网络上可供查找的范围广。</font></p>
<p><font face="Arial"><strong>2. 读代码。<br />
</strong>这也是我很喜欢的一种方式。如果我并没有几年的专业编程<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u5DE5_u4F5C";KeyGate_ads.ShowGgAds(this,"_u5DE5_u4F5C",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BNZvaHPUCSJbsCILm6wPQ_8HiCN3h9DHlq82eA8CNtwHwkwkQARgBIM-BhwooFDgAUMSJte0BYJ2h34HYBbIBDW5ld3MuY3Nkbi5uZXTIAQHaAStodHRwOi8vbmV3cy5jc2RuLm5ldC9uLzIwMDgwNDA4LzExNTAxNS5odG1sgAIBqAMB6APbBegDFvUDAAQAAA&amp;num=1&amp;adurl=http://discovery.skillsone.com/FWP.asp%3Flanguage%3D12%26adid%3D133&amp;client=ca-pub-3578421812762734");GgKwClickStat("工作","discovery.skillsone.com","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u5DE5_u4F5C"'>工作</strong></nobr>经验，在学习之初我并不会去读很多复杂的代码。如果我要是早些开始学习，我将是一个比现在更好的程序员。但是，开始时我会从一些开源<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u9879_u76EE";KeyGate_ads.ShowGgAds(this,"_u9879_u76EE",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=Bco2UHPUCSJbsCILm6wPQ_8HiCMOroTXP3eGgBMCNtwHAqQcQBhgGIM-BhwooFDgAUKjXpPIBYJ2h34HYBaABw6Kp_QOyAQ1uZXdzLmNzZG4ubmV0yAEB2gEraHR0cDovL25ld3MuY3Nkbi5uZXQvbi8yMDA4MDQwOC8xMTUwMTUuaHRtbIACAakCD9g3kVQogz7IArPelQGoAwHoA9sF6AMW9QMABAAA&amp;num=6&amp;adurl=http://www.freelancerchina.com/%3Freferrer%3DGooglecn&amp;client=ca-pub-3578421812762734");GgKwClickStat("项目","www.FreelancerChina.com","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u9879_u76EE"'>项目</strong></nobr>里，去学习那些源代码(当然，这些代码不能与我的工作有关，也不是我自己写的)。要从自己会使用到的，或者自己感兴趣的程序开始这项工作。我是从 Paint.net 这个网站里开始学习的，而且已经积累了很多关于 .NET 的编程技术。<br />
</font><font face="Arial">读别人的代码可以为你提供更多不同的工作思路，这比你完全凭自己思考得到的工作方式要多。</font></p>
<p><font face="Arial"><strong>3. 写代码。</strong><br />
谨记，要写大量的代码。从根本上来讲，最好的<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u5B66_u4E60_u65B9_u6CD5";KeyGate_ads.ShowGgAds(this,"_u5B66_u4E60_u65B9_u6CD5",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BP20nHPUCSJbsCILm6wPQ_8HiCMT0yT_s0KnyBMCNtwGQvwUQFBgUIM-BhwooFDgAUNeBmvr-_____wFgnaHfgdgFoAHInZD9A7IBDW5ld3MuY3Nkbi5uZXTIAQHaAStodHRwOi8vbmV3cy5jc2RuLm5ldC9uLzIwMDgwNDA4LzExNTAxNS5odG1sgAIBqQIP2DeRVCiDPqgDAegD2wXoAxb1AwAEAAA&amp;num=20&amp;adurl=http://www.yygww.com/&amp;client=ca-pub-3578421812762734");GgKwClickStat("学习方法","www.yygww.com","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u5B66_u4E60_u65B9_u6CD5"'>学习方法</strong></nobr>就是实践。如果不写代码，你根本不能把(某种语言中)内在的东西学习透彻。学习之初，可以从一些技术指南和图书中照搬一些尽量简单的程序。当然，这种照搬是要自己完全手工输入，而不是复制和粘贴，这两种之间的效果差别是很大的。这种方法的主旨就在于，使知识内在化，并思考其用法，而不是盲目照抄。学习过程中，要时常查找新的 API 调用方法，这其实是简单的事情。<br />
</font><font face="Arial">最重要的是，要写一个你自己的程序，不管它是一个简单的游戏，或者是一个参与开源项目的程序，还是一个公为你自己使用的简单插件。用不同的方式来写程序，尽量尝试使用新的技术，新的技巧，新的设计方式。一定要让现在的项目比以往的项目更好。想要成一个优秀的开发者，这一点是核心。</font></p>
<p><font face="Arial"><strong>4. 与其他开发者交流。<br />
</strong>像 Apple，微软，Google 等大公司一样的新闻描述的一样，(与其他开发者交流)可以让你解决一些复杂的问题。虽然这并不能让你感觉到自己已经成一个团队或是社区的成员，但是这种方法可以让你接触到更多不同的想法。<br />
</font><font face="Arial">不同类型的项目要求不同的设计方法，代码技术，开发流程和设计思想。如果你工作在一个小团队里，你不必与太多的人接触，只要在用户群会议中找到一些人(来讨论)即可。如果这样还不行的话，参与到在线论坛中与其他人讨论(这时你需要更努力地寻找高质量的讨论内容)。</font></p>
<p><font face="Arial"><strong>6. 教会别人。<br />
</strong>相对于仅仅读代码之类的工作，教其他人学习可以让你更深入地学习某个技术，这种方法有着非凡的效果。教会别人某个技术，同样也会让你更专注于这种技术，并且可以比别人更深层次地理解它。同样你也会面对一些问题。<br />
</font><font face="Arial"><u>&#8220;如果你不能向一个六岁的儿童解析清楚一个概念，那么其实是你并没有完全理解它。&#8221;Albert Einstein说。<br />
</u></font><font face="Arial">教学场景可以是无穷无尽的：与工作搭档一对一交流，休息碰面，非正式周会，学习茶会，教室，讨论发表会，等等。每周在相同理念开发者之间举办一次30分钟的非正式会议怎么样？每周，让几个人来就他们想要更深入了解话题，向大家传授这些技术知识，并且展开讨论。如果你知道你将要向团队成员们传授正学学习的知识，你是不是更想要了解这项技术的每个细节呢？</font></p>
<p><font face="Arial"><strong>6. 收听网络电台。<br />
</strong>如果你有空闲的时间，可以订阅网络电台节目。我现在最喜欢的编程节目就是 .Net Rocks。这个节目还会做一些视频节目，叫做 dnrTV 。这样会让你即时捕捉到最新最好的技术。一个人是不能学习到所有知识的，而网络电台刚是一个学习了解广泛知识的途径。</font></p>
<p><font face="Arial"><strong>7. 阅读博客。<br />
</strong>博客远远比阅读者要多，但是其中有一些却是极其优秀的。我这里不并不是要推荐博客，因为网络上已经有了足够多的博客。这是与真正在开发你所喜欢和使用的软件的开者联系的好方法。</font></p>
<p><font face="Arial"><strong>8. 学习新的语言。<br />
</strong>即使你已经在 C(++,#) / JAVA 等语言上有很好的造诣，仍然有很多其他可以解决问题的编程语言。学习新的语言，是对你已有思维方式的挑战。这不仅仅是另一种语言，更是对思维的重新架构。的确，所有的语言最后都会被编译成汇编程序，但是这并不意味着<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u9AD8_u7EA7_u8BED_u8A00";KeyGate_ads.ShowGgAds(this,"_u9AD8_u7EA7_u8BED_u8A00",event)' style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; font-weight: normal; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; cursor: hand; color: #0000ff; padding-top: 0px; border-right-width: 0px; text-decoration: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BPPseHPUCSJbsCILm6wPQ_8HiCMKYpzT-2cKVBMCNtwHQ6AwQBxgHIM-BhwooFDgAUPqv95H6_____wFgnaHfgdgFsgENbmV3cy5jc2RuLm5ldMgBAdoBK2h0dHA6Ly9uZXdzLmNzZG4ubmV0L24vMjAwODA0MDgvMTE1MDE1Lmh0bWyAAgGpAg_YN5FUKIM-yAKO6fUDqAMB6APbBegDFvUDAAQAAA&amp;num=7&amp;adurl=http://www.cbdjob.com&amp;client=ca-pub-3578421812762734");GgKwClickStat("高级语言","www.cbdjob.com.cn","afc","2000084115");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u9AD8_u7EA7_u8BED_u8A00"'>高级语言</strong></nobr>毫无价值。</font></p>
<p><font face="Arial"><strong>9. 学习不正确的方式。<br />
</strong>除</font><font face="Arial">了要学习应该怎么做，还要学习不应该怎么做。经常阅读 Dailywtf.com ，学习你并不知道的经验与教训。学习适当的面向对象设计方式，代码写作方式，和必须要写的代码等，是很好的方式，但是如果不细心的话也容易养成不良习惯。学习认识不正确的思路是负责项目开发至关重要的一环。<br />
</font><font face="Arial">维基百科对很多觉的不正确方式有十分透彻的分类。</font></p>
<p><font face="Arial"><strong>10. 要谦虚。</strong></font></p>
<p><font face="Arial">学习，意味着：<br />
<font face="Arial">1、用更好的知识代替不完美的知识；<br />
</font><font face="Arial">2、增长你所不知道的知识；<br />
</font></font><font face="Arial">只有承认自己有所不足，才能有学习的动力。归根到底，就是谦虚，不对吗？如果你开始认为你已经掌握了所有需要的知识，那么你就危险了。真正的学习是如饥似渴地追逐知识并使其内在化，这需要很大的努力。我们都知道这一点，但是要必须时常不断地提醒自己。<br />
<br />
来自：http://news.csdn.net/n/20080408/115015.html</font></p>
 <img src ="http://www.blogjava.net/kissjava/aggbug/192763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-14 14:17 <a href="http://www.blogjava.net/kissjava/archive/2008/04/14/192763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/04/14/192763.html'>http://www.blogjava.net/kissjava/archive/2008/04/14/192763.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Vector、ArrayList和hashtable hashmap的异同【转】</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219031.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219031.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219031.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219031.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219031.html</trackback:ping><description><![CDATA[线性表，链表，哈希表是常用的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。 <br />
<br />
Collection<br />
├List<br />
│├LinkedList<br />
│├ArrayList<br />
│└Vector<br />
│　└Stack<br />
└Set<br />
Map<br />
├Hashtable<br />
├HashMap<br />
└WeakHashMap<br />
<br />
Collection接口<br />
　　Collection是最基本的集合接口，一个Collection代表一组Object，即Collection的元素（Elements）。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类，Java SDK提供的类都是继承自Collection的&#8220;子接口&#8221;如List和Set。<br />
　　所有实现Collection接口的类都必须提供两个标准的构造函数：无参数的构造函数用于创建一个空的Collection，有一个Collection参数的构造函数用于创建一个新的Collection，这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。<br />
　　如何遍历Collection中的每一个元素？不论Collection的实际类型如何，它都支持一个iterator()的方法，该方法返回一个迭代子，使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下：<br />
　　　　Iterator it = collection.iterator(); // 获得一个迭代子<br />
　　　　while(it.hasNext()) {<br />
　　　　　　Object obj = it.next(); // 得到下一个元素<br />
　　　　}<br />
　　由Collection接口派生的两个接口是List和Set。<br />
<br />
List接口<br />
　　List是有序的Collection，使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引（元素在List中的位置，类似于数组下标）来访问List中的元素，这类似于Java的数组。<br />
和下面要提到的Set不同，List允许有相同的元素。<br />
　　除了具有Collection接口必备的iterator()方法外，List还提供一个listIterator()方法，返回一个ListIterator接口，和标准的Iterator接口相比，ListIterator多了一些add()之类的方法，允许添加，删除，设定元素，还能向前或向后遍历。<br />
　　实现List接口的常用类有LinkedList，ArrayList，Vector和Stack。<br />
<br />
LinkedList类<br />
　　LinkedList实现了List接口，允许null元素。此外LinkedList提供额外的get，remove，insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈（stack），队列（queue）或双向队列（deque）。<br />
　　注意LinkedList没有同步方法。如果多个线程同时访问一个List，则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List：<br />
　　　　List list = Collections.synchronizedList(new LinkedList(...));<br />
<br />
ArrayList类<br />
　　ArrayList实现了可变大小的数组。它允许所有元素，包括null。ArrayList没有同步。<br />
size，isEmpty，get，set方法运行时间为常数。但是add方法开销为分摊的常数，添加n个元素需要O(n)的时间。其他的方法运行时间为线性。<br />
　　每个ArrayList实例都有一个容量（Capacity），即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加，但是增长算法并没有定义。当需要插入大量元素时，在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。<br />
　　和LinkedList一样，ArrayList也是非同步的（unsynchronized）。<br />
<br />
Vector类<br />
　　Vector非常类似ArrayList，但是Vector是同步的。由Vector创建的Iterator，虽然和ArrayList创建的Iterator是同一接口，但是，因为Vector是同步的，当一个Iterator被创建而且正在被使用，另一个线程改变了Vector的状态（例如，添加或删除了一些元素），这时调用Iterator的方法时将抛出ConcurrentModificationException，因此必须捕获该异常。<br />
<br />
Stack 类<br />
　　Stack继承自Vector，实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法，还有peek方法得到栈顶的元素，empty方法测试堆栈是否为空，search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。<br />
<br />
Set接口<br />
　　Set是一种不包含重复的元素的Collection，即任意的两个元素e1和e2都有e1.equals(e2)=false，Set最多有一个null元素。<br />
　　很明显，Set的构造函数有一个约束条件，传入的Collection参数不能包含重复的元素。<br />
　　请注意：必须小心操作可变对象（Mutable Object）。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true将导致一些问题。<br />
<br />
Map接口<br />
　　请注意，Map没有继承Collection接口，Map提供key到value的映射。一个Map中不能包含相同的key，每个key只能映射一个value。Map接口提供3种集合的视图，Map的内容可以被当作一组key集合，一组value集合，或者一组key-value映射。<br />
<br />
Hashtable类<br />
　　Hashtable继承Map接口，实现一个key-value映射的哈希表。任何非空（non-null）的对象都可作为key或者value。<br />
　　添加数据使用put(key, value)，取出数据使用get(key)，这两个基本操作的时间开销为常数。<br />
Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大，这会影响像get和put这样的操作。<br />
使用Hashtable的简单示例如下，将1，2，3放到Hashtable中，他们的key分别是&#8221;one&#8221;，&#8221;two&#8221;，&#8221;three&#8221;：<br />
　　　　Hashtable numbers = new Hashtable();<br />
　　　　numbers.put(&#8220;one&#8221;, new Integer(1));<br />
　　　　numbers.put(&#8220;two&#8221;, new Integer(2));<br />
　　　　numbers.put(&#8220;three&#8221;, new Integer(3));<br />
　　要取出一个数，比如2，用相应的key：<br />
　　　　Integer n = (Integer)numbers.get(&#8220;two&#8221;);<br />
　　　　System.out.println(&#8220;two = &#8221; + n);<br />
　　由于作为key的对象将通过计算其散列函数来确定与之对应的value的位置，因此任何作为key的对象都必须实现hashCode和equals方法。hashCode和equals方法继承自根类Object，如果你用自定义的类当作key的话，要相当小心，按照散列函数的定义，如果两个对象相同，即obj1.equals(obj2)=true，则它们的hashCode必须相同，但如果两个对象不同，则它们的hashCode不一定不同，如果两个不同对象的hashCode相同，这种现象称为冲突，冲突会导致操作哈希表的时间开销增大，所以尽量定义好的hashCode()方法，能加快哈希表的操作。<br />
　　如果相同的对象有不同的hashCode，对哈希表的操作会出现意想不到的结果（期待的get方法返回null），要避免这种问题，只需要牢记一条：要同时复写equals方法和hashCode方法，而不要只写其中一个。<br />
　　Hashtable是同步的。<br />
<br />
HashMap类<br />
　　HashMap和Hashtable类似，不同之处在于HashMap是非同步的，并且允许null，即null value和null key。，但是将HashMap视为Collection时（values()方法可返回Collection），其迭代子操作时间开销和HashMap的容量成比例。因此，如果迭代操作的性能相当重要的话，不要将HashMap的初始化容量设得过高，或者load factor过低。<br />
<br />
WeakHashMap类<br />
　　WeakHashMap是一种改进的HashMap，它对key实行&#8220;弱引用&#8221;，如果一个key不再被外部所引用，那么该key可以被GC回收。<br />
<br />
总结<br />
　　如果涉及到堆栈，队列等操作，应该考虑用List，对于需要快速插入，删除元素，应该使用LinkedList，如果需要快速随机访问元素，应该使用ArrayList。<br />
　　如果程序在单线程环境中，或者访问仅仅在一个线程中进行，考虑非同步的类，其效率较高，如果多个线程可能同时操作一个类，应该使用同步的类。<br />
　　要特别注意对哈希表的操作，作为key的对象要正确复写equals和hashCode方法。<br />
　　尽量返回接口而非实际的类型，如返回List而非ArrayList，这样如果以后需要将ArrayList换成LinkedList时，客户端代码不用改变。这就是针对抽象编程。<br />
<br />
同步性<br />
Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的。而ArrayList则是异步的，因此ArrayList中的对象并不是线程安全的。因为同步的要求会影响执行的效率，所以如果你不需要线程安全的集合那么使用ArrayList是一个很好的选择，这样可以避免由于同步带来的不必要的性能开销。<br />
数据增长<br />
从内部实现机制来讲ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两种类型中增加元素的时候，如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度，Vector缺省情况下自动增长原来一倍的数组长度，ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势，因为你可以通过设置集合的初始化大小来避免不必要的资源开销。<br />
使用模式<br />
在ArrayList和Vector中，从一个指定的位置（通过索引）查找数据或是在集合的末尾增加、移除一个元素所花费的时间是一样的，这个时间我们用O(1)表示。但是，如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长：O(n-i)，其中n代表集合中元素的个数，i代表元素增加或移除元素的索引位置。为什么会这样呢？以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行位移的操作。这一切意味着什么呢？<br />
这意味着，你只是查找特定位置的元素或只在集合的末端增加、移除元素，那么使用Vector或ArrayList都可以。如果是其他操作，你最好选择其他的集合操作类。比如，LinkList集合类在增加或移除集合中任何位置的元素所花费的时间都是一样的?O(1)，但它在索引一个元素的使用缺比较慢－O(i),其中i是索引的位置.使用ArrayList也很容易，因为你可以简单的使用索引来代替创建iterator对象的操作。LinkList也会为每个插入的元素创建对象，所有你要明白它也会带来额外的开销。<br />
<br />
#################################################<br />
Hashtable和<span class="hilite2">HashMap</span> <br />
Hashtable和<span class="hilite2">HashMap</span>类有三个重要的不同之处。<br />
第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的，<span class="hilite2">HashMap</span>是Java 1.2引进的Map接口的一个实现。 <br />
第二个也许最重要的不同是Hashtable的方法是同步的，而<span class="hilite2">HashMap</span>的方法不是。这就意味着，虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable，但你必须同样地为一个<span class="hilite2">HashMap</span>提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法，它创建一个线程安全的Map对象，并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的<span class="hilite2">HashMap</span>。这么做的结果就是当你不需要同步时，你不能切断Hashtable中的同步（比如在一个单线程的应用程序中），而且同步增加了很多处理费用。 <br />
第三点不同是，只有<span class="hilite2">HashMap</span>可以让你将空值作为一个表的条目的key或value。<span class="hilite2">HashMap</span>中只有一条记录可以是一个空的key，但任意数量的条目可以是空的value。这就是说，如果在表中没有发现搜索键，或者如果发现了搜索键，但它是一个空的值，那么get()将返回null。如果有必要，用containKey()方法来区别这两种情况。 <br />
一些资料建议，当需要同步时，用Hashtable，反之用<span class="hilite2">HashMap</span>。但是，因为在需要时，<span class="hilite2">HashMap</span>可以被同步，<span class="hilite2">HashMap</span>的功能比Hashtable的功能更多，而且它不是基于一个陈旧的类的，所以有人认为，在各种情况下，<span class="hilite2">HashMap</span>都优先于Hashtable<br />
<br />
以上摘自：<br />
http://www.javaedu.com/bbs/viewthread?thread=75<br />
<a href="http://zztu.javaeye.com/blog/173964">http://zztu.javaeye.com/blog/173964</a><br />
<img src ="http://www.blogjava.net/kissjava/aggbug/194063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-18 16:47 <a href="http://www.blogjava.net/kissjava/archive/2008/04/18/194063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/04/18/194063.html'>http://www.blogjava.net/kissjava/archive/2008/04/18/194063.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]自定义Button的使用效果为何不一样？</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219030.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219030.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219030.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219030.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用了swing有一段时间了。最近在看它的源码，所以就想着也写一些自己喜欢UI，首先就从简单的button开始，不料想就碰到问题了。问题是这样的，写它的测试用例的时候，用了两种方法去测试：一是：KJButton&nbsp;btn1&nbsp;=&nbsp;new&nbsp;KJButton("button&nbsp;1");//JButton的子类二是：JButton&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/kissjava/archive/2008/05/11/199818.html'>阅读全文</a><img src ="http://www.blogjava.net/kissjava/aggbug/199818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-05-11 13:44 <a href="http://www.blogjava.net/kissjava/archive/2008/05/11/199818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/05/11/199818.html'>http://www.blogjava.net/kissjava/archive/2008/05/11/199818.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]mysql存储过程学习及java调用存储过程</title><link>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219029.html</link><dc:creator>朱</dc:creator><author>朱</author><pubDate>Thu, 31 Jul 2008 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219029.html</guid><wfw:comment>http://www.blogjava.net/xiaohuanbaby/comments/219029.html</wfw:comment><comments>http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaohuanbaby/comments/commentRss/219029.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaohuanbaby/services/trackbacks/219029.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 工作中一直都是用swing，很少接触数据库，最近事少就帮着把公司服务器用csv存储用户资料信息，转移到mysql中去存储，才得以学习下mysql的存储过程&nbsp;&nbsp;<a href='http://www.blogjava.net/kissjava/archive/2008/07/16/215177.html'>阅读全文</a><img src ="http://www.blogjava.net/kissjava/aggbug/215177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-07-16 12:20 <a href="http://www.blogjava.net/kissjava/archive/2008/07/16/215177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/kissjava/archive/2008/07/16/215177.html'>http://www.blogjava.net/kissjava/archive/2008/07/16/215177.html</a><img src ="http://www.blogjava.net/xiaohuanbaby/aggbug/219029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaohuanbaby/" target="_blank">朱</a> 2008-07-31 15:12 <a href="http://www.blogjava.net/xiaohuanbaby/archive/2008/07/31/219029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>