天梯180416

原创 2018年04月16日 23:50:40

天梯180416

1. 下面有关servletinit,service,destroy方法描述错误的是?

A. init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法

B. service()方法处理客户机发出的所有请求

C. destroy()方法标志servlet生命周期的结束

D. servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的

2. 下列说法正确的有()
A. 数组是一种对象

3. 数组属于一种原生类

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

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

 

3. 假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

boolean isOdd = false;

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

ifi%2==1isOdd = true

else isOdd = false

a+=i*(isOdd?1:-1)

}

A. -1

B. -2

C. 0

D. 1

4. 

设有下面两个赋值语句:

a = Integer.parseInt("1024");

b = Integer.valueOf("1024").intValue();

下述说法正确的是()

A. a是整数类型变量,b是整数类对象。

B. a是整数类对象,b是整数类型变量。

C. ab都是整数类对象并且它们的值相等。

D. ab都是整数类型变量并且它们的值相等。

 

5. 事务隔离级别是由谁实现的?

A. Java应用程序

B. Hibernate

C. 数据库系统

D. JDBC驱动程序

 

 

 

 

//-------------------------分各线----------------------------

D

A

D

D

C

答案详解:

1.

servlet在多线程下其本身并不是线程安全的。

如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。

2. 原生类是指Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。

3.

易知:每个线程对a 均做了两次读写操作,分别是 “ +1 ” 和 “ -2

而题目问了是最终a 的结果,所以 a 的结果取决于各自线程对 a 的先后读写的顺序

结论:a的可能取值为-10-2

 

4.

intValue()是把Integer对象类型变成int的基础数据类型;

parseInt()是把String 变成int的基础数据类型;

Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)

 

5.

A,我们写java程序的时候只是设定事物的隔离级别,而不是去实现它

B,Hibernate是一个java的数据持久化框架,方便数据库的访问

C,事物隔离级别由数据库系统实现,是数据库系统本身的一个功能

D,JDBC是java database connector,也就是java访问数据库的驱动

 

收藏助手
不良信息举报
您举报文章:天梯180416
举报原因:
原因补充:

(最多只允许输入30个字)