java字符串特性练习答案文档格式.docx
《java字符串特性练习答案文档格式.docx》由会员分享,可在线阅读,更多相关《java字符串特性练习答案文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
Strings=”ABCD”;
s.concat(“E”);
s.replace(‘C’,’F’);
System.out.println(s);
A)ABCDEFB)ABFDEC)ABCDED)ABCD
6.下面的语句序列执行完后,n的值是(D)
intn=0;
StringTokenizerst=newStringTokenizer("
IwondershouldIgo,orshouldIstay?
"
);
while(st.hasMoreTokens())
{n++;
Stringss=st.nextToken();
}
A)9B)10C)11D)8
7.下面的语句序列执行完后,n的值是(A)
Stringstr=”Iwonder,what?
”;
StringTokenizerstr2=newStringTokenizer(str,“,?
”);
while(str2.hasMoreTokens())
{str2.nextToken();
System.out.println(“n=”+n);
A)2B)3C)4D)5
二填空题。
1定义数组:
charcharArray[]={‘a’,’b’,’c’,’d’,’e’,’f’};
则String.valueOf(charArray,2,3)的结果是cde。
2.下面语句序列输出结果是pro。
Strings=newString(“javaprogram!
System.out.println(s.substring(5,8));
3.下面语句输出结果是1234abcdef5。
StringBufferbuf1;
Stringstr=”12345”;
buf1.insert(4,charArray);
System.out.println(buf1.toString());
4.如有以下赋值语句:
x=newStringBuffer().append(“a”).append(4).append(“c”).toString;
x的类型是StringBuffer;
它的值是a4c。
5.下面程序的功能是统计以“st”开头的字符串有多少个,完成下面程序填空。
publicclassClass1
{
publicstaticvoidmain(Stringargs[])
Stringstrings[]={“string”,”starting”,”strong”,”street”,”soft”};
intcont=0;
for(inti=0;
i<
strings.length;
if(strings[i].startsWith(“str”))
System.out.println(cont);
}
第九章多线程机制
一、判断题
1.如果线程死亡,它便不能运行。
(T)
2.在Java中,高优先级的可运行线程会抢占低优先级线程。
(T)
3.一个线程在调用它的start方法之前,该线程将一直处于出生期。
(T)
4.当调用一个正在进行线程的stop()方法时,该线程便会进入休眠状态。
(F)
5.一个线程可以调用yield方法使其他线程有机会运行。
6.线程可以调用yield方法使低优先级的线程运行。
(F)
二、选择题
1.Java语言中提供了一个▁D▁线程,自动回收动态分配的内存。
A异步
B消费者
C守护
D垃圾收集
2.Java语言避免了大多数的▁▁C▁▁错误。
A数组下标越界
B算术溢出
C内存泄漏
D非法的方法参数
3.有三种原因可以导致线程不能运行,它们是▁ACD▁▁▁。
A等待
B阻塞
C休眠
D挂起及由于I/O操作而阻塞
4.当▁A▁方法终止时,能使线程进入死亡状态。
Arun
BsetPrority
Cyield
Dsleep
5.用▁B▁方法可以改变线程的优先级。
6.线程通过▁C▁方法可以使具有相同优先级线程获得处理器。
Arun
7.线程通过▁D▁方法可以休眠一段时间,然后恢复运行。
8.▁B▁方法使对象等待队列的第一个线程进入就绪状态。
Bnotify
9.方法resume()负责重新开始▁D▁线程的执行。
A被stop()方法停止
B被sleep()方法停止
C被wait()方法停止
D被suspend()方法停止
10.▁BCD▁方法可以用来暂时停止当前线程的运行。
Astop()
Bsleep()
Cwait()
Dsuspend()
三、简述题
1.简述程序、进程和线程之间的关系?
什么是多线程程序?
答:
程序是一段静态的代码,它是应用软件执行的蓝本。
进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。
每一个进程都有自己独立的一块内存空间、一组系统资源。
线程是比进程更小的执行单位。
一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每个线程都有其产生、发展和消亡的过程。
2.线程有那5个基本状态?
它们之间如何转化?
简述线程的生命周期。
答案:
线程有“新建”、“就绪”、“阻塞”、“运行”、“死亡”5个基本状态。
线程对象被创建时进入“新建”状态;
程序执行语句启动这个线程后,它进入线程队列排列等待CPU时间片,称为“就绪”状态;
等CPU时间和其他资源齐备时就进入“运行”状态;
线程运行完毕或者被强制终止则进入“死亡”状态。
上述线程各状态之间的转换就构成了线程的基本生命周期。
3.什么是线程调度?
Java的线程调度采用什么策略?
安排线程队列中CPU时间的线程被称为线程调度。
Java的线程调度采用优先级基础上的“先到先服务”策略。
4.如何在Java程序中实现多线程?
在Java程序中实现多线程最关键是要定义子线程的操作,即定义子线程的run()方法。
具体可以通过派生Thread类的子类或实现Runnable接口两种方式来实现。
5.试简述Thread类的子类或实现Runnable接口两种方法的异同?
派生Thread子类时通过重载父类的方法run()来定义子线程的具体操作,然后在主线程中创建并启动该子类的对象为子线程。
实现了Runnable接口的类必须要实现接口中的
run()方法,其中同样定义了子线程的操作。
但是这个方法中的子线程不是Thread子类的对象,而是Thread类的对象;
在创建Thread类对象时把实现了Runnable接口和run()方法的类作为参数传递给该对象,从而规定它的具体操作。
四、编程题
1.利用多线程技术编写Applet程序,其中包含一个滚动的字符串。
字符串从左向右运动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。
[Xianch.java]
importjava.awt.*;
importjava.applet.*;
publicclassXianchextendsAppletimplementsRunnable
{
finalStringrollingMessage="
SAILING,SAILING,IAMSAILING..."
;
Threadm_Draw=null;
intbeginX;
publicvoidinit()
{
m_Draw=newThread(this);
}
publicvoidpaint(Graphicsg)
{
g.drawString(rollingMessage,beginX,40);
publicvoidstart()
m_Draw.start();
try{
Thread.sleep(50);
}catch(InterruptedExceptione){}
publicvoidstop()
if(m_Draw.isAlive())
m_Draw.stop();
publicvoidrun()
try
while(true)
beginX=++beginX%getWidth();
repaint();
Thread.sleep(100);
catch(InterruptedExceptione)
第七章图形用户界面
1.BorderLayout是面板的缺省布局管理器。
2.当鼠标指针位于一个GUI构件的边上时,发生一个MouseOver事件。
3.一个面板(Panel)不能被加入到另一个面板(Panel)中。
4.在BorderLayout中,添加到NORTH区的两个按钮将并排显示。
5.在使用BorderLayout时,最多可以使用5个构件。
6.Swing构件经常被称为轻量构件。
7.在GUI上输出文本或提示信息的方法是使用标签。
8.为了处理图形用户界面的事件,程序员必须注册一事件监听器。
9.用户在TextField输入数据后键入回车键,可以激活一个事件。
11.程序员在创建一个Frame时,至少必须创建一个菜单,并将它加入Frame中。
1.鼠标被移动时会调用▁C▁方法,并且注册一个事件监听器处理此事件。
AactionPerformed
BaddItemListener
CmouseMove
Dadd
2.用户不能修改的文本是▁D▁。
Aword文档
Btxt文档
C可编辑的
D不可编辑的
3.▁D▁用来在Container上排列GUI构件。
ABorderLayout类
BComponent类
C事件控制
D布局管理器
4.为添加一个构件的add方法是▁C▁类方法。
ABorderLayout
BComponent
CContainer
DButtonGroup
5.使用方法▁B▁为构件容器设置布局管理器。
BsetLayout
DComponent
6.GUI是▁D▁的缩写。
A布局管理器
B资源管理器
C用户界面布局
D图形用户界面
7.当构件中按钮的位置可以被自动调整,应使用哪种布局管理器:
B
BFlowLayout
CCardLayout
DGridLayout
8.使用▁B▁类创建菜单对象。
ADimension
BJMenu
CJMenuItem
DJTextArea
9.使用▁D▁方法创建菜单中的分隔条。
AsetEditable
BChangeListener
Cadd
DaddSeparator
10.向JTextArea的▁A▁方法传递false参数可以防止用户修改文本。
11.下面哪个布局管理器是非法的:
C
AFlowLayout
BBorderLayout
CCardBagLayout
12.实现下列哪个接口可以对TextField对象的事件进行监听和处理?
___C_
AMouseMotionListener
BFocusListener
CActionListener
DWindowListener
13.Frame的默认的布局管理器是下列哪一个?
_D___
BCardLayout
CGridLayout
DBorderLayout
14.请问如下哪个方法可以将MenuBar加入Frame中?
AsetMenu()
BsetMenuBar()
Cadd()
DaddMenuBar()
三、简述题与编程题
1、文本框与文本区域在创建方法、常用方法和事件响应上有何异同?
什么操作将引发文本事件?
如何响应文本事件?
编写Applet包括一个文本框、一个文本区域和一个按钮,当用户单击按钮时,程序将文本区域中被选中的字符串复制到文本框中。
2、简述Java的事件处理机制,什么是事件源?
什么是监听器?
3、动作时间的事件源可以有哪些?
如何响应动作事件?
异常处理练习题
一、选择题
1.java中用来抛出异常的关键字是
A、tryB、catchC、throwD、finally
2.关于异常,下列说法正确的是
A、异常是一种对象
B、一旦程序运行,异常将被创建
C、为了保证程序运行速度,要尽量避免异常控制
D、以上说法都不对
3.()类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError
4.java语言中,下列哪一子句是异常处理的出口
A、try{…}子句B、catch{…}子句
C、finally{…}子句D、以上说法都不对
5.下列程序的执行,说法正确的是
publicclassMultiCatch
publicstaticvoidmain(Stringargs[])
try
inta=args.length;
intb=42/a;
intc[]={1};
c[42]=99;
System.out.println(“b=”+b);
catch(ArithmeticExceptione)
System.out.println(“除0异常:
”+e);
catch(ArrayIndexOutOfBoundsExceptione)
System.out.println(“数组超越边界异常:
A、程序将输出第15行的异常信息
B、程序第10行出错
C、程序将输出“b=42”
D、程序将输出第15和19行的异常信息
6.下列程序的执行,说法正确的是
classExMulti{
staticvoidprocedure(){
try{
intc[]={1};
c[42]=99;
}
catch(ArrayIndexOutOfBoundsExceptione){
System.out.println(“数组超越界限异常:
publicstaticvoidmain(Stringargs[]){
procedure();
inta=args.length;
intb=42/a;
System.out.println(“b=”+b);
}catch(ArithmeticExceptione){
System.out.println(“除0异常:
A、程序只输出第12行的异常信息
B、程序只输出第26行的异常信息
C、程序将不输出异常信息
D、程序将输出第12行和第26行的异常信息
7.下面程序抛出了一个“异常”并捕捉它。
请在横线处填入适当内容完成程序。
classTrowsDemo
staticvoidprocedure()throwsIllegalAccessException
System.out.println(“insideprocedure”);
throw____new___IllegalAccessException(“demo”);
procedure();
___catch(IllegalAccessExceptione)________
System.out.println(“捕获:
8.对于catch子句的排列,下列哪种是正确的()
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序段内
D、先有子类,其他如何排列都无关
9.在异常处理中,如释放资源、关闭文件、关闭数据库等由()来完成。
A、try子句 B、catch子句
C、finally子句 D、throw子句
10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的()
A、捕获异常 B、抛出异常
C、声明异常 D、嵌套异常
11.哪个关键字可以抛出异常?
A、transientB、finallyC、throw D、static
12.一个异常将终止()
A、整个程序 B、只终止抛出异常的方法
C、产生异常的try块 D、×
上面的说法都不对
二、填空题
1、catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与__异常____对象的类进行匹配。
2、java虚拟机能自动处理_____RuntimeException_______异常。
XX文库-让每个人平等地提升自我3、捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-__finally____语句捕获并处理。
4、java语言认为那些可预料和不可预料的出错称为____Throwable___
5、按异常处理不同可以分为运行异常、捕获异常、声明异常和__自定义异常____几种。
6、抛出异常、生成异常对象都可以通过__throws句实现。
7、捕获异常的统一出口通过___finally____语句实现。
8、java语言的类库中提供了一个__Throwable___类,所有的异常都必须是它的实例或它子类的实例。
9、Throwable类有两个子类:
_____Error_____类和Exception类。
10、对程序语言而言,一般有编译错误和____运行_____错误两类。
11、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。
请在横线处填入适当的内容完成程序。
publicclassHelloWorld
inti=0;
Stringgreetings[]=
“Helloworld!
”,
“No,Imeanit!
“HELLOWORLD!
!
”
};
while(i<
4)
___try______
System.out.println(greeting[i]);
____catch____(ArrayIndexOutOfBoundsExceptione)
System.out.println(“Re-settingIndexValue”);
i=-1;
finally
System.out.println(“Thisisalwaysprinted”);
i++;
三、判断题
1.(n)程序中抛出异常时(throw…),只能抛出自己定义的异常对象。
2.(y)一个异常处理中finally语句块只能有一个或者可以没有。
3.(y)异常类对象代表当前出现的一个具体异常。
4.(y)java语言中的所有异常类都是ja