﻿<?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-Kan - 阚</title><link>http://www.blogjava.net/kanjingcai/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 26 Apr 2026 18:29:24 GMT</lastBuildDate><pubDate>Sun, 26 Apr 2026 18:29:24 GMT</pubDate><ttl>60</ttl><item><title>一个简单的冒泡排序程序</title><link>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295386.html</link><dc:creator>kanjingcai</dc:creator><author>kanjingcai</author><pubDate>Wed, 16 Sep 2009 17:18:00 GMT</pubDate><guid>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295386.html</guid><wfw:comment>http://www.blogjava.net/kanjingcai/comments/295386.html</wfw:comment><comments>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanjingcai/comments/commentRss/295386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanjingcai/services/trackbacks/295386.html</trackback:ping><description><![CDATA[public class Ebullition<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[] arr={4,8,10,74,68,16,-4,0,1,53,500,153,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;arr.length;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int j=arr.length-1;j&gt;0;j--){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(arr[j]&lt;arr[j-1]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int temp=arr[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[j]=arr[j-1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[j-1]=temp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i : arr){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(i+" ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
}<br />
<br />
 <img src ="http://www.blogjava.net/kanjingcai/aggbug/295386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanjingcai/" target="_blank">kanjingcai</a> 2009-09-17 01:18 <a href="http://www.blogjava.net/kanjingcai/archive/2009/09/17/295386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序打印0~200之间能被7整除但不能被4整除，并且每行显示6个数据</title><link>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295385.html</link><dc:creator>kanjingcai</dc:creator><author>kanjingcai</author><pubDate>Wed, 16 Sep 2009 17:01:00 GMT</pubDate><guid>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295385.html</guid><wfw:comment>http://www.blogjava.net/kanjingcai/comments/295385.html</wfw:comment><comments>http://www.blogjava.net/kanjingcai/archive/2009/09/17/295385.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kanjingcai/comments/commentRss/295385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanjingcai/services/trackbacks/295385.html</trackback:ping><description><![CDATA[public&nbsp;class&nbsp; Test{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int word=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;=200;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i%7==0&amp;i%4!=0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("&nbsp; "+i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;word++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(word%6 == 0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;<br />
}
 <img src ="http://www.blogjava.net/kanjingcai/aggbug/295385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanjingcai/" target="_blank">kanjingcai</a> 2009-09-17 01:01 <a href="http://www.blogjava.net/kanjingcai/archive/2009/09/17/295385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序的流程控制(二)</title><link>http://www.blogjava.net/kanjingcai/archive/2009/06/17/282904.html</link><dc:creator>kanjingcai</dc:creator><author>kanjingcai</author><pubDate>Wed, 17 Jun 2009 11:22:00 GMT</pubDate><guid>http://www.blogjava.net/kanjingcai/archive/2009/06/17/282904.html</guid><wfw:comment>http://www.blogjava.net/kanjingcai/comments/282904.html</wfw:comment><comments>http://www.blogjava.net/kanjingcai/archive/2009/06/17/282904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanjingcai/comments/commentRss/282904.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanjingcai/services/trackbacks/282904.html</trackback:ping><description><![CDATA[/**<br />
&nbsp;* 利用do~while循环计算1+2+......+100<br />
&nbsp;*/<br />
public class Example5_2{<br />
&nbsp;public static void main(String[] agrs){<br />
&nbsp;&nbsp;int counter=1;<br />
&nbsp;&nbsp;int sum=0;<br />
&nbsp;&nbsp;do{<br />
&nbsp;&nbsp;&nbsp;sum=sum+counter;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;while ((++counter)&lt;=100); //先执行，后判断<br />
&nbsp;&nbsp;System.out.println("1+2+......+100="+sum);<br />
&nbsp;}<br />
}<br />
<br />
<p>/**<br />
&nbsp;* 比较while和do~while的区别<br />
&nbsp;*/<br />
public class Example5_3{<br />
&nbsp;public static void main(String[] agrs){&nbsp;<br />
&nbsp;&nbsp;boolean flag=false; //定义执行标志</p>
<p>&nbsp;&nbsp;while(flag){<br />
&nbsp;&nbsp;&nbsp;System.out.println("in while loop");<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;do{<br />
&nbsp;&nbsp;&nbsp;System.out.println("in do~while loop");<br />
&nbsp;&nbsp;}while(flag);<br />
&nbsp;}<br />
}</p>
<br />
<br />
/**<br />
&nbsp;* 利用for循环计算100+99+......+1<br />
&nbsp;*/<br />
public class Example5_4{<br />
&nbsp;public static void main(String[] agrs){&nbsp;<br />
&nbsp;&nbsp;int sum=0;<br />
&nbsp;&nbsp;for(int counter=100;counter&gt;=1;--counter){<br />
&nbsp;&nbsp;&nbsp;sum+=counter;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println("100+99+......+1="+sum);<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* 初始化计数器<br />
&nbsp;*/<br />
public class Example5_5{<br />
&nbsp;public static void main(String[] agrs){&nbsp;<br />
&nbsp;&nbsp;int sum=0;<br />
&nbsp;&nbsp;int counter=100; //在for循环体外部初始化计数器<br />
&nbsp;&nbsp;for(;counter&gt;=1;--counter){<br />
&nbsp;&nbsp;&nbsp;sum+=counter;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println("1+2+......+100="+sum);<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 修改计数器以控制循环次数<br />
&nbsp;*/<br />
public class Example5_6{<br />
&nbsp;public static void main(String[] agrs){&nbsp;<br />
&nbsp;&nbsp;int sum=0;<br />
&nbsp;&nbsp;int counter=100; //在外部初始化计数器<br />
&nbsp;&nbsp;for(;counter&gt;=1;){<br />
&nbsp;&nbsp;&nbsp;sum+=counter--; //在循环体中修改计数器<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println("1+2+......+100="+sum);<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* 判断用户输入的数字是否为素数<br />
&nbsp;*/<br />
import java.io.*;<br />
public class Example5_7{<br />
&nbsp;public static void main(String[] agrs)throws Exception{&nbsp;<br />
&nbsp;&nbsp;int numeric=Integer.parseInt(<br />
&nbsp;&nbsp;&nbsp;new BufferedReader(new InputStreamReader(System.in)).readLine());<br />
&nbsp;&nbsp;int divisor;<br />
&nbsp;&nbsp;for(divisor=2;divisor&lt;=numeric;++divisor){<br />
&nbsp;&nbsp;&nbsp;//如果能被2~numeric之间的数字整除，则跳出循环<br />
&nbsp;&nbsp;&nbsp;if(numeric%divisor==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;//如果只能被本身整除，则判定为素数<br />
&nbsp;&nbsp;if(numeric==divisor){<br />
&nbsp;&nbsp;&nbsp;System.out.println(numeric+"是素数");<br />
&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;System.out.println(numeric+"不是素数");<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* 统计1~30之间不能被3整除的数的个数<br />
&nbsp;*/<br />
public class Example5_8{<br />
&nbsp;public static void main(String[] agrs){&nbsp;<br />
&nbsp;&nbsp;int count=0; //定义计数变量<br />
&nbsp;&nbsp;System.out.println("统计开始");<br />
&nbsp;&nbsp;for(int dividend=1;dividend&lt;=30;++dividend){<br />
&nbsp;&nbsp;&nbsp;//如果能被3整除，则立即结束本次循环<br />
&nbsp;&nbsp;&nbsp;if(dividend%3==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;continue;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;//将计数变量加1，并输出当前不能被2整除的数字<br />
&nbsp;&nbsp;&nbsp;++count;<br />
&nbsp;&nbsp;&nbsp;System.out.print(dividend+"\t");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println("一共有"+count+"个数字");&nbsp;<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* 打印图形<br />
&nbsp;*/<br />
public class Example5_9{<br />
&nbsp;public static void main(String[] agrs){<br />
&nbsp;&nbsp;//外循环控制行<br />
&nbsp;&nbsp;for(int rowNum=1;rowNum&lt;=9;++rowNum){<br />
&nbsp;&nbsp;&nbsp;//外循环控制列<br />
&nbsp;&nbsp;&nbsp;for(int lineNum=1;lineNum&lt;=rowNum;++lineNum){<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(lineNum+"\t");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;//输出回车<br />
&nbsp;&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}
<img src ="http://www.blogjava.net/kanjingcai/aggbug/282904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanjingcai/" target="_blank">kanjingcai</a> 2009-06-17 19:22 <a href="http://www.blogjava.net/kanjingcai/archive/2009/06/17/282904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>String</title><link>http://www.blogjava.net/kanjingcai/archive/2009/06/16/282592.html</link><dc:creator>kanjingcai</dc:creator><author>kanjingcai</author><pubDate>Tue, 16 Jun 2009 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/kanjingcai/archive/2009/06/16/282592.html</guid><wfw:comment>http://www.blogjava.net/kanjingcai/comments/282592.html</wfw:comment><comments>http://www.blogjava.net/kanjingcai/archive/2009/06/16/282592.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanjingcai/comments/commentRss/282592.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanjingcai/services/trackbacks/282592.html</trackback:ping><description><![CDATA[<p>/**<br />
&nbsp;*把String型的数组变成一个Integer型的数组，Integer是整型。<br />
*/<br />
public class b<br />
{<br />
&nbsp;public static void main(String[] args)<br />
&nbsp;{&nbsp;</p>
<p>&nbsp;&nbsp;int[] b= new int[args.length];<br />
&nbsp;&nbsp;for(int i=0;i&lt;args.length;i++)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;b[i] = Integer.parseInt(args[i]);&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;for(int num=0;num&lt;b.length;num++)//显示没在调换之前的序列<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(b[num]+"&nbsp; ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("这是没有排序之前的数组排列");<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("\n");//换行</p>
<p>&nbsp;&nbsp;&nbsp;for(int k=0;k&lt;b.length;k++)//排序时组的计时器<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(int j=b.length-1;j&gt;0;j--)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int tem;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(b[j]&gt;b[j-1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tem=b[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b[j]=b[j-1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b[j-1]=tem;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int num=0;num&lt;b.length;num++)//排序时每两个数之间交换的次数的计时器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(b[num]+"&nbsp; ");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("这次是"+b[j]+"与"+b[j-1]+"交换");//在每次交换后的排序后面作的注释<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
}</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/kanjingcai/aggbug/282592.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanjingcai/" target="_blank">kanjingcai</a> 2009-06-16 13:58 <a href="http://www.blogjava.net/kanjingcai/archive/2009/06/16/282592.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java线程（二）</title><link>http://www.blogjava.net/kanjingcai/archive/2009/06/15/282455.html</link><dc:creator>kanjingcai</dc:creator><author>kanjingcai</author><pubDate>Mon, 15 Jun 2009 13:35:00 GMT</pubDate><guid>http://www.blogjava.net/kanjingcai/archive/2009/06/15/282455.html</guid><wfw:comment>http://www.blogjava.net/kanjingcai/comments/282455.html</wfw:comment><comments>http://www.blogjava.net/kanjingcai/archive/2009/06/15/282455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanjingcai/comments/commentRss/282455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanjingcai/services/trackbacks/282455.html</trackback:ping><description><![CDATA[/**<br />
&nbsp;* Wicket类，用于模拟售票点<br />
&nbsp;*/<br />
public class Wicket implements&nbsp;Runnable{<br />
&nbsp;private int tickets=100; //共一百张票<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;if(tickets&gt;0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;try<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(10); //令当前线程暂停10毫秒<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()+<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" is saling ticket "+tickets--);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;public static void main(String[] agrs){<br />
&nbsp;&nbsp;Runnable runnable=new Wicket(); //创建资源对象<br />
&nbsp;&nbsp;/**<br />
&nbsp;&nbsp; * 创建四个线程，共享资源对象<br />
&nbsp;&nbsp; */<br />
&nbsp;&nbsp;new Thread(runnable).start();<br />
&nbsp;&nbsp;new Thread(runnable).start();<br />
&nbsp;&nbsp;new Thread(runnable).start();<br />
&nbsp;&nbsp;new Thread(runnable).start();<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* ThreadDemo类，用于调度线程<br />
&nbsp;*/<br />
public class ThreadDemo{<br />
&nbsp;public static void main(String[] agrs)throws Exception{<br />
&nbsp;&nbsp;ThreadTest thread1=new ThreadTest("block");<br />
&nbsp;&nbsp;new Thread(thread1).start();<br />
&nbsp;&nbsp;Thread.sleep(1);<br />
&nbsp;&nbsp;thread1.setInvokeFlag("method");<br />
&nbsp;&nbsp;new Thread(thread1).start();<br />
&nbsp;}<br />
}<br />
class ThreadTest implements Runnable{<br />
&nbsp;private String str;<br />
&nbsp;private int tickets=100;<br />
&nbsp;public ThreadTest(String str){<br />
&nbsp;&nbsp;this.str=str;<br />
&nbsp;}<br />
&nbsp;public void setInvokeFlag(String flag){<br />
&nbsp;&nbsp;this.str=flag;<br />
&nbsp;}<br />
&nbsp;public void run(){&nbsp;&nbsp;<br />
&nbsp;&nbsp;if(str.equals("method")){<br />
&nbsp;&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;&nbsp;sale();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 同步代码块，以对象本身作为监视器<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;synchronized(this){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tickets&gt;0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(10);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()+<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" is saling ticket "+tickets--);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;/**<br />
&nbsp; * 同步方法，以对象本身作为监视器<br />
&nbsp; */<br />
&nbsp;private synchronized void sale(){<br />
&nbsp;&nbsp;if(tickets&gt;0){<br />
&nbsp;&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(10);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;System.out.println(Thread.currentThread().getName()+<br />
&nbsp;&nbsp;&nbsp;&nbsp;" is saling ticket "+tickets--);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
<br />
/**<br />
&nbsp;* DeadLock类，用于调度线程和制造死锁<br />
&nbsp;*/<br />
public class DeadLock implements Runnable{<br />
&nbsp;private A a=new A();<br />
&nbsp;private B b=new B();<br />
&nbsp;public DeadLock()throws Exception{<br />
&nbsp;&nbsp;Thread.currentThread().setName("Main Thread");<br />
&nbsp;&nbsp;new Thread(this).start();<br />
&nbsp;&nbsp;a.foo(b);<br />
&nbsp;}<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;Thread.currentThread().setName("Racing Thread");<br />
&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;b.bar(a);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;System.out.println(e);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;public static void main(String[] agrs)throws Exception{<br />
&nbsp;&nbsp;new DeadLock();<br />
&nbsp;}<br />
}<br />
class A{<br />
&nbsp;public synchronized void foo(B b) throws Exception{<br />
&nbsp;&nbsp;String threadName=Thread.currentThread().getName();<br />
&nbsp;&nbsp;System.out.println(threadName);<br />
&nbsp;&nbsp;Thread.sleep(10);<br />
&nbsp;&nbsp;System.out.println(threadName+" trying to call B.last()");<br />
&nbsp;&nbsp;b.last();<br />
&nbsp;}<br />
&nbsp;public synchronized void last(){<br />
&nbsp;&nbsp;System.out.println("inside A.last()");<br />
&nbsp;}<br />
}<br />
class B{<br />
&nbsp;public synchronized void bar(A a) throws Exception{<br />
&nbsp;&nbsp;String threadName=Thread.currentThread().getName();<br />
&nbsp;&nbsp;System.out.println(threadName);<br />
&nbsp;&nbsp;Thread.sleep(10);<br />
&nbsp;&nbsp;System.out.println(threadName+" trying to call A.last()");<br />
&nbsp;&nbsp;a.last();<br />
&nbsp;}<br />
&nbsp;public synchronized void last(){<br />
&nbsp;&nbsp;System.out.println("inside B.last()");<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* Q类用于存储数据<br />
&nbsp;*/<br />
class Q{<br />
&nbsp;private String name;<br />
&nbsp;private String sex;<br />
&nbsp;public synchronized void put(String name,String sex){<br />
&nbsp;&nbsp;this.name=name;<br />
&nbsp;&nbsp;this.sex=sex;<br />
&nbsp;}<br />
&nbsp;public synchronized String get(){<br />
&nbsp;&nbsp;return name+"----&gt;"+sex;<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 生产者类<br />
&nbsp;*/<br />
class Producer implements Runnable{<br />
&nbsp;private Q q;<br />
&nbsp;public Producer(Q q){<br />
&nbsp;&nbsp;this.q=q;<br />
&nbsp;}<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;int i=0;<br />
&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;if(i==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.put("张飞","男");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.put("貂蝉","女");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;i=(i+1)%2;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 消费者类<br />
&nbsp;*/<br />
class Consumer implements Runnable{<br />
&nbsp;private Q q;<br />
&nbsp;public Consumer(Q q){<br />
&nbsp;&nbsp;this.q=q;<br />
&nbsp;}<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;System.out.println(q.get());<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 程序的主调用类<br />
&nbsp;*/<br />
public class ThreadCommunation{<br />
&nbsp;public static void main(String[] agrs){<br />
&nbsp;&nbsp;Q q=new Q();<br />
&nbsp;&nbsp;Thread t1=new Thread(new Producer(q));<br />
&nbsp;&nbsp;Thread t2=new Thread(new Consumer(q));<br />
&nbsp;&nbsp;t1.start();<br />
&nbsp;&nbsp;t2.start();<br />
&nbsp;}<br />
}<br />
<br />
<br />
/**<br />
&nbsp;* Q类用于存储数据<br />
&nbsp;*/<br />
class Q{<br />
&nbsp;private String name;<br />
&nbsp;private String sex;<br />
&nbsp;private boolean flag=false; //表示存储空间的状态<br />
&nbsp;public synchronized void put(String name,String sex){<br />
&nbsp;&nbsp;if(flag){<br />
&nbsp;&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(); //令当前线程放弃监视器并进入等待状态<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e);<br />
&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;this.name=name;<br />
&nbsp;&nbsp;this.sex=sex;<br />
&nbsp;&nbsp;flag=true;<br />
&nbsp;&nbsp;notify(); //释放与监视器相关联的第一个等待线程，令其回到可运行状态<br />
&nbsp;}<br />
&nbsp;public synchronized String get(){<br />
&nbsp;&nbsp;if(!flag){<br />
&nbsp;&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(); //令当前线程放弃监视器并进入等待状态<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;catch (Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;flag=false;<br />
&nbsp;&nbsp;notify(); //释放与监视器相关联的第一个等待线程，令其回到可运行状态<br />
&nbsp;&nbsp;return name+"----&gt;"+sex;<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 生产者类<br />
&nbsp;*/<br />
class Producer implements Runnable{<br />
&nbsp;private Q q;<br />
&nbsp;public Producer(Q q){<br />
&nbsp;&nbsp;this.q=q;<br />
&nbsp;}<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;int i=0;<br />
&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;if(i==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.put("张飞","男");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;q.put("貂蝉","女");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;i=(i+1)%2;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 消费者类<br />
&nbsp;*/<br />
class Consumer implements Runnable{<br />
&nbsp;private Q q;<br />
&nbsp;public Consumer(Q q){<br />
&nbsp;&nbsp;this.q=q;<br />
&nbsp;}<br />
&nbsp;public void run(){<br />
&nbsp;&nbsp;while(true){<br />
&nbsp;&nbsp;&nbsp;System.out.println(q.get());<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
/**<br />
&nbsp;* 程序的主调用类<br />
&nbsp;*/<br />
public class ThreadCommunation{<br />
&nbsp;public static void main(String[] agrs){<br />
&nbsp;&nbsp;Q q=new Q();<br />
&nbsp;&nbsp;Thread t1=new Thread(new Producer(q));<br />
&nbsp;&nbsp;Thread t2=new Thread(new Consumer(q));<br />
&nbsp;&nbsp;t1.start();<br />
&nbsp;&nbsp;t2.start();<br />
&nbsp;}<br />
}<br />
<img src ="http://www.blogjava.net/kanjingcai/aggbug/282455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanjingcai/" target="_blank">kanjingcai</a> 2009-06-15 21:35 <a href="http://www.blogjava.net/kanjingcai/archive/2009/06/15/282455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>