System.out.println(\
char ch;
for(int i=0;i<10;i++)
buf[i]=(char)System.in.read(); //从键盘读一个数字串保存于buf中,它引发异常
for(int j=0;j<10;j++)
System.out.print(buf[j]+\ } }
运行结果:
D:\\java\\pro>java ReadChar
Input 10 char!
uiwryiufys
u i w r y i u f y s
5、编写Java Aplication,要求从命令行以参数形式读入两个数据,计算它们的和,然后将和输出。编程自定义例外OnlyOneException与
NoOprandException。如果参数的数目不足,显示相应提示信息并退出程序的执行。
解:
class OnlyOneException extends Exception
{ public OnlyOneException()
{ }
public void show1()
{ System.out.println(
\ } }
class NoOprandException extends Exception
{ public NoOprandException()
{ }
public void show2()
{ System.out.println(
\ } }
public class Ch63
{ public static void main(String args[])
throws OnlyOneException,NoOprandException
{ try
{ if(args.length==0)
throw new NoOprandException();
else
{ try
{if(args.length<2)
throw new OnlyOneException();
else
{ int sum;
sum=Integer.parseInt(args[0])+
Integer.parseInt(args[1]);
System.out.println(\
}
}
catch(OnlyOneException e1)
{ e1.show1();
}
}
}
catch(NoOprandException e2)
{ e2.show2();
}
finally
{ System.out.println
(\ } } }
当不在命令行上输入数字时,结果是:
E:\\JCreator Pro\\MyProjects>java Ch63
No number to operate.Please input two!
The programme is safely terminated.
当仅输入一个数字时,结果是:
E:\\JCreator Pro\\MyProjects>java Ch63 1
There is only one number.Another one needed!
The programme is safely terminated.
当两个数字都输入时,结果是:
E:\\JCreator Pro\\MyProjects>java Ch63 1 89
The sum is: 90
The programme is safely terminated.
第9章略
第10章 习题及思考习题: 1.将窗口分为上下两个区,分别运行两个线程,一个在上面的区域中显示由右向左游动的字符串,另一个在下面的区域从左向右游动的字符串.
方法一: 一个线程,在paint方法中使用两个输出字符串的语句
public void paint(Graphics g)
{ if (y1<0 )y1=200;
else y1=y1-10;
if (y2>200) y2=0;
else y2=y2+10;
g.drawString(“hello, Java!”,20,y1,);
g.drawString(“hello, Java!”,40,y2,); }
方法二:定义两个类,运行各自的线程,各自有自己的paint()方法.
注意: 两个小应用程序必须是panel类或者是canvas类,将小应用的区域分成两块,否则不能运行paint语句.
2 简述程序、进程和线程之间的关系。什么是多线程程序?
解:程序是一段静态的代码,是软件执行的蓝本。进程是程序的一次动态执行过程。线程是比进程更小的程序执行单位,一个进程可以启动多个线程同时运行,不同线程之间可以共享相同的内存区域和数据。
多线程程序是运行时可能出现在一个进程之内的、有一个以上线程同时运行的情况的程序。
3 线程有哪5个基本状态?它们之间如何转化?简述线程的生命周期。
解:线程有“新建”、“就绪”、“阻塞”、“运行”、“死亡”5个基本状态。线程对象被创建时进入“新建”状态;程序执行语句启动这个线程后,它进入线程队列排队等待CUP时间片,称为“就绪”状态;等CPU时间和其他资源齐备时就进人“运行”状态;线程运行完毕或者被强制终止则进入“死亡”状态。上述线程各状态之间的转换就构成了线程的基本生命周期。
4 什么是线程调度?Java的线程调度采用什么策略? 解:安排线程队列中等待CPU时间的线程被CPU服务,称为线程调度。Java的线程调度采用优先级基础上的“先到先服务”策略。
5 Runnable接口中包括哪些抽象方法?Thread类有哪些主要的域和方法?
解:Runnable接口中只有一个抽象方法run()。Thread类的主要方法有run(), start(),sleep(),isAlive()等。