admin 管理员组

文章数量: 1086019


2023年12月17日发(作者:霹雳兵烽决之玄象裂变百科)

JavaEE结项考试试卷(后附答案)

一、单选题(共15小题,每小题2分,满分30分)

1、Java是从( )语言改进重新设计。

A. Ada

B. C++

C. Pasacal

D. BASIC

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

A. Java程序经编译后会产生machine code

B. Java程序经编译后会产生byte code

C. Java程序经编译后会产生DLL

D. 以上都不正确

3、已知如下定义: String s = "story"; 下面哪个表达式是合法的?(A. s += "books";

B. char c = s[1];

C. int len = ;

D. String t = 100;

4、执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是( )

A.0

B.1

C.-1

D.死循环

5、String s=new String(“xyz”); 创建了几个String对象?(

A. 1个

B. 2个

C.3个

D.4个

6、当你执行以下查询语句:

SELECT empno,ename FROM emp WHERE empno=7782 OR empno=7876;

在WHERE语句中,以下哪个操作符可以取代OR?( )

A. IN

B. BETWEEN ……

C. LIKE

D. <=

E. >=

7、下面关于Spring的说法中错误的是( )?

A. Spring是一系列轻量级Java EE框架的集合

B. Spring中包含一个“依赖注入”模式的实现

C. 使用Spring可以实现声明式事务

D. Spring提供了AOP方式的日志系统

8、下列语句正确的是( )

A.形式参数可被视为local variable

B.形式参数可被字段修饰符修饰

C.形式参数为方法被调用时,真正被传递的参数

D.形式参数不可以是对象

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

A.实例方法可直接调用超类的实例方法

B.实例方法可直接调用超类的类方法

C.实例方法可直接调用其他类的实例方法

D.实例方法可直接调用本类的类方法

10、下面关于AOP的说法错误的是?( )

A. AOP将散落在系统中的“方面”代码集中实现

B. AOP有助于提高系统的可维护性

C. AOP已经表现出了将要替代面向对象的趋势

D. AOP是一种设计模式,Spring提供了一种实现

11、关于以下application的说明,正确的是( )

class StaticStuff

{

static int x=10;

static { x+=5;}

Public static void main(String args[ ])

{

n(“x=” + x);

}

static { x/=3;}

}

A. 4行与9行不能通过编译,因为缺少方法名和返回类型

B. 9行不能通过编译,因为只能有一个静态初始化器

C. 编译通过,执行结果为:x=5

D. 编译通过,执行结果为:x=3

12、下列哪些语句关于Java内存回收的说明是正确的? ( )

A. 程序员必须创建一个线程来释放内存

B. 内存回收程序负责释放无用内存

C. 内存回收程序允许程序员直接释放内存

D. 内存回收程序可以在指定的时间释放内存对象

13、有如下代码段:

1)

2) { if(unsafe()){//do something…}

3) else if(safe()){//do the other…}

4) }

其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )

A. public IOException methodName()

B. public void methodName()

C. public void methodName() throw IOException

D. public void methodName() throws IOException

14、 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是( )

A. 配置客户和订单关联的cascade属性为save-update

B. 配置客户和订单关联的cascade属性为all

C. 设置多对一关联的inverse属性为true

D. 设置多对一关联的inverse属性为false

15、 下列哪一种叙述是正确的( )

A.abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{ }包住

C.声明抽象方法,大括号可有可无

D.声明抽象方法不可写出大括号

二、不定项多选题(共10小题,每小题2分,满分20分)

1.Java程序的种类有( )

A.类(Class)

B.Applet

C.Application

D.Servlet

2.下列说法正确的有( )

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

B.在编译程序时,所能指定的环境变量不包括class path

C. javac一次可同时编译数个Java源文件

D. 能指定编译结果要置于哪个目录(directory)

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

A.new

B.$Usdollars

C.1234

D.

4.下列说法错误的有( )

A.数组是一种对象

B.数组属于一种原生类

C. int number=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

5.不能用来修饰interface的有( )

A.private

B.public

C.protected

D.static

6、在EL表达式中,与范围有关的EL隐含对象有( )?

A. pageScope

B. requestScope

C. sessionScope

D. applicationScope

E. pageContextScope

7.下列说法错误的有( )

A.在类方法中可用this来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

8. Stust2 Action类得到requestsession对象的方式( )

A. 与servlet无关的 非IOC

B. 与servlet相关的 非IOC

C. 与serlvet相关的 IOC

D. 与servlet无关的 IOC

9.下列说法错误的有( )

A.能被成功运行的java class文件必须有main()方法

B. J2SDK就是Java API

C. 可利用jar选项运行.jar文件

D.能被Appletviewer成功运行的java class文件必须有main()方法

10. 编译并运行下面的程序,运行结果为( )

public class Example{

public static void main(String args[] ){

int l=0;

do{

n(“ Doing it for l is:” +l);

}while(--l>0)

n(“ Finish” );

}

}

A. Doing it for l is 3

B. Doing it for l is 1

C. Doing it for l is 2

D. Doing it for l is 0

E. Doing it for l is –1

F. Finish

三、填空题(本大题共20空,每空 1 分,共 20分)

1. 一个Java源程序是由若干个 组成。

2. 对于int型变量,内存分配 个字节。

3. 在同一个switch语句中,case后的 必须互不相同。

4. do-while循环和while循环的区别是 。

5. 面向对象编程序主要有封装性、继承性、 的特点。

6. 一个类通过使用new运算符和类的 为声明的对象分配内存。

7. 类不能被继承,即不能有子类。

8. 是相同类型的数据按顺序组成的一种引用数据类型。

9. 类是所有Java 类的最终祖先,如果一个类在声明时没有包含extends 关键词,那么这个类直接继承Object类。

10. 类能够进行浮点数的精确加法、减法和乘法运算,对于浮点数的除法运算,可以满足用户指定的精度。

11. 捕捉异常方式是通过 结构处理异常。

12. 抛出异常可以利用 语句。

13. 在java中要想实现多线程,必须在主线程中创建新的 。

14. 一个正在执行的线程可能被人为地中断,让出CPU 的使用权,暂时中止自己的执行,进入 状态。

15. 一个实现了 接口的类实际上定义了一个主线程之外的新线程的操作。

16. 可以通过使用 关键词修改方法来同步化对方法的访问。

17. Struts2文件上传,数据验证等功能是基于 技术实现的。

18. 事务隔离级别是由 实现的。

19. Hibernate持久化层中,对象分为 ,游离状态以及持久化状态。

20. Hibernate中的悲观锁与乐观锁, 具有较好的并发性能?

四、 简答题(本大题共4小题,共 20分,每题 5分)

1 . Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

2. 线程的基本概念、线程的本状态以及状态之间的关系

3. jsp有哪些内置对象?作用分别是什么?

4.项目中为什么使用SSH?

五、根据题目要求编写程序(共3小题,满分10分)

1. 写一个猜数字游戏,随机生成一个0到100的数字,在控制台中输入数字,如果输入数字比随机数大,输出“大了”,如果输入数字比随机数小,输出小了“小了”,如果输入正确,那么输出“中了”并且退出。(4分)

2.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 (3分)。

3.输出 9*9 口诀(3分)。

答案

一、选择题(本大题共15题,每小题2分,共30分)

1----5: B B A C B 6------10:A D A A C

11---15: C B D A D

二、不定项多选题(本大题共10题,每小题2分,共20分)

1----5:BCD BCD ACD BCD

ACD

6----10:ABCD

CD ABCD

BCD DF

三、填空题(本大题共20空,每空 1 分,共 20分)

1.

2.

4

3.

常量值

4.

do-while循环体至少被执行一次

5. 多态性

6.

构造方法

7.

final

8.

数组

9.

Object

10.

BigDecimal

11. try-catch-finally

12. throw

13. 线程对象

14. 阻塞

15. Runnable

16. Synchronized

17. 拦截器

18. 数据库

19. 临时状态

20. 乐观锁

四、简答题

1 . Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

4. 线程的基本概念、线程的本状态以及状态之间的关系?

答:

•新建 (Born) : 新建的线程处于新建状态

•就绪 (Ready) : 在创建线程后,它将处于就绪状态,等待 start() 方法被调用

•运行 (Running) : 线程在开始执行时进入运行状态

•睡眠 (Sleeping) : 线程的执行可通过使用 sleep() 方法来暂时中止。在睡眠后,线程将进入就绪状态

•等待 (Waiting) : 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

•挂起 (Suspended) : 在临时停止或中断线程的执行时,线程就处于挂起状态。

•恢复 (Resume) : 在挂起的线程被恢复执行时,可以说它已被恢复。

•阻塞 (Blocked) – 在线程等待一个事件时(例如输入/输出操作),就称其处于阻塞状态。

•死亡 (Dead) – 在 run() 方法已完成执行或其 stop() 方法被调用之后,线 程就处于死亡状态。

串行化的注意事项以及如何实现串行化答:如果有循环引用是不可以串行化的。对象输出流的WriteObject方法和 对象输入流的ReadObect 方法

共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

4. 使用Struts是因为struts是基于MVC模式的,很好的将应非用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。

使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能丰富。

使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(Transcation Managment),等等

五、根据题目要求编写程序

1. 写一个猜数字游戏,随机生成一个0到100的数字,在控制台中输入数字,如果输入数字比随机数大,输出“大了”,如果输入数字比随机数小,输出小了“小了”,如果输入正确,那么输出“中了”并且退出。(4分)

package ;

import r;

public class GuessNum {

public static void main(String[] args) {

// TODO 自动生成的方法存根

Scanner sc = new Scanner();

int max = 100,min = 1;

int goal = (int) (()*100+1);

n("请输入" + min + "到" + max + "的数");

while(true){

int guessNum = t();

if(guessNum>=min&&guessNum<=max){ //判断输入的数字是否在需要的区间内

if(guessNum>goal){

n("大了");

max = guessNum;

n("请输入" + min + "到" + max + "的数");

}else if(guessNum

n("小了");

min = guessNum;

n("请输入" + min + "到" + max + "的数");

}else{

n("中了");

break;

}

}else{

n("你输入的数不在范围之内," + "请输入" + min + "到" + max +

"的数");

}

}

}

}

2. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

public class Test7 {

public static void main(String[] args) {

int abcCount = 0;// 英文字母个数

int spaceCount = 0;// 空格键个数

int numCount = 0;// 数字个数

int otherCount = 0;// 其他字符个数

Scanner scan = new Scanner();

n("请输入一个字符串:");

String str = ne();

char[] ch = Array();

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

if (er(ch[i])) {

// 判断是否字母

abcCount++;

} else if (t(ch[i])) {

// 判断是否数字

numCount++;

} else if (eChar(ch[i])) {

// 判断是否空格键

spaceCount++;

} else {

// 以上都不是则认为是其他字符

otherCount++;

}

}

n("字母个数:" + abcCount);

n("数字个数:" + numCount);

n("空格个数:" + spaceCount);

n("其他字符个数:" + otherCount);

}

3分) (

}

4.输出 9*9 口诀(3分)。

public class Test16 {

public static void main(String[] args) {

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

for (int j = 1; j <= i; j++) {

(j + "*" + i + "=" + j * i + " ");

if (j * i < 10) {

(" ");

}

}

n();

}

}

}


本文标签: 方法 线程 对象 数字 状态