1 JavaSE考试题参考答案.docx

上传人:b****5 文档编号:7629075 上传时间:2023-01-25 格式:DOCX 页数:14 大小:21.22KB
下载 相关 举报
1 JavaSE考试题参考答案.docx_第1页
第1页 / 共14页
1 JavaSE考试题参考答案.docx_第2页
第2页 / 共14页
1 JavaSE考试题参考答案.docx_第3页
第3页 / 共14页
1 JavaSE考试题参考答案.docx_第4页
第4页 / 共14页
1 JavaSE考试题参考答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

1 JavaSE考试题参考答案.docx

《1 JavaSE考试题参考答案.docx》由会员分享,可在线阅读,更多相关《1 JavaSE考试题参考答案.docx(14页珍藏版)》请在冰豆网上搜索。

1 JavaSE考试题参考答案.docx

1JavaSE考试题参考答案

JavaSE考试题(时间150分钟)

一.选择题(75分)

1.在Java中负责对字节码解释执行的是(B)

A.垃圾回收器

B.虚拟机

C.编译器

D.多线程机制

2.BufferedReader的父类是(B)

A.FileReader

B.Reader

C.PipedReader

D.InputStreamReader

3.在读字符文件Post.dat时,使用该文件作为参数的类(A)

A.BufferedReader

B.DataInputStream

C.DataOutputStream

D.FileInputStream

4.下列不是InputStream子类的是(C)

A.FileInputStream

B.ObjectInputStream

C.CharInputStream

D.ZipInputStream

5.下列方法中可以用来创建一个新线程的是(D)

A.实现java.lang.Runnable接口并重写start()方法

B.实现java.lang.Runnable接口并重写run()方法

C.继承java.lang.Thread类并重写start()方法

D.继承java.lang.Thread类并重写run()方法

6.当启动Applet程序时,首先调用的方法是(B)

A.stop()

B.init()

C.start()

D.destroy()

7.序列化一个类时,如果要隐藏某个成员,使之在反序列化时不能看到搞成员的真实

数据,应当使用的关键字是(C)

A.hiddern

B.private

C.transient

D.destroy

8.将键值对(key--value)保存到映射(Map)对象中的方法是(B)。

A.add(Objectkey,Objectvalue)

B.put(Objectkey,Objectvalue)

C.insert(Objectkey,Objectvalue)

D.get(Objectkey,Objectvalue)

9.一个javaApplication运行后,在系统中是作为一个(B)

A.线程

B.进程

C.进程或线程

D.不可预知

10.下列关于线程调度的叙述中,错误的是:

(D)

A.调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会

B.调用线程的yield()方法,只会使与当前线程相同优先级的线程获得运行机会

C.当有比当前线程优先级高的线程出现时,高优先级的线程将抢占CPU并运行

D.具有相同优先级的多个线程的调度一定是分时的.

11.下列关于线程优先级别的说法中,正确的是(C)

A.线程的优先级是不能改变的

B.线程的优先级在创建线程时设定

C.在创建线程后的任何时候都可以设置

D.B,C

12.实现一个线程的创建方法有几种(B)

A.一种

B.二种

C.三种

D.四种

13.下列关于泛型的说法,错误的是(B)

A、泛型是一种参数化类型

B、可以取代继承机制。

C、避免了运行时进行类型转换可能的潜在性错误

D、增强了程序的灵活性和安全性

14.以下那个是java.io包中一个兼有输入输出功能的类(C)

A.Object

B.Serializable

C.RandomAccessFile

D.Java.io中不存在这样的类

15.要串行化某些类的对象,这些类就必须实现(A)

A.Serializable接口

B.java.io.Comparable接口

C.java.io.DataImput接口

D.DataOutput接口

16.Oracle数据库的JDBC驱动程序类名及其完整包路径为(D)

A.jdbc.driver.oracle.OracleDriver

B.jdbc.oracle.driver..OracleDriver

C.driver.oracle.jdbc.OracleDriver

D.oracle.jdbc.driver.OracleDriver

17.下列数组a中,能够在程序运行时动态调整大小的是(C)

A.int[]a

B.String[]a

C.A=newArrayList()

D.A=newArray()

18.在Java图形用户界面编程中,若显示一些不需要用户修改的文本信息

一般使用(A)类的对象来实现

A.Label

B.Button

C.TextArea

D.TestField

19.WindowListener接口中,可以实现窗口关闭功能的方法是(A)

A.PublicvoidwindowClosing(WindowEvente);

B.PublicvoidwindowOpened(WindowEvente);

C.PublicvoidwindowClosed(WindowEvente);

D.PublicvoidwindowDeactivated(WindowEvente);

20.Panel默认的布局管理器是(C)

A.GridLayout

B.BorderLayout

C.FlowLayout

D.CardLayout

21.容器Frame使用的缺省布局编辑策略是(B)。

A.FlowLayout

B.BorderLayout

C.GridLayout

D.CardLayout

22.Socket类的那个方法返回Socket对象绑定的本地端口(B)

A.getPort()

B.getLocalPort()

C.getRemotePort()

D.不存在这样的方法,因为Socket对象绑定的本地端口对程序是透明的。

23.默认情况下,SocketChannel处于什么模式(A)

A.阻塞模式

B.非阻塞模式

24.对于以下代码:

intn=socketChannel.read(byteBuffer);//假设n>=0

byteBuffer.flip();

假定执行socket.read(byteBuffer)方法前,byteBuffer的容量、极限和位置分别为

c,1,p,则执行完以上代码后,byteBuffer的容量、极限和位置分别是多少?

(B)

A.容量为c、极限为1,位置为p+n

B.容量为c、极限为p+n,位置为0

C.容量为l、极限为p+n,位置为0

D.容量为c、极限为p+n,位置为p+n

25.在服务器程序中,线程在那些情况下可能会进入阻塞状态?

多选(CDE)

A.线程执行Socket的getInputStream()方法获得输入流

B.线程执行Socket的getOutputStream()方法获得输出流

C.线程执行ServerSocket的Accept()方法

D.线程执行Socket的输入流读取数据

E.线程执行Socket的输出流写一批数据

26.ServerSocketChannel可能会发生那个事件(A)

A.SelectionKey.OP_ACCEPT接收连接就绪事件

B.SelectionKey.OP_CONNECT连接就绪事件

C.SelectionKey.OP_READ读就绪事件

D.SelectionKey.OP_WRITE写就绪事件

27.SocketChannel可能会发生那个事件(多选)(BCD)

A.SelectionKey.OP_ACCEPT接收连接就绪事件

B.SelectionKey.OP_CONNECT连接就绪事件

C.SelectionKey.OP_READ读就绪事件

D.SelectionKey.OP_WRITE写就绪事件

28.下列程序的功能是在控制台上,每隔1秒钟显示字符串”Hello”,能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是(A)

publicclassTestimplementsRunnable{

publicstaticvoidmain(String[]args){

Testt=newTest();

Threadtt=newThread(t);

tt.start();

}

publicvoidrun(){

for(;;){

try{

__________

}

catch(_________e){}

System.out.println(“Hello”);

}

}

}

A.Thread.sleep(1000)InterruptedException

A.sleep(1000)InterruptedException

B.t.sleep(1000)InterruptedException

C.Thread.sleep(1000)RuntimeException

  

29.集合类保存在类包( A)

Ajava.util

Bjava.io

Cjava.lang

Djava.text

30.线程实现同步方法的关键字是(A)

A.synchronized

B.asynchronized

C.lock

D.locked

二.填空(40分)

1.集合分为___Collection___________和___Map________两个最顶端的接口。

2.获得集合中元素总数的方法是_size()_______。

3.线程在生命周期中要经历5种状态,分别是

新建状态、_可运行状态(或就绪状态)_、_正在运行状态__、阻塞状态和___死亡状态__。

4.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明头:

___publicMyFrameextendsFrame_________

5.下面的类RandomEx从Random扩展,并为其添加一个publicintnextInt(intmin,intmax)方法,以便产生min---max之间的随机数(包含下限min,但不包含上限max),试填空实现这个功能。

classRandomExextendsRandom{

publicintnextInt(intmin,intmax){

intresult=nextInt(max-min)+(min);

return(result);

}

}

6.设表student的结构如下:

namevarchar2(30),

ageint,

salarynumber(6,2)

连接对象为conn,

StringsqlUpdate="UPDATEstudetSETsalary=?

age=?

WHEREname=?

";

现要修改name=”东方人华”这个人的age=25,salary=3546.8,

写出用PreparedStatement执行sqlUpdate语句的相关代码(按执行顺序)

PreparedStatementps=null;

_ps=conn.prepareStatement(sqlUpdate)_______________;

__ps.setDouble(1,3546.8)________________________;

__ps.setInt(2,25)___________________________;

___ps.setString(3,”东方人华”)_________________;

intaffectRow=ps.executeUpdate();//执行,并返回影响的行数

7.假设数组PPM中存放过去100天某地大气污染指数,下列方法计算过去100天该污染指数

每天在10以上(含10),并且连续出现3天以上(含3天)的次数

//例如:

int[]PPM={5,2,10,15,16,15,3,5,6,17,18,17,20,31,20};应当返回2

请将程序补充完整。

staticpublicintPpmCount(int[]PPM)

{

finalintPpmValue=10;//污染指数临界值

finalintConDays=3;//连续出现的天数界限值

intTempConDays=0;

intGreatDays=0;//累计满足条件的天数

intLength=PPM.length;

for(inti=0;i

{

if(PPM[i]>=PpmValue)

TempConDays+=1;//次数+1

else

{

if(TempConDays>=ConDays)

GreatDays++;

(TempConDays=0);

}

}

if(TempConDays>=ConDays)

GreatDays++;

return(GreatDays);

}

8.下列方法convertToBinary()使用链式列表将十进制数n转换为二进制数,

试填空完成之。

publicclassTestConvert{

publicStringconvertToBinary(intn){

LinkedListstack=newLinkedList();

intm=n;

while(m!

=0){

intremainder=(m%2)

charc=(char)('0'+remainder);

stack.addFirst(Character.valueOf(c));

m=(m/2);

}

Iteratorit=stack.iterator();

StringBuffersb=newStringBuffer();

while(it.hasNext()){

charc=(Character)it.next();

sb.append(c);

}

returnsb.toString();

}

}

三.编程题(35分)

1.设计一个线程,使得字符串”大连是一个美丽的海滨城市”每隔1秒钟输出一个字符。

运行结果如下:

(多行输出)

大连

大连是

……

大连是一个美丽的海滨城市

参考答案:

classWordDisplayextendsThread{

privateStringtext="大连是一个美丽的海滨城市";

publicvoidrun(){

for(inti=1;i<=text.length();i++){

try{

System.out.println(text.substring(0,i));

sleep(1000);//休眠1s

}

catch(InterruptedExceptione){

e.print

}

}

}

}

classWordDisplayimplementsRunnable{

privateStringtext="大连是一个美丽的海滨城市";

publicvoidrun(){

for(inti=1;i<=text.length();i++){

try{

System.out.println(text.substring(0,i));

sleep(1000);//休眠1s

}

catch(InterruptedExceptione){

}

}

}

}

2.编写BankAccount类,要求如下:

A.该类由此款人姓名(Stringname),存款余额(doublebalance),存期(intyear)及年利

率(doublerate)四个数据成员,其中年利率的默认值为0.03.

B.该类有两个重载的构造方法.其中一个构造方法不含参数,设置默认的存款为

10元,存期一年;另一个构造函数包含二个用于创建对象时设置存款额与存期

的参数。

C.该类有三个方法:

存款(save),取款(fetch)及计算存期满后的总金额(calcTotal).

D.创建一个账号fans,创建时即(利用构造函数)存入1000元,存期3年,后又存入

2000元(利用save方法),计算存期满后的总金额(利用calcTotal方法)

参考答案:

publicclassBankAccount{

privateStringname;//姓名(账号)

privatedoublebalance;//存款余额

privateintyear;//存期

privatedoublerate=0.03;//年利率

//构造方法

publicBankAccount(Stringname){

this(name,10.0,1);//默认存款10元,存期1年

}

//构造方法

publicBankAccount(Stringname,doubledeposit,intyear){

this.name=name;

this.balance=deposit;

this.year=year;

}

//存款

publicvoidsave(doubledeposit){

this.balance+=deposit;

}

//取款

publicdoublefetch(doublereduce)throwsException{

if(this.balance>=reduce){

this.balance-=reduce;//余额

returnreduce;

}

else{

thrownewException("不能透支!

");

}

}

//存期满后的总金额

publicdoublecalcTotal(){

doubletotal=balance;

for(inti=1;i<=year;i++){

total=total*(1+rate);

}

returntotal;

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

//测试用

BankAccountfans=newBankAccount("fans",1000,1);

fans.save(2000);

doubletotalMoney=fans.calcTotal();

System.out.println("totalMoney==>"+totalMoney);

}

}

附加题(选作):

3.编写一个加密类Ecryption,在其中实现对字符串的加密和解密方法。

加密原理是:

加密后的字符串的第一个字符是原字符串的最后一个字符,其余的每个字符是对应的原字符串中的前一个字符的值加上3。

比如:

“welcome“,末尾的字符为’e’

“welcom“依次加上3后成为“zhofrp“,故加密后的结果为“ezhofrp“

参考答案:

classEcryption{

//加密方法:

输入明文,返回密文

publicStringencrypt(Stringsource){

//加密代码

}

//解密方法:

输入密文,返回明文

publicStringdecrypt(Stringdest){

//解密代码

}

}

publicclassEncryptDecrypt{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Stringsource="Apple12大连";

Stringdest=encrypt(source);

System.out.println(source+"加密==>"+dest);

StringresultSource=decrypt(dest);

System.out.println(dest+"解密==>"+resultSource);

}

//加密函数

staticpublicStringencrypt(Stringstr){

StringBuilderresult=newStringBuilder(str.substring(str.length()-1));//取最后一个字符放到结果字符串的开头

for(inti=0;i

charc=(char)(str.charAt(i)+3);//取出第i个字符;

result.append(c);

}

returnresult.toString();

}

//解密函数

staticpublicStringdecrypt(Stringstr){

StringBuilderresult=newStringBuilder();//取最后一个字符放到结果字符串的开头

for(inti=1;i

charc=(char)(str.charAt(i)-3);//取出第i个字符;

result.append(c);

}

result.append(str.charAt(0));//原来第一个字符到现在最后一个字符

returnresult.toString();

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1