软件工程师笔试试题(Java)

更新时间:2024-05-19 20:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件工程师笔试试题(JAVA)

一、 填空题 (10分)

1. 执行下列代码后的结果是什么? int x,a=2,b=3,c=4; x=++a+b+++c++; 2. 包包含了Collection的接口和类的API 3. main方法的声明格式包括 4. 下列程序中构造了一个SET并且调用其方法add(),输出结果是 public class A{

public int hashCode(){return 1;}

public Boolean equals(Object b){return true} public static void main(String args[]){

Set set=new HashSet();

set.add(new A()); set.add(new A()); set.add(new A());

System.out.println(set.size()); } }

5. 下列程序的运行结果是 class A{

class Dog{

private String name; private int age; public int step;

Dog(String s,int a) {

name=s; age=a; step=0;

}

public void run(Dog fast) {

fast.step++;

} }

public static void main (String args[]){

A a=new A();

Dog d=a.new Dog(\ d.step=25; d.run(d);

System.out.println(d.step);

} }

二、 选择题 (20分)

1. 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?

A ArrayList myList=new Object(); B List myList=new ArrayList(); C ArrayList myList=new List(); D List myList=new List();

2. paint()方法使用哪种类型的参数?

A Graphics B Graphics2D C String D Color

3. 指出正确的表达式 A byte=128; B Boolean=null; C long l=0xfffL; D double=0.9239d;

4. 指出下列程序运行的结果

public class Example{

String str=new String(\ char[]ch={'a','b','c'};

public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch);

System.out.print(ex.str+\ Sytem.out.print(ex.ch); }

public void change(String str,char ch[]){ str=\ ch[0]='g'; } }

A good and abc

B good and gbc C test ok and abc D test ok and gbc

5. 要从文件\文件中读出第10个字节到变量C中,下列哪个方法适合? A FileInputStream in=new FileInputStream(\

in.skip(9); int c=in.read();

B FileInputStream in=new FileInputStream(\

in.skip(10); int c=in.read();

C FileInputStream in=new FileInputStream(\

int c=in.read();

D RandomAccessFile in=new RandomAccessFile(\

in.skip(9); int c=in.readByte();

6. 容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改

变?

A CardLayout B FlowLayout C BorderLayout D GridLayout

7. 给出下面代码:

public class Person{

static int arr[] = new int[10];

public static void main(String a[]) {

System.out.println(arr[1]); } }

那个语句是正确的?

A 编译时将产生错误;

B 编译时正确,运行时将产生错误; C 输出零; D 输出空。

8. 哪个关键字可以对对象加互斥锁?

A B C D

transient synchronized serialize static

9. 下列哪些语句关于内存回收的说明是正确的?

A B C D

程序员必须创建一个线程来释放内存; 内存回收程序负责释放无用内存 内存回收程序允许程序员直接释放内存 内存回收程序可以在指定的时间释放内存对象

10. 下列代码哪几行会出错:

1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I > 0 ) { 5) j = I * 2;

6) System.out.println (\ 7) k = k + 1; 8) I--; 9) } 10) } A line 4 B line 6 C line 7 D line 8

三、 简答题(40分)

1. 请对Structs的架构进行描述。

2. Servlet有性能安全问题吗?如何使用?

3. 为什么会使用同步控制?其优缺点是什么?

4. Hibernate的组建方式?如何配置?映射是如何实现的?有几种对应关系?

5. 应用开发有哪些种模式?至少写出5种。并请介绍singleon模式的工作方式。

6. HashMap与Hashtable的区别。

7. EJB的几种类型?

8. 在你实施过的项目中哪些是成功的?你认为成功的要素是什么?

四、 编程题(30分)

1. 打印输出10行杨晖三角形。

2. 有下面一段Server段程序,目的是能够同时服务多个客户,客户的请求是一句话(一个 String)。如果这个请求的内容是字符串\的话,服务器仅将\字符串返回给用户。否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为\),并向用户返回\。注意Server并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。 Server的程序如下文件Server.java: public class Server{

public static void main(String args[]){

MemoController memoController = new MemoController(); try{

ServerSocket ss = new ServerSocket(1999); while (true){

Socket s = ss.accept(); try{

UserThread t = new UserThread(s, memoController); t.start();

}catch(Exception e){ e.printStackTrace();

} }

}catch(Exception e){ e.printStackTrace(); }finally{

memoController.close(); } } }

类UserThread程序如下: 文件UserThread.java:

public class UserThread extends Thread{

Socket s;

MemoController memo;

public UserThread (Socket s, MemoController memo){ this.s = s;

this.memo = memo; }

public void run(){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream())); String req = br.readLine(); if (req.equals(\ pw.println(\ }else{

memo.append(req); pw.println(\ }

pw.flush(); pw.close(); br.close(); s.close();

}catch(Exception e){ e.printStackTrace(); } } }

请根据题目的要求和现有的Server.java, UserThread.java的程序完成类MemoController.java的程序。

答案

一、 填空题 (10分)

1. x=10,a=3,b=4,c=5 2. java.util

3. (public)(static)(void)(main)(String args[]) 4. 1 5. 26

二、 选择题 (20分)

1. B 2. A 3. C 4. B 5. A 6. B 7. C 8. B 9. B 10. C

三、 简答题(40分)

1. Struts是一种典型MVC架构,其中M(odel)为模型,V(iew)为视图,即jsp展现层,C(ontrl)为控制层,即action层;这种架构的最大优点就是MVC三层分离,便于开发、维护、扩展;模型--视图--控制器(Model-View-Controller,MVC)体系突出了Servlets和JSP的优点,同时也令它们的缺点最小化。在实现中,用户请求被发送到控制器actionservlet(唯一实例),actionservlet决定请求的性质,并且根据请求的类型传送给合适的action进行处理。action调用相关模型组件完成操作,处理完毕后,结果会发送回actionservlet,actionservlet选择适合的视图显示它。

2. Servlet/JSP技术由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。 3. 为了线程安全要使用同步,优点是保证了数据安全,缺点是降低了性能。 4. Hibernate通过xml配置文件来实现OR映射。

配置是通过编写XML实现的,Hibernate通过配置文件实现JAVA BEAN和数据库的映射。

常见的关系有one-to-one,many-to-one,one-to-many,many-to-many。 5. 略

6. (1)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现

(2)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许

(3)HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。 (4)最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。HashMap的同步问题可通过Collections的一个静态方法得到解决: Map Collections.synchronizedMap(Map m) 这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。 7.

会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean

会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种

实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种 8. 略

四、 编程题(30分)

1.

class yanghui {

public static void main (String args[]) {

int i,j;

int yhlevel=10; int yanghui[][];

System.out.println(\杨晖三角形:\

yanghui=new int[yhlevel][]; for(i=0;i

yanghui[0][0]=1;

for (i=1; i

yanghui[i][0]=1;

for(j=1;j

yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j]; yanghui[i][yanghui[i].length-1]=1; }

for (i=0; i

for(j=0;j

输出结果是: 杨晖三角形: 1

1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1

2.

import java.io.*;

public class MemoController{ FileOutputStream fos; OutputStreamWriter osw; BufferedWriter bw;

public MemoController(){ try{

fos=new FileOutputStream(\ osw=new OutputStreamWriter(fos); bw=new BufferedWriter(osw);

}catch(FileNotFoundException e){}; }

public synchronized void append(String s){ try{

bw.write(s,0,s.length()); bw.flush(); bw.close(); osw.close(); fos.close();

}catch(IOException e){} }

public static void main(String args[]){

MemoController mmc=new MemoController(); mmc.append(\ } }

XXXX感谢您对本套试题的回答,首先请您填写上您的姓名(____________),本套试题将作为XXXX入职的参考,多谢您的重

视。本套试题分三部分:填空题(10分)、选择题(20分),SQL基础题(30)、简答题(20)、综合题(30)。时间60分钟,满分110分。

一、填空题(每题2分,共10分)

1. 索引字段值不唯一,应该使用的索引类型为( 普通索引 )

2. 只有满足联接条件的记录才包含在查询结果中,这种联接为( 内联接 ) 3. E-R模型的组成包括那些元素( 实体 )( 属性 )( 关系 ) 4. 事务所具有的特性有( 原子性 )( 一致性 )( 隔离性 )( 持久性 )

5、结构化程序设计的三种基本逻辑结构是(顺序结构),(选择结构),(循环结构)。 二、选择提 (每题1分,共20分)

1、在删除整表数据,同时保留表结构时,采用( C )的效率比( A )要高;

A. delete

B. drop table C. truncate Table

2、数据库管理系统中,能实现对数据库中的数据进行插入/修改/删除的功能称为(C);

A.数据定义功能

B.数据管理功能

C.数据操作功能

D.数据控制功能

3、24、在关系模型中,实现\关系中不允许出现相同的元组\的约束是通过(B)。

A:候选键 B:主键

C:外键

D:超键

4、数据库管理系统DBMS S是 ( D);

A.信息管理的应用软件 C.管理中的数据库

B.数据库系统+应用程序 D.管理数据的软件

5、关系数据库中,实现表与表之间的联系是通过 (B)。 A、实体完整性规

B、参照完整性规则 D、值域

C、用户自定义的完整性

6、设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员,则部门与职员实体之间的联系类型(B)。 A、m:n

B、1:m

C、m:1

D、1:1

7、设有课程和学生两个实体,每个学生可以选修多个课程,一个课程可以有多名学生选修,则课程与学生实体之间的联系类型( A )。 A、m:n

B、1:m

C、m:1

D、1:1

8、如果一个班只能有一个班长,而且一个班长不能同时担任其它班的班长,班级和班长两个实体之间的关系属于(D)。 A、m:n

B、1:m

C、m:1

D、1:1

9、索引字段值不唯一,应该选择的索引类型为( B )。

A:主索引 B:普通索引 C:候选索引 D:唯一索引

10、如果指定参照完整性的删除规则为\级联\,则当删除父表中的记录时( C )。 A:系统自动备份父表中被删除记录到一个新表中 B:若子表中有相关记录,则禁止删除父表中记录

C:会自动删除子表中所有相关记录

D:不作参照完整性检查,删除父表记录与子表无关

11、设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置\参照完整性规则\,为此要求这两个表( B )。

A:在父表连接字段上建立普通索引,在子表连接字段上建立主索引 B:在父表连接字段上建立主索引,在子表连接字段上建立普通索引 C:在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引 D:在父表和子表的连接字段上都要建立主索引

12、把实体-联系模型转换为关系模型时,实体之间多对多联系在模型中是通过(C)_。

A:建立新的属性来实现 C:建立新的关系来实现 B:建立新的关键字来实现 D:建立新的实体来实现

13、用树形结构来表示实体之间联系的模型称之为(

A. 关系模型

B. 层次模型

B)

C.网状模型 D. 数据模型

14、SQL语句中修改表结构的命令是( C )_。

A:MODIFY TABLE C:ALTER TABLE

B:MODIFY STRUCTURE D:ALTER STRUCTURE

15 、用SQL语句建立表时将属性定义为主关键字,应使用短语( B )。

A:CHECK C:FREE

B:PRIMARY KEY D:UNIQUE

16、SQL实现分组查询的短语是 ( B )。

A:ORDER BY B:GROUP BY

C:HAVING D:ASC

17、数据库系统中采用封锁技术的目的是为了保证( A)

A. 数据的一致性 B. 数据的可靠性 C. 数据的完整性 D. 数据的安全性

18、在数据库设计中,表示用户业务流程的常用方法是(A)

A. DFD B. 程序流程图 C. E-R图 D. 数据结构图

19、为\歌手\表增加一个字段\最后得分\的 SQL 语句是(A)。 A)ALTER TABLE 歌手 ADD 最后得分 F(6,2) B)ALTER DBF 歌手 ADD 最后得分 F 6,2

C)CHANGE TABLE 歌手 ADD 最后得分 F(6,2)

D) CHANGE TABLE 学院 INSERT 最后得分

20、插入一条记录到\评分\表中,歌手号、分数和评委号分别是\、9.9 和\, 正确的 SQL 语句是(C)。

A)INSERT VALUES(\,9.9, \)INTO; 评分(歌手号,分数,评委号)

B)INSERT TO 评分(歌手号,分数,评委号); VALUES(\,9.9,\)

C)INSERT INTO 评分(歌手号,分数,评委号); VALUES(\)

D)INSERT VALUES(\)TO; 评分(歌手号,分数,评委号)

三、SQL基础题( 共30分)

设教学数据库Education有三个关系:

学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) 查询问题:

(1)检索计算机系的全体学生的学号,姓名和性别; 3分 (2)检索学习课程号为C2的学生学号与姓名; 3分 (3)检索选修课程名为“DS”的学生学号与姓名; 3分 (4)检索选修课程号为C2或C4的学生学号; 3分 (5)检索至少选修课程号为C2和C4的学生学号; 3分 (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名;

5分

5分

(8)查询所学课程包含学生S3所学课程的学生学号。 5分

(1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno,Sname,Sex FROM S

WHERE Sdept =’CS’;

(2)检索学习课程号为C2的学生学号与姓名; 1.SELECT Sno,Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’) 2.SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND SC.Cno=‘C2’;

(3)检索选修课程名为“DS”的学生学号与姓名

本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C → SC → S 基本思路:

(1)首先在C表中找出“DS”课程的课程号Cno;

(2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno;

(3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。

SELECT Sno,Sname FROM S

WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS’));

(4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC

WHERE Cno=‘C2’ OR Cno=‘C4’;

(5)检索至少选修课程号为C2和C4的学生学号;

SELECT Sno

FROM SC X,SC Y

WHERE X.Sno=Y.Sno AND X.Cno=‘C2’ AND Y.Cno=‘C4’ ;

(6)检索不学C2课的学生姓名和年龄;

A.SELECT Sname FROM S WHERE Sno NOT IN ( SELECT Sn FROM SC WHERE Cno=‘C2’); 或者

B.SELECT Sname FROM S WHERE NOT EXISTS ( SELECT * FROM SC WHERE SC.Sno=S.Sno AND Cno=‘C2’);

(7)检索学习全部课程的学生姓名;

在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。

SELECT Sname FROM S

WHERE NOT EXISTS (SELECT * FROM C

四、简答题(每题5分,共20分,其中1,2 任选一题,其他必做题) 1. Oracle的索引有几种,各有何用途

唯一索引:索引列的所有值都只能出现一次,即必须唯一 非唯一索引:索引列的值可以重复 函数索引:保存了数据列基于function返回的值 反向索引:转了索引码中的字节,是索引条目分配更均匀,用于减少索引叶的竞争。 位图索引:适合与决策支持系统;做UPDATE代价非常高;非常适合OR操作符的查询;基数比较少的时候才能建位图索引 域索引:主要用于多媒体数据;

2、mysql存储引擎常用的有3种,分别是什么,各自分别有什么特点,应用场景是哪些?

1.1 innoDB 优点: 支持事务管理,崩溃修复能力和并发控制,支持自动增长列,支持外键; 缺点: 读写效率较差,占用数据空间大; 应用场景:适合于对事务完整性要求高,要求并发控制,需要频繁更新,删除等操作的数据库; 1.2 MyISAM 优点: 占用空间小,处理速度快; 缺点: 不支持事务的完整性和并发性; 应用场景:适用于表主要用于插入新纪录和读出记录,对应用完整性和并发性要求低; 1.3 MEMORY存储引擎 优点: 处理速度快; 缺点: 数据易丢失,生命周期短; 应用场景: 适用于读写速度快,对数据安全性要求低,使用相对较小的数据库表; 2. 请描述char,varchar,nvarchar的区别

CHAR:存储定长数据 VARCHAR:存储变长数据 NVARCHAR:存储变长数据, Unicode编码,支持多语言

3. 何为范式,有几种,试列举并简要描述之

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小 第一范式(1NF)实体中的某个属性有多个值时,必须拆分为不同的属性 第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分 第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息

4. 试论Oracle与SQL Server, MYSQL 三类之区别

此题答案可能比较广泛,故不列出标准

五、综合题(每题10分,共30分,第1题必做,其余任选两题)

--以下各题可能存在多种答案,故不列出标准 1. 请以任何语言实现1+2+3+…+100

2. 请以任何语言实现求1-100之间的质数

3. 门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?

4. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问

如何用烧绳的方法来计时一个小时十五分钟呢?

5. 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?

6. 12个球一个天秤,现知道只有一个和其它的重量不同,问用天秤怎样称才能用三次就找到那个球。(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)

7. 在9个点上画10条直线,要求每条直线上至少有三个点?

8. 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?

Java笔试题附答案

一、单项选择题

1.Java是从(B)语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B

2.下列语句哪一个正确(B)

A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B

3.下列说法正确的有(C)

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C

4.提供Java存取数据库能力的包是(A)

A.java.sql B.java.awt C.java.lang D.java.swing 答案:A

5.下列运算符合法的是(A) A.&& B.<> C.if D.:= 答案:A

6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1;

}while(a>0);

后,C的值是(C)

A.0 B.1 C.-1 D.死循环 答案:C

7.下列哪一种叙述是正确的(D)

A. abstract修饰符可修饰字段、方法和类(不能修饰字段) B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D

8.下列语句正确的是(A)

A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰

C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A

9.下列哪种说法是正确的(D)

A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题

1.Java程序的种类有(BCD)

A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有(CDB)

A.环境变量可在编译source code时指定

B.在编译程序时,所能指定的环境变量不包括class path C. javac一次可同时编译数个Java源文件

D. javac.exe能指定编译结果要置于哪个目录(directory) 答案:BCD

3.下列标识符不合法的有(ACD)

测试题(笔试)

Java 面向对象

重庆足下科技有限公司

不定项选择题(40题,每题2.5分,总分100分,测试时间2小时)

1)

当试图编译并运行下面程序时会出现什么结果()(单选)

class A{

public int getNumber(int a){ return a+1; } }

class B extends A{

2)

public int getNumber(int a, char c){ return a+2; }

public static void main(String[] args){ B b=new B();

System.out.println(b.getNumber(0)); } } a) 编译错误 b) 运行错误

1 c)

2 d)

3) 4)

当编译并运行下面程序时会出现什么结果( )(单选)

public class MyAr{

public static void main(String argv[]){ int[] i = new int[5];

System.out.println(i[5]); } }

a) 编译错误 b) 运行错误 c) 输出0 d) 输出“null”

final、finally、finalize三个关键字的区别是()(多选) a) final是修饰符(关键字)可以修饰类、方法、变量 b) finally在异常处理的时候使用,提供finally块来执行任何清除操作 c) finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做

必要的清理工作

d) finally和finalize一样都是用异常处理的方法

当编译并运行下面程序时会发生什么结果()(单选) public class Bground extends Thread{

public static void main(String argv[]){ Bground b = new Bground(); b.run(); }

public void start(){

for (int i = 0; i <10; i++){

System.out.println(\ } }

5) 6)

a) b) c) d)

}

编译错误,指明run方法没有定义 运行错误,指明run方法没有定义 编译通过并输出0到9 编译通过但无输出

在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。(单选)

Final a)

Static b)

Abstract c)

Void d)

当编译并运行下面程序时会发生什么结果:(单选)

public class Hope{

public static void main(String argv[]){ Hope h = new Hope(); }

protected Hope(){

for(int i =0; i <10; i ++){ System.out.println(i); } } }

a) 编译错误,构造方法不能被声明为protected b) 运行错误,构造方法不能被声明为protected c) 编译并运行输出0到10 d) 编译并运行输出0到9 下列说法正确的是?()(多选) a) 数组有length()方法 b) String有length()方法 c) 数组有length属性 d) String有length属性

当编译并运行下面程序时会发生什么结果?( )(单选) public class Test{

7) 8)

9)

a) b) c) d)

public static void stringReplace(String text){ text=text+”c”; }

public static void bufferReplace(StringBuffer text){ text=text.append(\ }

public static void main(String args[]){ String textString=new String(\

StringBuffer textBuffer=new StringBuffer(\ stringReplace(textString); bufferReplace(textBuffer);

System.out.println(textString+textBuffer); } }

编译并运行输出javac javac 编译并运行输出java java 编译并运行输出java javac 编译并运行输出 javac java

10)

以下哪些表达式返回为真()(多选) String a=”My field1”;

String b=”My field1”;

String c=new String(”My field1”); String d=new String(”My field1”); a ==b a)

a==c b)

c==d c)

a.equals(b) d)

a.equals(c) e)

c.equals(d) f)

当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情( )

(单选) public class MyAr{

public static void main(String argv[]) { MyAr m = new MyAr(); m.amethod(); }

public void amethod(){ int i;

System.out.println(i); }

11)

a) b) c) d)

}

编译并输出0 编译错误

编译并输出null 运行错误

12) 13)

给定如下java代码程序片断: class A{ public A(){ System.out.println(“A”); } } class B extends A{ public B(){ System.out.println(“B”); } public static void main(String[] args){ B b=new B(); } }

上述程序将()(单选) a) 不能通过编译 b) 通过编译,输出为AB c) 通过编译,输出为B d) 通过编译,输出为A 关于线程,以下说法正确的是:()(多选) a) sleep方法执行时会释放对象锁。 b) wait方法执行时会释放对象锁。 c) sleep方法必须写在同步方法或同步块中 d) wait方法必须写在同步方法或同步块中

给定JAVA代码如下,编译运行后,输出结果是()(单选) public class test{

static int i;

public int test(){ i++; return i; }

public static void main(String args[]){

14)

a) b) c) d)

Test test=new Test(); test.test();

System.out.println(test.test()); } } 0 1 2 3

15) 16) 17) 18)

给定JAVA代码如下,关于super的用法,以下描述正确的是( )(单选) class C extends B

{

public C() {

super(); } }

a) 用来调用类B中定义的super()方法 b) 用来调用类C中定义的super()方法 c) 用来调用类B中的无参构造方法 d) 用来调用类B中第一个出现的构造方法 哪些是Thread类中本身的方法(不包括继承) ( )(多选)

start() a)

sleep(long mi) b)

wait() c)

notify() d)

下面哪些为真()(多选)

a) 接口里可定义变量,并且变量的值不能修改 b) 任何情况下,类都不能被private修饰 c) 类可以被protected修饰 d) 接口不能实例化 下面哪些是正确的描述了关键字synhronized ( )(单选) a) 允许两个进程并行运行但其之间相互通信 b) 保证任何时候只有一个线程访问一个方法或对象 c) 保证两个或多个进程同时启动和结束 d) 保证两个或多个线程同时启动和结束 下列哪一种叙述是正确的()(单选)

19) 20) 21)

a) b) c) d)

abstract修饰符可修饰属性、方法和类 抽象方法的body部分必须用一对大括号{ } 声明抽象方法,大括号可有可无 声明抽象方法不可写出大括号

下面关于网络通信正确的描述是()(多选) a) TCP/IP协议是一种不可靠的网络通信协议。 b) UDP协议是一种可靠的网络通信协议。 c) TCP/IP协议是一种可靠的网络通信协议。 d) UDP协议是一种不可靠的网络通信协议。

在Java中,下面关于抽象类的描述正确的是()(多选) a) 抽象类可以被实例化 b) 如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象

c) 抽象类的方法都必须是抽象的 d) 声明抽象类必须带有关键字abstract 给定java代码如下,编译运行结果是()(单选) public class Test{

public int count(){ return 1%9; }

public static void main(String[]args){ System.out.println(count()); } }

a) 编译错误 b) 运行错误 c) 正常运行,输出1 d) 正常运行,输出0 将对象序列化,要实现哪个接口()(单选)

Cloneable a)

Runnable b)

Serializable c)

Comparator d)

以下代码输出结果为( ) (单选)

22) 23)

24) 25) 26)

a) b) c) d)

public class Test{

public static String output=\ public static void foo(int i){ try {

if(i==1){

throw new Exception(); }

output +=\ } catch(Exception e){ output+=\ return; } finally{

output+=\

}

output+=\ }

public static void main(String args[]){ foo(0); foo(1);

System.out.println(output); } }

1342 123

134234 13423

在JAVA中,()接口位于集合框架的顶层( ) (单选)

Collection a)

Collections b)

List c)

Set d)

在Java中,下列()类不能派生出子类( ) (单选)

public class MyClass{} a)

class MyClass{} b)

abstract class MyClass{} c)

final class MyClass{} d)

启动一个线程,应调用什么方法()。(单选)

27) 28) 29)

a) b) c) d) start() run() begin() notify)(

在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )(单选)

interface A extends B,C a)

interface A implements B,C b)

class A implements B,C c)

class A implements B,implements C d)

在Java中,以下定义数组的语句正确的是( )(单选)

int t[10]=new int[]; a)

char a[]=\b)

int t[]=new int[10]; c)

double d=new double[10]; d)

给定一个java程序的main方法的代码片段如下:假如d目录下不存在

abc.txt文件,现运行该程序,下面的结果正确的是():(单选) try{

PrintWriter out =

new PrintWriter(new FileOutputStream(\

String name=\ out.print(name); }catch(Exception e){

System.out.println(\文件没有发现!\} a) 将在控制台上打印:\文件没有发现!\ b) 正常运行,但没有生成文件abc.txt c) 运行后生成abc.txt,但该文件中可能无内容 d) 运行后生成abc.txt,该文件内容为:chen 集合框架中,要实现对集合里的元素进行自定义排序,要实现哪个接口()(单选)

Cloneable a)

Runnable b)

Serializable c)

Comparator d)

30)

31)

32) 33) 34) 35)

class Super{

protected float getNum(){return 3.0f;} }

public class Sub extends Super{ //Here }

下面哪些代码可放在Here处(多选)

float getNum(){return 4.0f;} a)

public void getNum(){} b)

private void getNum(double d){} c)

public double Getnum(){return 4.0d;} d)

public float getNum(){return 9;} e)

在Java语言中,如果你编写一个多线程序,可以使用的方法是()。(多选)

a) 扩展类Thread b) 实现Runnable接口 c) 扩展类Runnable d) 实现接口Thread 下面哪些接口直接继承自Collection接口()(多选)

List a)

Map b)

Set c)

Iterator d)

关于HashMap和Hashtable正确的说法有()(多选)

a) 都实现了Map接口 b) Hashtable类不是同步的,而HashMap类是同步的 c) Hashtable 不允许null键或值 d) HashMap 不允许null键或值 下面关于构造方法的说法正确的是()(多选) a) 构造方法不能被继承 b) 构造方法不能被重写 c) 构造方法不能被重载 d) 构造方法不能声明为private

本文来源:https://www.bwwdw.com/article/hoj7.html

Top