Java面向对象程序设计试题一.docx
《Java面向对象程序设计试题一.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计试题一.docx(26页珍藏版)》请在冰豆网上搜索。
![Java面向对象程序设计试题一.docx](https://file1.bdocx.com/fileroot1/2023-1/26/6035c453-feef-4918-84b9-0abf6fc9490e/6035c453-feef-4918-84b9-0abf6fc9490e1.gif)
Java面向对象程序设计试题一
Java面向对象程序设计试题一
一、单项选择题
D1、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?
()
AArrayListmyList=newObject();
BListmyList=newArrayList();
CArrayListmyList=newList();
DListmyList=newList();
C2、paint()方法使用哪种类型的参数?
AGraphics
BGraphics2D
CString
DColor
D3、指出正确的表达式()
Abyte=128;
BBoolean=null;
Clongl=0xfffL;
Ddouble=0.9239d;
4、指出下列程序运行的结果()。
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
Agoodandabc
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("file.dat");in.skip(10);intc=in.read();
CFileInputStreamin=newFileInputStream("file.dat");intc=in.read();
DRandomAccessFilein=newRandomAccessFile("file.dat");in.skip(9);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="Gonewiththewind";Stringt;t=s[3]+"one";
CStrings="Gonewiththewind";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)
{
System.out.println("Exception1");
}
finally{
System.out.println("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;
Ddouble=0.9239d;
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());
set.add(newA());
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(){
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(s.getInputStream()));
PrintWriterpw=newPrintWriter(newOutputStreamWriter(s.getOutputStream()));
Stringreq=br.readLine();
if(req.equals("plain")){
pw.println("hello");
}else{
memo.append(req);
pw.println("OK");
}
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(".exe"))+"");
}
}
}
fileName.endsWith(".exe")判断是否已".exe"结尾
substring(0,4)截取0-3的字符串,不包含4
lastIndexOf(".exe")获取".exe"最后一次出现的位置
答案:
bcdcdeefg
第二题:
publicstaticvoidgo(Longn){
System.out.println("Long");
}
publicstaticvoidgo(Shortn){
System.out.println("Short");
}
publicstaticvoidgo(intn){
System.out.println("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("mick");
System.out.println(m1==m2);
System.out.println(m1.equals(m2));
}
equals方法返回值也是returnm1==m2
答案:
falsefalse
第五题
运行下列代码,输出为false的是:
()。
A.Stringst1="abc";System.out.println("abc"==st1);
st2=
"abc"System.out.println(st2.equals(newString("abc")));
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.