Java面向对象程序设计试题一Word文档格式.docx
《Java面向对象程序设计试题一Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计试题一Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
Bgoodandgbc
Ctestokandabc
Dtestokandgbc
A5、运行下列程序,会产生什么结果()
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("
thisisrun()"
}
publicstaticvoidmain(Stringargs[])
{
Threadt=newThread(newX());
t.start();
A第一行会产生编译错误
B第六行会产生编译错误
C第六行会产生运行错误
D程序会运行和启动
A6、要从文件"
file.dat"
文件中读出第10个字节到变量C中,下列哪个方法适合?
()
AFileInputStreamin=newFileInputStream("
file.dat"
in.skip(9);
intc=in.read();
BFileInputStreamin=newFileInputStream("
in.skip(10);
CFileInputStreamin=newFileInputStream("
DRandomAccessFilein=newRandomAccessFile("
intc=in.readByte();
7、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?
()
ACardLayout
BFlowLayout
CBorderLayout
DGridLayout
C8、给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
那个语句是正确的?
A编译时将产生错误;
B编译时正确,运行时将产生错误;
C输出零;
D输出空。
9、哪个关键字可以对对象加互斥锁?
()
Atransient
Bsynchronized
Cserialize
Dstatic
10、下列哪些语句关于内存回收的说明是正确的?
A程序员必须创建一个线程来释放内存;
B内存回收程序负责释放无用内存
C内存回收程序允许程序员直接释放内存
D内存回收程序可以在指定的时间释放内存对象
二、多项选择题
AB1、下面哪些标识符在Java语言中是合法的?
Apersons$
BTwoUsers
C*point
DinstanceofF.end-line
BD2、下面哪些代码片段会产生编译错误?
AStrings="
Gonewiththewind"
Stringt="
good"
Stringk=s+t;
BStrings="
Stringt;
t=s[3]+"
one"
CStrings="
Stringstandard=s.toUpperCase();
DStrings="
homedirectory"
Stringt=s-"
directory"
.
AD3、下面哪些赋值语句是错误的?
Afloatf=11.1;
Bdoubled=5.3E12;
Ccharc='
\r'
Dbytebb=433;
4、给定下面的代码片段:
publicvoidTest(){
try{
method();
System.out.println("
HelloWorld"
}
catch(ArrayIndexOutOfBoundsExceptione)
{
System.out.println("
Exception?
"
}
catch(Exceptione)
Exception1"
finally{
Thankyou!
}
如果函数method正常运行并返回,会显示下面的哪些信息?
AHelloWorld
BException
CException1
DThankyou!
ACD5、下列哪些语句是正确的?
Ainta[][]=newint[][3];
Binta[][]={{1,3},{2,3,4},{1,2}};
CStrings[][]=newString[2][];
DStrings[][]={{"
can"
"
I"
},{"
help"
you"
}}
BC6、下面哪些语句能够正确地生成5个空字符串?
AStringa[]=newString[5];
for(inti=0;
i<
5;
a[i++]="
BStringa[]={"
"
CStringa[5];
DString[5]a;
BC7、下面关于Java代码安全的说法哪些是正确的?
A程序执行过程中需要的所有类都是通过字节码校验程序装入的。
B代码的运行是由Java运行环境中的解释器完成的。
C在运行时,字节码要经过装入,校验之后,才能在解释器中执行。
D在缺省的安全配置条件下,JavaApplet不能访问任何本地资源。
AC8、下列方法属于java.lang.Math类的有(方法名相同即可):
Arandom()
Babs()
Csqrt()
Dsin()
CD9、下列表达式哪些是正确的:
Abyte=340;
BBoolean=1;
Clongl=-2;
BC10、下面的说法正确的是:
AJava语言里的线程不是对象
BApplet不需要main方法
CJava语言的对象都是java.lang.Object的子类
Ddouble是Java语言的合法标识符
三、填空题
1、执行下列代码后的结果是什么?
intx,a=2,b=3,c=4;
x=++a+b+++c++;
2、包包含了Collection的接口和类的API。
3、main方法的声明格式包括
4、下列程序中构造了一个SET并且调用其方法add(),输出结果是。
publicclassA{
publicinthashCode(){return1;
publicBooleanequals(Objectb){returntrue}
publicstaticvoidmain(Stringargs[]){Setset=newHashSet();
set.add(newA());
System.out.println(set.size());
5、下列程序的运行结果是。
classA{
classDog{
privateStringname;
privateintage;
publicintstep;
Dog(Strings,inta)
{
name=s;
age=a;
step=0;
}
publicvoidrun(Dogfast)
fast.step++;
}
}
publicstaticvoidmain(Stringargs[])
Aa=newA();
Dogd=a.newDog("
Tom"
3);
d.step=25;
d.run(d);
System.out.println(d.step);
四、编程题
1、编写一个输出"
HelloWorld!
的程序,用两种方式实现(Application、Applet)。
2、打印输出10行杨晖三角形
3、有下面一段Server段程序,目的是能够同时服务多个客户,客户的请求是一句话(一个String)。
如果这个请求的内容是字符串"
plain"
的话,服务器仅将"
hello"
字符串返回给用户。
否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"
Memo.txt"
),并向用户返回"
OK"
。
注意Server并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。
Server的程序如下文件Server.java:
publicclassServer{
publicstaticvoidmain(Stringargs[]){
MemoControllermemoController=newMemoController();
try{
ServerSocketss=newServerSocket(1999);
while(true){
Sockets=ss.accept();
try{
UserThreadt=newUserThread(s,memoController);
t.start();
}catch(Exceptione){
e.printStackTrace();
}
}
}catch(Exceptione){
e.printStackTrace();
}finally{
memoController.close();
}
}
}
类UserThread程序如下:
文件UserThread.java:
publicclassUserThreadextendsThread{
Sockets;
MemoControllermemo;
publicUserThread(Sockets,MemoControllermemo){
this.s=s;
this.memo=memo;
publicvoidrun(){
BufferedReaderbr=newBufferedReader(newInputStreamReader(s.getInputStream()));
PrintWriterpw=newPrintWriter(newOutputStreamWriter(s.getOutputStream()));
Stringreq=br.readLine();
if(req.equals("
)){
pw.println("
}else{
memo.append(req);
}
pw.flush();
pw.close();
br.close();
s.close();
}catch(Exceptione){
e.printStackTrace();
}
请根据题目的要求和现有的Server.java,UserThread.java的程序完成类MemoController.java的程序。
4、用输入/输出写一个程序,让用户输入一些姓名和电话号码。
每一个姓名和号码将加在文件里。
用户通过点"
Done"
按钮来告诉系统整个列表已输入完毕。
如果用户输入完整个列表,程序将创建一个输出文件并显示或打印出来。
格式如:
555-1212,Tom123-456-7890,PeggyL.234-5678,Marc234-5678,Ron876-4321,Beth&
Brian33.1.42.45.70,Jean-Marc
5、编写一个应用程序,创建三个线程分别显示各自的时间。
第一题:
publicstaticvoidmain(String[]args){
String[]fileNames={"
abc.txt"
bcd.exe"
"
cde.exe"
def.dat"
efg.exe"
};
for(StringfileName:
fileNames){
if(fileName.endsWith("
.exe"
)){
System.out.print(fileName.substring(0,fileName.lastIndexOf("
))+"
"
}
}
}
fileName.endsWith("
)判断是否已"
结尾
substring(0,4)截取0-3的字符串,不包含4
lastIndexOf("
)获取"
最后一次出现的位置
答案:
bcdcdeefg
第二题:
publicstaticvoidgo(Longn){
System.out.println("
Long"
publicstaticvoidgo(Shortn){
Short"
publicstaticvoidgo(intn){
int"
publicstaticvoidmain(String[]args){
shorty=6;
longz=7;
go(y);
go(z);
虽然y是short型的,但是编译器把它转换为int型
intLong
第三题:
publicstaticvoidmain(String[]args){
Stringtest="
TestA.TestB.TestC."
Stringregex="
\\.\\s*"
String[]result=test.split(regex);
for(Strings:
result)
System.out.print(s+"
TestATestBTestC
第四题:
publicclassAA{
privateLonguserId;
privateStringnickName;
publicLonggetUserId(){
returnuserId;
publicvoidsetUserId(LonguserId){
this.userId=userId;
publicStringgetNickName(){
returnnickName;
publicvoidsetNickName(StringnickName){
this.nickName=nickName;
publicstaticvoidmain(String[]args){
AAm1=newAA();
m1.setUserId(newLong(100001));
m1.setNickName("
mick"
AAm2=newAA();
m2.setUserId(newLong(100001));
m2.setNickName("
System.out.println(m1==m2);
System.out.println(m1.equals(m2));
equals方法返回值也是returnm1==m2
falsefalse
第五题
运行下列代码,输出为false的是:
()。
A.Stringst1="
abc"
System.out.println("
==st1);
st2=
"
System.out.println(st2.equals(newString("
)));
C.Integeri=100;
System.out.println(100==i);
D.ArrayListlist=newArrayList();
System.out.println(list.contains(null));
答案:
D
第六题
publicinterfaceCookie{
Cookiecookie=newCart("
小面包"
盼盼"
}
publicclassCartimplementsCookie{
privateStringname;
privateStringproduction;
publicCart(Stringname,Stringproduction){
this.name=name;
this.production=production;
}
publicvoidsmell(){
cookie=newCart("
蛋黄派"
达利园"
final要求属性不可更改cookie=newCart("
这个修改了cookie的地址,所以报错
第七题
(多选)请看下列代码:
publicabstractclassShape{
intx;
inty;
publicabstractvoiddraw();
publicvoidsetAnchor(intx,inty){
this.x=x;
this.y=y;
下列选项中能正确使用Shape类的是:
A.publicclassCircleimplementsShape{privateintradius;
B.publicabstractclassCircleextendsShape{privateintradius;
C.publicclassCircleextendsShape{privateintradius;
publicvoiddraw();
D.publicclassCircleextendsShape{
privateintradius;
publicvoiddraw(){
抽象类不可以实例化,如果一个类继承了抽象类,必须重新其抽象方法
BD
第八题
packagecom.tarena;
publicclassGeodetics{
publicstaticfinaldoubleDIAMETER=12756.32;
访问静态常量DIAMETER的方式正确的是:
A.importcom.tarena.Geodetics;
publicclassTerraCarta{
publicdoublehalfway(){
returnGeodetics.