﻿<?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/zh-qi/</link><description>一切从头开始</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 10:46:34 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 10:46:34 GMT</pubDate><ttl>60</ttl><item><title>C指针</title><link>http://www.blogjava.net/zh-qi/archive/2009/11/04/301097.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Wed, 04 Nov 2009 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/11/04/301097.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/301097.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/11/04/301097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/301097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/301097.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 《彻底搞定C指针》第一篇&nbsp;变量的内存实质要理解C指针，我认为一定要理解C中&#8220;变量&#8221;的存储实质，所以我就从&#8220;变量&#8221;这个东西开始讲起吧！先来理解理解内存空间吧！请看下图：内存地址&#8594;&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10&nbsp;11&nbsp;12&nbsp;13---...&nbsp;&nbsp;<a href='http://www.blogjava.net/zh-qi/archive/2009/11/04/301097.html'>阅读全文</a><img src ="http://www.blogjava.net/zh-qi/aggbug/301097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-11-04 16:50 <a href="http://www.blogjava.net/zh-qi/archive/2009/11/04/301097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何制作 MyEclipse 5.5/6.0 绿色版</title><link>http://www.blogjava.net/zh-qi/archive/2009/09/08/294246.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Tue, 08 Sep 2009 01:13:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/09/08/294246.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/294246.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/09/08/294246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/294246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/294246.html</trackback:ping><description><![CDATA[<p>另一种解决方法是: <a class="entrylistItemTitle" id="CategoryEntryList1_EntryStoryList_Entries_ctl02_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2006/11/27/83884.html"><strong><font color="#1a8bc8">Portable Java IDE 2.1 打包下载(12.7.2006更新)</font></strong></a>&nbsp;&nbsp;&nbsp;<br />
<br />
我们知道 Eclipse 工具的最大缺点, 就是安装插件极其费劲, 第一是需要手工复制安装, 第二呢如果插件版本和 Eclipse 版本不配套, 根本就用不了, 第三呢如果插件A还依赖于插件B(见 Eclipse 官方网站众多插件的下载和安装, 例如 Visual Editor), 你还得去再把插件B下载一下. 所以网上出现了众多 Eclipse 插件的管理方案, 例如 Link 目录安装啊, EasyEclipse 啊(<a title="EasyEclipse Free, open source, easy-to-use Eclipse distributions" href="http://easyeclipse.org/">EasyEclipse Free, open source, easy-to-use Eclipse distributions</a>), EasyEclipse 这个是用 NSIS 来做单个插件的安装和卸载的.&nbsp; 商业的解决方案, 集成了各种各样的插件的, 首推流行的 MyEclipse. 但是随着 MyEclipse 安装包的肥大, 安装一次也是相当的耗时, 尤其最后一步执行 ANT 脚本用 unpack200 解压缩的过程, 如果电脑次一点的话, 轻则半天没反映, 重则进程挂掉, 重新安装. 虽然对 Eclipse 本身我没啥说的, 但是 Eclipse 装插件的确是对初学者来说是个折磨.&nbsp; 废话少说.首先呢, 我们需要去 MyEclipse 的 All In&nbsp;ONE 版本, 这样做绿色版好做一些. 如果你不知道如何下载和安装, 请参考本站视频: <a href="http://www.blogjava.net/beansoft/archive/2007/09/24/147651.html">MyEclipse 6 实战开发讲解视频入门 0: 下载 安装 运行 HelloWorld</a>&nbsp;</p>
<p><a href="http://www.blogjava.net/beansoft/archive/2007/08/12/136164.html">MyEclipse 5.5 + Tomcat 开发视频: 下载,安装,配置,开发并运行Web项目</a> </p>
<p>安装完毕后得到一个完整的目录, 那么我们要做的就是修改一个配置文件, 创建一个启动 BAT 文件后就可以实现 MyEclipse 6 的免安装运行了, 换句话说我们可以放在移动硬盘上启动(当然注册码自己想办法搞定). </p>
<p>首先看安装后的目录: </p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="210" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse5.56.0_7DCB/image_1.png" width="220" border="0" /> </p>
<p>我们先在这个目录下新建一个文件: MyEclipse 6.0.bat , 文件内容如下: </p>
<blockquote>
<p>start eclipse\eclipse.exe -vm jre\bin\javaw.exe</p>
</blockquote>
<p>接下来只需要改一个Eclipse插件的配置文件就可以实现绿色版运行了, 我们用记事本等文本编辑器打开下面的这个文件 com.genuitec.eclipse.MyEclipse.link: </p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="66" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse5.56.0_7DCB/image_3.png" width="284" border="0" /> </p>
<p>文件原始内容如下所示: </p>
<p>path=d:\\Java\\MyEclipse6.0\\myeclipse </p>
<p>这个是指定 myeclipse 这个插件目录的位置的, 我们把它改成相对路径即可:</p>
<p>path=..\\myeclipse</p>
<p>OK, 完工了, 把MyEclipse 6.0 整个目录复制到你的移动硬盘上或者刻成光盘. 以后当你的系统重做后或者拿着移动硬盘到了一个根本没装过 Java 工具的电脑上后, 双击批处理文件即可立即启动 MyEclipse 来工作! 复制到硬盘上的任何目录(注意路径建议不要带空格或者汉字), 也可以同样启动, 免去我们安装和配置之苦.</p>
<img src ="http://www.blogjava.net/zh-qi/aggbug/294246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-09-08 09:13 <a href="http://www.blogjava.net/zh-qi/archive/2009/09/08/294246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java多线程编程总结</title><link>http://www.blogjava.net/zh-qi/archive/2009/05/18/271351.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Mon, 18 May 2009 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/05/18/271351.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/271351.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/05/18/271351.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/271351.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/271351.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">一、认识多任务、多进程、单线程、多线程<br />
要认识多线程就要从操作系统的原理说起。<br />
&nbsp;<br />
以前古老的DOS操作系统（V&nbsp;</span><span style="color: #000000;">6.22</span><span style="color: #000000;">）是单任务的，还没有线程的概念，系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率，采用批处理来批量执行任务。<br />
&nbsp;<br />
现在的操作系统都是多任务操作系统，每个运行的任务就是操作系统所做的一件事情，比如你在听歌的同时还在用MSN和好友聊天。听歌和聊天就是两个任务，这个两个任务是&#8220;同时&#8221;进行的。一个任务一般对应一个进程，也可能包含好几个进程。比如运行的MSN就对应一个MSN的进程，如果你用的是&nbsp;windows系统，你就可以在任务管理器中看到操作系统正在运行的进程信息。<br />
&nbsp;<br />
一般来说，当运行一个应用程序的时候，就启动了一个进程，当然有些会启动多个进程。启动进程的时候，操作系统会为进程分配资源，其中最主要的资源是内存空间，因为程序是在内存中运行的。在进程中，有些程序流程块是可以乱序执行的，并且这个代码块可以同时被多次执行。实际上，这样的代码块就是线程体。线程是进程中乱序执行的代码流程。当多个线程同时运行的时候，这样的执行模式成为并发执行。<br />
&nbsp;<br />
多线程的目的是为了最大限度的利用CPU资源。<br />
&nbsp;<br />
Java编写程序都运行在在Java虚拟机（JVM）中，在JVM的内部，程序的多任务是通过线程来实现的。每用java命令启动一个java&nbsp;应用程序，就会启动一个JVM进程。在同一个JVM进程中，有且只有一个进程，就是它自己。在这个JVM环境中，所有程序代码的运行都是以线程来运行。<br />
&nbsp;<br />
一般常见的Java应用程序都是单线程的。比如，用java命令运行一个最简单的HelloWorld的Java应用程序时，就启动了一个&nbsp;JVM进程，JVM找到程序程序的入口点main()，然后运行main()方法，这样就产生了一个线程，这个线程称之为主线程。当main方法结束后，主线程运行完成。JVM进程也随即退出&nbsp;。<br />
&nbsp;<br />
对于一个进程中的多个线程来说，多个线程共享进程的内存块，当有新的线程产生的时候，操作系统不分配新的内存，而是让新线程共享原有的进程块的内存。因此，线程间的通信很容易，速度也很快。不同的进程因为处于不同的内存块，因此进程之间的通信相对困难。<br />
&nbsp;<br />
实际上，操作的系统的多进程实现了多任务并发执行，程序的多线程实现了进程的并发执行。多任务、多进程、多线程的前提都是要求操作系统提供多任务、多进程、多线程的支持。<br />
&nbsp;<br />
在Java程序中，JVM负责线程的调度。线程调度是值按照特定的机制为多个线程分配CPU的使用权。<br />
调度的模式有两种：分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权，并平均分配每个线程占用CPU的时间；抢占式调度是根据线程的优先级别来获取CPU的使用权。JVM的线程调度模式采用了抢占式模式。<br />
&nbsp;<br />
所谓的&#8220;并发执行&#8221;、&#8220;同时&#8221;其实都不是真正意义上的&#8220;同时&#8221;。众所周知，CPU都有个时钟频率，表示每秒中能执行cpu指令的次数。在每个时钟周期内，CPU实际上只能去执行一条（也有可能多条）指令。操作系统将进程线程进行管理，轮流（没有固定的顺序）分配每个进程很短的一段是时间（不一定是均分），然后在每个线程内部，程序代码自己处理该进程内部线程的时间分配，多个线程之间相互的切换去执行，这个切换时间也是非常短的。因此多任务、多进程、多线程都是操作系统给人的一种宏观感受，从微观角度看，程序的运行是异步执行的。<br />
&nbsp;<br />
用一句话做总结：虽然操作系统是多线程的，但CPU每一时刻只能做一件事，和人的大脑是一样的，呵呵。<br />
&nbsp;<br />
&nbsp;<br />
二、Java与多线程<br />
&nbsp;<br />
Java语言的多线程需要操作系统的支持。<br />
&nbsp;<br />
Java&nbsp;虚拟机允许应用程序并发地运行多个执行线程。Java语言提供了多线程编程的扩展点，并给出了功能强大的线程控制API。<br />
&nbsp;<br />
在Java中，多线程的实现有两种方式：<br />
扩展java.lang.Thread类<br />
实现java.lang.Runnable接口<br />
&nbsp;<br />
&nbsp;<br />
每个线程都有一个优先级，高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新&nbsp;Thread&nbsp;对象时，该新线程的初始优先级被设定为创建线程的优先级，并且当且仅当创建线程是守护线程时，新线程才是守护程序。<br />
&nbsp;<br />
当&nbsp;Java&nbsp;虚拟机启动时，通常都会有单个非守护线程（它通常会调用某个指定类的&nbsp;main&nbsp;方法）。Java&nbsp;虚拟机会继续执行线程，直到下列任一情况出现时为止：<br />
&nbsp;<br />
调用了&nbsp;Runtime&nbsp;类的&nbsp;exit&nbsp;方法，并且安全管理器允许退出操作发生。<br />
非守护线程的所有线程都已停止运行，无论是通过从对&nbsp;run&nbsp;方法的调用中返回，还是通过抛出一个传播到&nbsp;run&nbsp;方法之外的异常。<br />
&nbsp;<br />
&nbsp;<br />
三、扩展java.lang.Thread类<br />
&nbsp;<br />
</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;*&nbsp;File&nbsp;Name:&nbsp;&nbsp;&nbsp;TestMitiThread.java<br />
&nbsp;*&nbsp;Created&nbsp;by:&nbsp;&nbsp;IntelliJ&nbsp;IDEA.<br />
&nbsp;*&nbsp;Copyright:&nbsp;&nbsp;&nbsp;Copyright&nbsp;(c)&nbsp;2003-2006<br />
&nbsp;*&nbsp;Company:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lavasoft(&nbsp;[url]</span><span style="color: #008000; text-decoration: underline;">http://lavasoft.blog.51cto.com/</span><span style="color: #008000;">[/url])<br />
&nbsp;*&nbsp;Author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leizhimin<br />
&nbsp;*&nbsp;Modifier:&nbsp;&nbsp;&nbsp;&nbsp;leizhimin<br />
&nbsp;*&nbsp;Date&nbsp;Time:&nbsp;&nbsp;&nbsp;2007-5-17&nbsp;10:03:12<br />
&nbsp;*&nbsp;Readme:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过扩展Thread类实现多线程<br />
&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;TestMitiThread&nbsp;{<br />
&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;rags)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行开始!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MitiSay(</span><span style="color: #000000;">"</span><span style="color: #000000;">A</span><span style="color: #000000;">"</span><span style="color: #000000;">).start();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MitiSay(</span><span style="color: #000000;">"</span><span style="color: #000000;">B</span><span style="color: #000000;">"</span><span style="color: #000000;">).start();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行结束!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
&nbsp;<br />
</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MitiSay&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Thread&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;MitiSay(String&nbsp;threadName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">(threadName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;run()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行开始!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;getName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep((</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)&nbsp;Math.random()&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行结束!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
&nbsp;<br />
运行结果：<br />
&nbsp;<br />
main&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
main&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
A&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;A<br />
B&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">7</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">8</span><span style="color: #000000;">&nbsp;A<br />
</span><span style="color: #000000;">9</span><span style="color: #000000;">&nbsp;A<br />
A&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">7</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">8</span><span style="color: #000000;">&nbsp;B<br />
</span><span style="color: #000000;">9</span><span style="color: #000000;">&nbsp;B<br />
B&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
&nbsp;<br />
说明：<br />
程序启动运行main时候，java虚拟机启动一个进程，主线程main在main()调用时候被创建。随着调用MitiSay的两个对象的start方法，另外两个线程也启动了，这样，整个应用就在多线程下运行。<br />
&nbsp;<br />
在一个方法中调用Thread.currentThread().getName()方法，可以获取当前线程的名字。在mian方法中调用该方法，获取的是主线程的名字。<br />
&nbsp;<br />
注意：start()方法的调用后并不是立即执行多线程代码，而是使得该线程变为可运行态（Runnable），什么时候运行是由操作系统决定的。<br />
从程序运行的结果可以发现，多线程程序是乱序执行。因此，只有乱序执行的代码才有必要设计为多线程。<br />
Thread.sleep()方法调用目的是不让当前线程独自霸占该进程所获取的CPU资源，以留出一定时间给其他线程执行的机会。<br />
实际上所有的多线程代码执行顺序都是不确定的，每次执行的结果都是随机的。<br />
&nbsp;<br />
&nbsp;<br />
四、实现java.lang.Runnable接口<br />
&nbsp;<br />
</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;*&nbsp;通过实现&nbsp;Runnable&nbsp;接口实现多线程<br />
&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;TestMitiThread1&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Runnable&nbsp;{<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行开始!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMitiThread1&nbsp;test&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TestMitiThread1();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;thread1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Thread(test);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;thread2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Thread(test);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thread1.start();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thread2.start();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行结束!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;run()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行开始!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;Thread.currentThread().getName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep((</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)&nbsp;Math.random()&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;线程运行结束!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
&nbsp;<br />
运行结果：<br />
&nbsp;<br />
main&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
main&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;线程运行开始</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">7</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">8</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">6</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">9</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">7</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">8</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">9</span><span style="color: #000000;">&nbsp;Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
Thread</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;线程运行结束</span><span style="color: #000000;">!</span><span style="color: #000000;"><br />
&nbsp;<br />
说明：<br />
TestMitiThread1类通过实现Runnable接口，使得该类有了多线程类的特征。run（）方法是多线程程序的一个约定。所有的多线程代码都在run方法里面。Thread类实际上也是实现了Runnable接口的类。<br />
在启动的多线程的时候，需要先通过Thread类的构造方法Thread(Runnable&nbsp;target)&nbsp;构造出对象，然后调用Thread对象的start()方法来运行多线程代码。<br />
实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。因此，不管是扩展Thread类还是实现Runnable接口来实现多线程，最终还是通过Thread的对象的API来控制线程的，熟悉Thread类的API是进行多线程编程的基础。<br />
&nbsp;<br />
五、读解Thread类API<br />
&nbsp;<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;MAX_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程可以具有的最高优先级。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;MIN_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程可以具有的最低优先级。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;NORM_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分配给线程的默认优先级。<br />
&nbsp;<br />
构造方法摘要<br />
Thread(Runnable&nbsp;target)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分配新的&nbsp;Thread&nbsp;对象。<br />
Thread(String&nbsp;name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分配新的&nbsp;Thread&nbsp;对象。<br />
&nbsp;<br />
&nbsp;<br />
方法摘要<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Thread&nbsp;currentThread()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回对当前正在执行的线程对象的引用。<br />
&nbsp;ClassLoader&nbsp;getContextClassLoader()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程的上下文&nbsp;ClassLoader。<br />
&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;getId()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程的标识符。<br />
&nbsp;String&nbsp;getName()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程的名称。<br />
&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;getPriority()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回线程的优先级。<br />
&nbsp;Thread.State&nbsp;getState()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程的状态。<br />
&nbsp;ThreadGroup&nbsp;getThreadGroup()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程所属的线程组。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;holdsLock(Object&nbsp;obj)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当且仅当当前线程在指定的对象上保持监视器锁时，才返回&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;interrupt()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中断线程。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;interrupted()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试当前线程是否已经中断。<br />
&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;isAlive()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试线程是否处于活动状态。<br />
&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;isDaemon()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试该线程是否为守护线程。<br />
&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;isInterrupted()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试线程是否已经中断。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;join()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等待该线程终止。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;join(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;millis)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等待该线程终止的时间最长为&nbsp;millis&nbsp;毫秒。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;join(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;millis,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;nanos)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等待该线程终止的时间最长为&nbsp;millis&nbsp;毫秒&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;nanos&nbsp;纳秒。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;resume()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已过时。&nbsp;该方法只与&nbsp;suspend()&nbsp;一起使用，但&nbsp;suspend()&nbsp;已经遭到反对，因为它具有死锁倾向。有关更多信息，请参阅为何&nbsp;Thread.stop、Thread.suspend&nbsp;和&nbsp;Thread.resume&nbsp;遭到反对？。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;run()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果该线程是使用独立的&nbsp;Runnable&nbsp;运行对象构造的，则调用该&nbsp;Runnable&nbsp;对象的&nbsp;run&nbsp;方法；否则，该方法不执行任何操作并返回。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setContextClassLoader(ClassLoader&nbsp;cl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置该线程的上下文&nbsp;ClassLoader。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setDaemon(</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;on)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将该线程标记为守护线程或用户线程。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler&nbsp;eh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置当线程由于未捕获到异常而突然终止，并且没有为该线程定义其他处理程序时所调用的默认处理程序。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setName(String&nbsp;name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;改变线程名称，使之与参数&nbsp;name&nbsp;相同。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setPriority(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;newPriority)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;更改线程的优先级。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler&nbsp;eh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置该线程由于未捕获到异常而突然终止时调用的处理程序。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;sleep(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;millis)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在指定的毫秒数内让当前正在执行的线程休眠（暂停执行）。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;sleep(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;millis,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;nanos)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠（暂停执行）。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;start()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使该线程开始执行；Java&nbsp;虚拟机调用该线程的&nbsp;run&nbsp;方法。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;stop()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已过时。&nbsp;该方法具有固有的不安全性。用&nbsp;Thread.stop&nbsp;来终止线程将释放它已经锁定的所有监视器（作为沿堆栈向上传播的未检查&nbsp;ThreadDeath&nbsp;异常的一个自然后果）。如果以前受这些监视器保护的任何对象都处于一种不一致的状态，则损坏的对象将对其他线程可见，这有可能导致任意的行为。stop&nbsp;的许多使用都应由只修改某些变量以指示目标线程应该停止运行的代码来取代。目标线程应定期检查该变量，并且如果该变量指示它要停止运行，则从其运行方法依次返回。如果目标线程等待很长时间（例如基于一个条件变量），则应使用&nbsp;interrupt&nbsp;方法来中断该等待。有关更多信息，请参阅《为何不赞成使用&nbsp;Thread.stop、Thread.suspend&nbsp;和&nbsp;Thread.resume？》。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;stop(Throwable&nbsp;obj)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已过时。&nbsp;该方法具有固有的不安全性。请参阅&nbsp;stop()&nbsp;以获得详细信息。该方法的附加危险是它可用于生成目标线程未准备处理的异常（包括若没有该方法该线程不太可能抛出的已检查的异常）。有关更多信息，请参阅为何&nbsp;Thread.stop、Thread.suspend&nbsp;和&nbsp;Thread.resume&nbsp;遭到反对？。<br />
&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;suspend()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已过时。该方法已经遭到反对，因为它具有固有的死锁倾向。如果目标线程挂起时在保护关键系统资源的监视器上保持有锁，则在目标线程重新开始以前任何线程都不能访问该资源。如果重新开始目标线程的线程想在调用&nbsp;resume&nbsp;之前锁定该监视器，则会发生死锁。这类死锁通常会证明自己是&#8220;冻结&#8221;的进程。有关更多信息，请参阅为何&nbsp;Thread.stop、Thread.suspend&nbsp;和&nbsp;Thread.resume&nbsp;遭到反对？。<br />
&nbsp;String&nbsp;toString()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回该线程的字符串表示形式，包括线程名称、优先级和线程组。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;yield()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂停当前正在执行的线程对象，并执行其他线程。<br />
&nbsp;<br />
&nbsp;<br />
六、线程的状态转换图<br />
&nbsp;<br />
线程在一定条件下，状态会发生变化。线程变化的状态转换图如下：<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/zh-qi/d.jpg" width="612" height="383" /><br />
&nbsp;<br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">、新建状态（New）：新创建了一个线程对象。<br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">、就绪状态（Runnable）：线程对象创建后，其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中，变得可运行，等待获取CPU的使用权。<br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">、运行状态（Running）：就绪状态的线程获取了CPU，执行程序代码。<br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">、阻塞状态（Blocked）：阻塞状态是线程因为某种原因放弃CPU使用权，暂时停止运行。直到线程进入就绪状态，才有机会转到运行状态。阻塞的情况分三种：<br />
（一）、等待阻塞：运行的线程执行wait()方法，JVM会把该线程放入等待池中。<br />
（二）、同步阻塞：运行的线程在获取对象的同步锁时，若该同步锁被别的线程占用，则JVM会把该线程放入锁池中。<br />
（三）、其他阻塞：运行的线程执行sleep()或join()方法，或者发出了I</span><span style="color: #000000;">/</span><span style="color: #000000;">O请求时，JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I</span><span style="color: #000000;">/</span><span style="color: #000000;">O处理完毕时，线程重新转入就绪状态。<br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">、死亡状态（Dead）：线程执行完了或者因异常退出了run()方法，该线程结束生命周期。<br />
&nbsp;<br />
&nbsp;<br />
七、线程的调度<br />
</span><span style="color: #000000;">1</span><span style="color: #000000;">、调整线程优先级：Java线程有优先级，优先级高的线程会获得较多的运行机会。<br />
&nbsp;<br />
Java线程的优先级用整数表示，取值范围是1</span><span style="color: #000000;">~</span><span style="color: #000000;">10</span><span style="color: #000000;">，Thread类有以下三个静态常量：<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;MAX_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程可以具有的最高优先级，取值为10。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;MIN_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;线程可以具有的最低优先级，取值为1。<br />
</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;NORM_PRIORITY<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分配给线程的默认优先级，取值为5。<br />
&nbsp;<br />
Thread类的setPriority()和getPriority()方法分别用来设置和获取线程的优先级。<br />
&nbsp;<br />
每个线程都有默认的优先级。主线程的默认优先级为Thread.NORM_PRIORITY。<br />
线程的优先级有继承关系，比如A线程中创建了B线程，那么B将和A具有相同的优先级。<br />
JVM提供了10个线程优先级，但与常见的操作系统都不能很好的映射。如果希望程序能移植到各个操作系统中，应该仅仅使用Thread类有以下三个静态常量作为优先级，这样能保证同样的优先级采用了同样的调度方式。<br />
&nbsp;<br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">、线程睡眠：Thread.sleep(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;millis)方法，使线程转到阻塞状态。millis参数设定睡眠的时间，以毫秒为单位。当睡眠结束后，就转为就绪（Runnable）状态。sleep()平台移植性好。<br />
&nbsp;<br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">、线程等待：Object类中的wait()方法，导致当前的线程等待，直到其他线程调用此对象的&nbsp;notify()&nbsp;方法或&nbsp;notifyAll()&nbsp;唤醒方法。这个两个唤醒方法也是Object类中的方法，行为等价于调用&nbsp;wait(</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;一样。<br />
&nbsp;<br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">、线程让步：Thread.yield()&nbsp;方法，暂停当前正在执行的线程对象，把执行机会让给相同或者更高优先级的线程。<br />
&nbsp;<br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">、线程加入：join()方法，等待其他线程终止。在当前线程中调用另一个线程的join()方法，则当前线程转入阻塞状态，直到另一个进程运行结束，当前线程再由阻塞转为就绪状态。<br />
&nbsp;<br />
</span><span style="color: #000000;">6</span><span style="color: #000000;">、线程唤醒：Object类中的notify()方法，唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待，则会选择唤醒其中一个线程。选择是任意性的，并在对实现做出决定时发生。线程通过调用其中一个&nbsp;wait&nbsp;方法，在对象的监视器上等待。直到当前的线程放弃此对象上的锁定，才能继续执行被唤醒的线程。被唤醒的线程将以常规方式与在该对象上主动同步的其他所有线程进行竞争；例如，唤醒的线程在作为锁定此对象的下一个线程方面没有可靠的特权或劣势。类似的方法还有一个notifyAll()，唤醒在此对象监视器上等待的所有线程。<br />
&nbsp;<br />
注意：Thread中suspend()和resume()两个方法在JDK1.5中已经废除，不再介绍。因为有死锁倾向。<br />
&nbsp;<br />
</span><span style="color: #000000;">7</span><span style="color: #000000;">、常见线程名词解释<br />
主线程：JVM调用程序mian()所产生的线程。<br />
当前线程：这个是容易混淆的概念。一般指通过Thread.currentThread()来获取的进程。<br />
后台线程：指为其他线程提供服务的线程，也称为守护线程。JVM的垃圾回收线程就是一个后台线程。<br />
前台线程：是指接受后台线程服务的线程，其实前台后台线程是联系在一起，就像傀儡和幕后操纵者一样的关系。傀儡是前台线程、幕后操纵者是后台线程。由前台线程创建的线程默认也是前台线程。可以通过isDaemon()和setDaemon()方法来判断和设置一个线程是否为后台线程。<br />
<br />
转自:http://lavasoft.blog.51cto.com/62575/27069<br />
</span></div>
<img src ="http://www.blogjava.net/zh-qi/aggbug/271351.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-05-18 15:43 <a href="http://www.blogjava.net/zh-qi/archive/2009/05/18/271351.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Web应用中的任务调度</title><link>http://www.blogjava.net/zh-qi/archive/2009/05/08/269644.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 08 May 2009 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/05/08/269644.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/269644.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/05/08/269644.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/269644.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/269644.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 任务调度是大型J2EE&nbsp;web应用中常见的工作。开发者希望以指定的间隔时间执行各类操作，并完成一些无需用户输入的任务。Java中可有无数方法来做到这一点，但是在web应用中却并没有这方面的统一标准。当许多开发人员参与同一个项目，并且以各自不同的方式来实现任务调度时，就可能产生很大问题。内存和同步问题就是必须首先考虑的两件事。事实上，一些开发者试图调用操作系统层面的任务调度机制，如Unix...&nbsp;&nbsp;<a href='http://www.blogjava.net/zh-qi/archive/2009/05/08/269644.html'>阅读全文</a><img src ="http://www.blogjava.net/zh-qi/aggbug/269644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-05-08 16:47 <a href="http://www.blogjava.net/zh-qi/archive/2009/05/08/269644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 快捷键大全</title><link>http://www.blogjava.net/zh-qi/archive/2009/04/24/267362.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 24 Apr 2009 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/04/24/267362.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/267362.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/04/24/267362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/267362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/267362.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">MyEclipse&nbsp;快捷键大全<br />
（</span><span style="color: #000000">1</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">M切换窗口的大小<br />
（</span><span style="color: #000000">2</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Q跳到最后一次的编辑处<br />
（</span><span style="color: #000000">3</span><span style="color: #000000">）F2当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show&nbsp;Tooltip&nbsp;Description。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F3跳到声明或定义的地方。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F5单步调试进入函数内部。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F6单步调试不进入函数内部，如果装了金山词霸2006则要把&#8220;取词开关&#8221;的快捷键改成其他的。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F7由函数内部返回到调用处。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F8一直执行到下一个断点。<br />
（</span><span style="color: #000000">4</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Pg</span><span style="color: #000000">~</span><span style="color: #000000">对于XML文件是切换代码和图示窗口<br />
（</span><span style="color: #000000">5</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Alt</span><span style="color: #000000">+</span><span style="color: #000000">I看Java文件中变量的相关信息<br />
（</span><span style="color: #000000">6</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">PgUp对于代码窗口是打开&#8220;Show&nbsp;List&#8221;下拉框，在此下拉框里显示有最近曾打开的文件<br />
（</span><span style="color: #000000">7</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+/</span><span style="color: #000000">&nbsp;在代码窗口中是这种</span><span style="color: #008000">//</span><span style="color: #008000">~注释。</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+/</span><span style="color: #000000">&nbsp;在代码窗口中是这种</span><span style="color: #008000">/**</span><span style="color: #008000">//*~</span><span style="color: #008000">*/</span><span style="color: #000000">注释，在JSP文件窗口中是</span><span style="color: #000000">&lt;!--~--&gt;</span><span style="color: #000000">。<br />
（</span><span style="color: #000000">8</span><span style="color: #000000">）Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">O(或点击工具栏中的Toggle&nbsp;Mark&nbsp;Occurrences按钮)&nbsp;当点击某个标记时可使本页面中其他地方的此标记黄色凸显，并且窗口的右边框会出现白色的方块，点击此方块会跳到此标记处。<br />
（</span><span style="color: #000000">9</span><span style="color: #000000">）右击窗口的左边框即加断点的地方选Show&nbsp;Line&nbsp;Numbers可以加行号。<br />
（</span><span style="color: #000000">10</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">I格式化激活的元素Format&nbsp;Active&nbsp;Elements。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">F格式化文件Format&nbsp;Document。<br />
（</span><span style="color: #000000">11</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">S保存当前文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">S保存所有未保存的文件。<br />
（</span><span style="color: #000000">12</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">M(先把光标放在需导入包的类名上)&nbsp;作用是加Import语句。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">O作用是缺少的Import语句被加入，多余的Import语句被删除。<br />
（</span><span style="color: #000000">13</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Space提示键入内容即Content&nbsp;Assist，此时要将输入法中Chinese(Simplified)IME</span><span style="color: #000000">-</span><span style="color: #000000">Ime</span><span style="color: #000000">/</span><span style="color: #000000">Nonlme&nbsp;Toggle的快捷键（用于切换英文和其他文字）改成其他的如改成Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">Z，同时在&#8220;Text&nbsp;Service&nbsp;and&nbsp;Input&nbsp;Languages&#8221;对话框中删掉Chinese(PRC)下面的其他中文输入法只保留紫光输入法，此时按Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">Z将在英文和紫光中文之间切换。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">Space提示信息即Context&nbsp;Information。<br />
（</span><span style="color: #000000">14</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">D删除当前行。<br />
（</span><span style="color: #000000">15</span><span style="color: #000000">）双击窗口的左边框可以加断点。<br />
（</span><span style="color: #000000">16</span><span style="color: #000000">）在.jap.或.java等文件中右键选&#8220;Campare&nbsp;With&#8221;或&#8220;Replace&nbsp;With&#8221;可以找到所有操作的历史记录。<br />
（</span><span style="color: #000000">17</span><span style="color: #000000">）在菜单中选Window－Show&nbsp;View－Navigator可调出导航功能窗。<br />
（</span><span style="color: #000000">18</span><span style="color: #000000">）Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;快速修复(最经典的快捷键,就不用多说了)&nbsp;<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8595;&nbsp;复制当前行到下一行(复制增加)<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8593;&nbsp;复制当前行到上一行(复制增加)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8595;&nbsp;当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8593;&nbsp;当前行和上面一行交互位置(同上)<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8592;&nbsp;前一个编辑的页面<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">&#8594;&nbsp;下一个编辑的页面(当然是针对上面那条来说了)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Enter&nbsp;显示当前选择资源(工程,or&nbsp;文件&nbsp;or文件)的属性<br />
<br />
Shift</span><span style="color: #000000">+</span><span style="color: #000000">Enter&nbsp;在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)<br />
Shift</span><span style="color: #000000">+</span><span style="color: #000000">Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Enter&nbsp;在当前行插入空行(原理同上条)<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Q&nbsp;定位到最后编辑的地方<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">L&nbsp;定位在某行&nbsp;(对于程序超过100的人就有福音了)<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">M&nbsp;最大化当前的Edit或View&nbsp;(再按则反之)<br />
Ctrl</span><span style="color: #000000">+/</span><span style="color: #000000">&nbsp;注释当前行,再按则取消注释<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">O&nbsp;快速显示&nbsp;OutLine<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">T&nbsp;快速显示当前类的继承结构<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">W&nbsp;关闭当前Editer<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">K&nbsp;参照选中的Word快速定位到下一个<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">E&nbsp;快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)<br />
<br />
Ctrl</span><span style="color: #000000">+/</span><span style="color: #000000">(小键盘)&nbsp;折叠当前类中的所有代码<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">&#215;(小键盘)&nbsp;展开当前类中的所有代码<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Space&nbsp;代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt</span><span style="color: #000000">+/</span><span style="color: #000000">来代替)<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">E&nbsp;显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">J&nbsp;正向增量查找(按下Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes&nbsp;line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">J&nbsp;反向增量查找(和上条相同,只不过是从后往前查)<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">F4&nbsp;关闭所有打开的Editer<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">X&nbsp;把当前选中的文本全部变味小写<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">Y&nbsp;把当前选中的文本全部变为小写<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">F&nbsp;格式化当前代码<br />
<br />
Ctrl</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">P&nbsp;定位到对于的匹配符(譬如{})&nbsp;(从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)<br />
<br />
下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift开头的了)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">R&nbsp;重命名&nbsp;(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">M&nbsp;抽取方法&nbsp;(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">C&nbsp;修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">L&nbsp;抽取本地变量(&nbsp;可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">F&nbsp;把Class中的local变量变为field变量&nbsp;(比较实用的功能)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">I&nbsp;合并变量(可能这样说有点不妥Inline)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">V&nbsp;移动函数和变量(不怎么常用)<br />
<br />
Alt</span><span style="color: #000000">+</span><span style="color: #000000">Shift</span><span style="color: #000000">+</span><span style="color: #000000">Z&nbsp;重构的后悔药(Undo)<br />
</span></div>
<img src ="http://www.blogjava.net/zh-qi/aggbug/267362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-04-24 15:08 <a href="http://www.blogjava.net/zh-qi/archive/2009/04/24/267362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件夹创建,文件夹删除,文件夹拷贝</title><link>http://www.blogjava.net/zh-qi/archive/2009/04/11/264957.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 10 Apr 2009 17:21:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/04/11/264957.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/264957.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/04/11/264957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/264957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/264957.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;1package&nbsp;test;&nbsp;&nbsp;2&nbsp;&nbsp;3import&nbsp;java.io.BufferedReader;&nbsp;&nbsp;4import&nbsp;java.io.File;&nbsp;&nbsp;5import&nbsp;java.io.FileInputStream;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/zh-qi/archive/2009/04/11/264957.html'>阅读全文</a><img src ="http://www.blogjava.net/zh-qi/aggbug/264957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-04-11 01:21 <a href="http://www.blogjava.net/zh-qi/archive/2009/04/11/264957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jquery基本教程之简单体验</title><link>http://www.blogjava.net/zh-qi/archive/2009/04/03/263747.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 03 Apr 2009 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/04/03/263747.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/263747.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/04/03/263747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/263747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/263747.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">Jquery是继prototype之后又一个优秀的Javascript框架。对prototype我使用不多，简单了解过。但使用上jquery之后，马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />一，找到你了！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />还记得$()这个东西吧？prototype还是DWR都使用了这个函数代替document.getElementById()。没错，jquery也跟风了。为达到document.getElementById()的目的，jquery是这样写的：<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />var&nbsp;someElement&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">#myId</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />看起来比其他两个框架的要多了一个#，好，看看下面的用法：<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">div&nbsp;p</span><span style="color: #000000">"</span><span style="color: #000000">);(</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">div.container</span><span style="color: #000000">"</span><span style="color: #000000">)(</span><span style="color: #000000">2</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">div&nbsp;#msg</span><span style="color: #000000">"</span><span style="color: #000000">);(</span><span style="color: #000000">3</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">table&nbsp;a</span><span style="color: #000000">"</span><span style="color: #000000">,context);(</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />在prototype里看过这样的写法吗？第一行代码得到所有</span><span style="color: #000000">&lt;</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000">标签下的</span><span style="color: #000000">&lt;</span><span style="color: #000000">p</span><span style="color: #000000">&gt;</span><span style="color: #000000">元素。第二行代码得到class为container的</span><span style="color: #000000">&lt;</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000">元素,第三行代码得到</span><span style="color: #000000">&lt;</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000">标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />如果你熟悉CSS，Xpath，你会觉得这些写法很眼熟！对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />二，Jquery对象？&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />jquery提供了很多便利的函数，如each(fn)，但是使用这些函数的前提是：你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单，通过下面一些方式（只是一部分）：<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />var&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">#cid</span><span style="color: #000000">"</span><span style="color: #000000">);(</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />var&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;p&gt;hello&lt;/p&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);(</span><span style="color: #000000">2</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />var&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.createElement(</span><span style="color: #000000">"</span><span style="color: #000000">table</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;var&nbsp;tb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;$(c);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />三，代替body标签的onload&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这个惯例，也许是除了$()之外，用得最多的地方了。下面一段代码：<br />
<img id="Codehighlighter1_1082_1108_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1082_1108_Open_Text.style.display='none'; Codehighlighter1_1082_1108_Closed_Image.style.display='inline'; Codehighlighter1_1082_1108_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1082_1108_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1082_1108_Closed_Text.style.display='none'; Codehighlighter1_1082_1108_Open_Image.style.display='inline'; Codehighlighter1_1082_1108_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$(document).ready(function()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1082_1108_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1082_1108_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);(</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">body&nbsp;onload</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">alert('hello');</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">（</span><span style="color: #000000">2</span><span style="color: #000000">）&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />上面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作，即$(document).ready(fn)可以在一个页面中重复出现，而不会冲突。基本上Jqeury的很多plugin都是利用这个特性，正因为这个特性，多个plugin共同使用起来，在初始化时不会发生冲突。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />不管怎么说，这个惯例可以分离javascript与HTML。推荐使用。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />四，事件机制&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />我大量使用的事件可能就是button的onclick了。以前习惯在input&nbsp;元素上写onclick&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">fn()</span><span style="color: #000000">"</span><span style="color: #000000">,使用jquery可以使javascript代码与html代码分离，保持HTML的清洁，还可以很轻松地绑定事件，甚至你可以不知道&#8220;事件&#8221;这个名词。<br />
<img id="Codehighlighter1_1520_1656_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1520_1656_Open_Text.style.display='none'; Codehighlighter1_1520_1656_Closed_Image.style.display='inline'; Codehighlighter1_1520_1656_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1520_1656_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1520_1656_Closed_Text.style.display='none'; Codehighlighter1_1520_1656_Open_Image.style.display='inline'; Codehighlighter1_1520_1656_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$(document).ready(function()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1520_1656_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1520_1656_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1555_1613_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1555_1613_Open_Text.style.display='none'; Codehighlighter1_1555_1613_Closed_Image.style.display='inline'; Codehighlighter1_1555_1613_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1555_1613_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1555_1613_Closed_Text.style.display='none'; Codehighlighter1_1555_1613_Open_Image.style.display='inline'; Codehighlighter1_1555_1613_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">#clear</span><span style="color: #000000">"</span><span style="color: #000000">).click(function()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1555_1613_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1555_1613_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">i&nbsp;am&nbsp;about&nbsp;to&nbsp;clear&nbsp;the&nbsp;table</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;$(</span><span style="color: #000000">"</span><span style="color: #000000">form[0]</span><span style="color: #000000">"</span><span style="color: #000000">).submit(validate);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1682_1718_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1682_1718_Open_Text.style.display='none'; Codehighlighter1_1682_1718_Closed_Image.style.display='inline'; Codehighlighter1_1682_1718_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1682_1718_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1682_1718_Closed_Text.style.display='none'; Codehighlighter1_1682_1718_Open_Image.style.display='inline'; Codehighlighter1_1682_1718_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />function&nbsp;validate()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1682_1718_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1682_1718_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">do&nbsp;some&nbsp;form&nbsp;validation&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />五，同一函数实现set</span><span style="color: #000000">&amp;</span><span style="color: #000000">get<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).html();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).html(</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />上面两行代码，调用了同样的函数。但结果却差别很大。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />第一行是返回指定元素的HTML值，第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />六，ajax&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这是一个ajax横行的时代。多少人，了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常<br />
<img id="Codehighlighter1_1956_1961_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1956_1961_Open_Text.style.display='none'; Codehighlighter1_1956_1961_Closed_Image.style.display='inline'; Codehighlighter1_1956_1961_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1956_1961_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1956_1961_Closed_Text.style.display='none'; Codehighlighter1_1956_1961_Open_Image.style.display='inline'; Codehighlighter1_1956_1961_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$.get(</span><span style="color: #000000">"</span><span style="color: #000000">search.do</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1956_1961_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1956_1961_Open_Text"><span style="color: #000000">{id:</span><span style="color: #000000">1</span><span style="color: #000000">}</span></span><span style="color: #000000">,rend);&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1991_2015_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1991_2015_Open_Text.style.display='none'; Codehighlighter1_1991_2015_Closed_Image.style.display='inline'; Codehighlighter1_1991_2015_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1991_2015_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1991_2015_Closed_Text.style.display='none'; Codehighlighter1_1991_2015_Open_Image.style.display='inline'; Codehighlighter1_1991_2015_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />function&nbsp;rend(xml)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1991_2015_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1991_2015_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert(xml);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2043_2048_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2043_2048_Open_Text.style.display='none'; Codehighlighter1_2043_2048_Closed_Image.style.display='inline'; Codehighlighter1_2043_2048_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_2043_2048_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2043_2048_Closed_Text.style.display='none'; Codehighlighter1_2043_2048_Open_Image.style.display='inline'; Codehighlighter1_2043_2048_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$.post(</span><span style="color: #000000">"</span><span style="color: #000000">search.do</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2043_2048_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2043_2048_Open_Text"><span style="color: #000000">{id:</span><span style="color: #000000">1</span><span style="color: #000000">}</span></span><span style="color: #000000">,rend);&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2078_2102_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2078_2102_Open_Text.style.display='none'; Codehighlighter1_2078_2102_Closed_Image.style.display='inline'; Codehighlighter1_2078_2102_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_2078_2102_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2078_2102_Closed_Text.style.display='none'; Codehighlighter1_2078_2102_Open_Image.style.display='inline'; Codehighlighter1_2078_2102_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />function&nbsp;rend(xml)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2078_2102_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2078_2102_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert(xml);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">2</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2144_2178_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2144_2178_Open_Text.style.display='none'; Codehighlighter1_2144_2178_Closed_Image.style.display='inline'; Codehighlighter1_2144_2178_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_2144_2178_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2144_2178_Closed_Text.style.display='none'; Codehighlighter1_2144_2178_Open_Image.style.display='inline'; Codehighlighter1_2144_2178_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).ajaxStart(function()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2144_2178_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2144_2178_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.html(</span><span style="color: #000000">"</span><span style="color: #000000">正在加载。。。。</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);(</span><span style="color: #000000">3</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2220_2251_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2220_2251_Open_Text.style.display='none'; Codehighlighter1_2220_2251_Closed_Image.style.display='inline'; Codehighlighter1_2220_2251_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_2220_2251_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2220_2251_Closed_Text.style.display='none'; Codehighlighter1_2220_2251_Open_Image.style.display='inline'; Codehighlighter1_2220_2251_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).ajaxSuccess(function()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2220_2251_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2220_2251_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.html(</span><span style="color: #000000">"</span><span style="color: #000000">加载完成！</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);(</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这些都是较常用的方法，get和post用法一样。第一个参数是异步请求的url，第二个为参数，第三个回调方法。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">3</span><span style="color: #000000">，4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然，jquery的AJAX相关的函数不仅是这些，有兴趣可以去研究再多。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />七，渐入淡出&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).fadeIn(</span><span style="color: #000000">"</span><span style="color: #000000">fast</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />$(</span><span style="color: #000000">"</span><span style="color: #000000">#msg</span><span style="color: #000000">"</span><span style="color: #000000">).fadeOut(</span><span style="color: #000000">"</span><span style="color: #000000">slow</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />没错，上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条，用jquery就那么简单。两个函数接受的参数除了快慢等，还可以接收整型，作为渐入或淡出的完成时间，单位为MS。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />八，plugin<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />这也是一个插件的时代。&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />jquery插件给我的感觉清一色的清洁，简单。如Jtip，要使用它的功能，只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好，很精彩的插件。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<img src ="http://www.blogjava.net/zh-qi/aggbug/263747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-04-03 14:54 <a href="http://www.blogjava.net/zh-qi/archive/2009/04/03/263747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>列表框的左右上下移动</title><link>http://www.blogjava.net/zh-qi/archive/2009/01/09/250712.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 09 Jan 2009 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/01/09/250712.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/250712.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/01/09/250712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/250712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/250712.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt">效果图如下：<br />
</span><img height="301" alt="" src="http://www.blogjava.net/images/blogjava_net/zh-qi/2.jpg" width="334" border="0" /><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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java.util.*</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">列表框上下左右操作</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ListUtil&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object();&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">全部移动&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_344_575_Open_Image" onclick="this.style.display='none'; Codehighlighter1_344_575_Open_Text.style.display='none'; Codehighlighter1_344_575_Closed_Image.style.display='inline'; Codehighlighter1_344_575_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_344_575_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_344_575_Closed_Text.style.display='none'; Codehighlighter1_344_575_Open_Image.style.display='inline'; Codehighlighter1_344_575_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ListUtil.moveAll&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function&nbsp;moveAll(oListboxFrom,oListboxTo)</span><span id="Codehighlighter1_344_575_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"  alt="" /></span><span id="Codehighlighter1_344_575_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;options&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListboxFrom.options;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_443_566_Open_Image" onclick="this.style.display='none'; Codehighlighter1_443_566_Open_Text.style.display='none'; Codehighlighter1_443_566_Closed_Image.style.display='inline'; Codehighlighter1_443_566_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_443_566_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_443_566_Closed_Text.style.display='none'; Codehighlighter1_443_566_Open_Image.style.display='inline'; Codehighlighter1_443_566_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(var&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_443_566_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"  alt="" /></span><span id="Codehighlighter1_443_566_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oListboxTo.appendChild(options[i]);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">???&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">-=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">???每删除一个选项后，每个选项的index会被重置&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">单个或多个移动&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_663_923_Open_Image" onclick="this.style.display='none'; Codehighlighter1_663_923_Open_Text.style.display='none'; Codehighlighter1_663_923_Closed_Image.style.display='inline'; Codehighlighter1_663_923_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_663_923_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_663_923_Closed_Text.style.display='none'; Codehighlighter1_663_923_Open_Image.style.display='inline'; Codehighlighter1_663_923_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ListUtil.moveMuti&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function&nbsp;moveMuti(oListboxFrom,oListboxTo)</span><span id="Codehighlighter1_663_923_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"  alt="" /></span><span id="Codehighlighter1_663_923_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;options&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListboxFrom.options;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_762_914_Open_Image" onclick="this.style.display='none'; Codehighlighter1_762_914_Open_Text.style.display='none'; Codehighlighter1_762_914_Closed_Image.style.display='inline'; Codehighlighter1_762_914_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_762_914_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_762_914_Closed_Text.style.display='none'; Codehighlighter1_762_914_Open_Image.style.display='inline'; Codehighlighter1_762_914_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(var&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;options.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_762_914_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"  alt="" /></span><span id="Codehighlighter1_762_914_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_802_901_Open_Image" onclick="this.style.display='none'; Codehighlighter1_802_901_Open_Text.style.display='none'; Codehighlighter1_802_901_Closed_Image.style.display='inline'; Codehighlighter1_802_901_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_802_901_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_802_901_Closed_Text.style.display='none'; Codehighlighter1_802_901_Open_Image.style.display='inline'; Codehighlighter1_802_901_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(options[i].selected)</span><span id="Codehighlighter1_802_901_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"  alt="" /></span><span id="Codehighlighter1_802_901_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oListboxTo.appendChild(options[i]);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">-=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">上移&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_982_1254_Open_Image" onclick="this.style.display='none'; Codehighlighter1_982_1254_Open_Text.style.display='none'; Codehighlighter1_982_1254_Closed_Image.style.display='inline'; Codehighlighter1_982_1254_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_982_1254_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_982_1254_Closed_Text.style.display='none'; Codehighlighter1_982_1254_Open_Image.style.display='inline'; Codehighlighter1_982_1254_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ListUtil.shiftUp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function(oListbox)&nbsp;</span><span id="Codehighlighter1_982_1254_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"  alt="" /></span><span id="Codehighlighter1_982_1254_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1025_1245_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1025_1245_Open_Text.style.display='none'; Codehighlighter1_1025_1245_Closed_Image.style.display='inline'; Codehighlighter1_1025_1245_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1025_1245_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1025_1245_Closed_Text.style.display='none'; Codehighlighter1_1025_1245_Open_Image.style.display='inline'; Codehighlighter1_1025_1245_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(oListbox.selectedIndex&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)</span><span id="Codehighlighter1_1025_1245_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"  alt="" /></span><span id="Codehighlighter1_1025_1245_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;oOption&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListbox.options[oListbox.selectedIndex];&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;oPrevOption&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListbox.options[oListbox.selectedIndex</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">];&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oListbox.insertBefore(oOption,oPrevOption);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">下移&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1314_1610_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1314_1610_Open_Text.style.display='none'; Codehighlighter1_1314_1610_Closed_Image.style.display='inline'; Codehighlighter1_1314_1610_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1314_1610_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1314_1610_Closed_Text.style.display='none'; Codehighlighter1_1314_1610_Open_Image.style.display='inline'; Codehighlighter1_1314_1610_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ListUtil.shiftDown&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;function(oListbox)</span><span id="Codehighlighter1_1314_1610_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"  alt="" /></span><span id="Codehighlighter1_1314_1610_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1381_1601_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1381_1601_Open_Text.style.display='none'; Codehighlighter1_1381_1601_Closed_Image.style.display='inline'; Codehighlighter1_1381_1601_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1381_1601_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1381_1601_Closed_Text.style.display='none'; Codehighlighter1_1381_1601_Open_Image.style.display='inline'; Codehighlighter1_1381_1601_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(oListbox.selectedIndex&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;oListbox.options.length</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)</span><span id="Codehighlighter1_1381_1601_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"  alt="" /></span><span id="Codehighlighter1_1381_1601_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;oOption&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListbox.options[oListbox.selectedIndex];&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;oNextOption&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oListbox.options[oListbox.selectedIndex</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">];&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oListbox.insertBefore(oNextOption,oOption);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">--&gt;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">body&nbsp;text</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#000000</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;bgcolor</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#ffffff</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;link</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#0033cc</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">form&nbsp;method</span><span style="color: #000000">=</span><span style="color: #000000">post&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">table</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">tr</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">select&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">oListboxFrom</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">oListboxFrom</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">10</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;multiple</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">width:&nbsp;100px;&nbsp;height:&nbsp;250px;&nbsp;margin-left:&nbsp;20px;&nbsp;float:&nbsp;left</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;selected</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工1</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工2</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工3</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">4</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工4</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">5</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工5</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">select</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">td&nbsp;align</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">center</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&gt;&gt;&gt;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.moveAll(oListboxFrom,&nbsp;oListboxTo);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&gt;&gt;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.moveMuti(oListboxFrom,&nbsp;oListboxTo);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&lt;&lt;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.moveMuti(oListboxTo,&nbsp;oListboxFrom);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&lt;&lt;&lt;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.moveAll(oListboxTo,&nbsp;oListboxFrom);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&#8593;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.shiftUp(oListboxFrom);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&#8595;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ListUtil.shiftDown(oListboxFrom);</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">select&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">oListboxTo</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">oListboxTo</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;multiple</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;size</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">10</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">width:&nbsp;100px;&nbsp;height:&nbsp;250px;&nbsp;margin-left:&nbsp;20px;&nbsp;float:&nbsp;left</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">319094784</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工6</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">320274432</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工8</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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;</span><span style="color: #000000">&lt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">322109440</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">员工7</span><span style="color: #000000">&lt;/</span><span style="color: #000000">option</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">select</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">tr</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">table</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">form</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/zh-qi/aggbug/250712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-01-09 16:41 <a href="http://www.blogjava.net/zh-qi/archive/2009/01/09/250712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate3缓存管理</title><link>http://www.blogjava.net/zh-qi/archive/2009/01/09/250701.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Fri, 09 Jan 2009 07:58:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/01/09/250701.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/250701.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/01/09/250701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/250701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/250701.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Hibernate缓存管理&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;<a href='http://www.blogjava.net/zh-qi/archive/2009/01/09/250701.html'>阅读全文</a><img src ="http://www.blogjava.net/zh-qi/aggbug/250701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-01-09 15:58 <a href="http://www.blogjava.net/zh-qi/archive/2009/01/09/250701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql语句</title><link>http://www.blogjava.net/zh-qi/archive/2009/01/06/250054.html</link><dc:creator>笑看风云</dc:creator><author>笑看风云</author><pubDate>Tue, 06 Jan 2009 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/zh-qi/archive/2009/01/06/250054.html</guid><wfw:comment>http://www.blogjava.net/zh-qi/comments/250054.html</wfw:comment><comments>http://www.blogjava.net/zh-qi/archive/2009/01/06/250054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zh-qi/comments/commentRss/250054.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zh-qi/services/trackbacks/250054.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、基础1、说明：创建数据库CREATE&nbsp;DATABASE&nbsp;database-name&nbsp;2、说明：删除数据库drop&nbsp;database&nbsp;dbname3、说明：备份sql&nbsp;server---&nbsp;创建&nbsp;备份数据的&nbsp;deviceUSE&nbsp;masterEXEC&nbsp;sp...&nbsp;&nbsp;<a href='http://www.blogjava.net/zh-qi/archive/2009/01/06/250054.html'>阅读全文</a><img src ="http://www.blogjava.net/zh-qi/aggbug/250054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zh-qi/" target="_blank">笑看风云</a> 2009-01-06 10:25 <a href="http://www.blogjava.net/zh-qi/archive/2009/01/06/250054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>