大学java期末考试试题

时间:2022-04-01 11:48:45 SUN认证 我要投稿

大学java期末考试试题

  Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面是小编精心整理的大学java期末考试试题,希望对你有帮助!

大学java期末考试试题

  大学java期末考试试题 1

  1.在Java中,负责对字节代码解释执行的是

  A. 应用服务器

  B. 虚拟机

  C. 垃圾回收器

  D. 编译器

  2. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈得输出序列的是( )

  A. 5 4 1 3 2

  B. 2 3 4 1 5

  C. 1 5 4 3 2

  D. 2 3 1 4 5

  3. LDAP是什么?

  A. 是一种开源产品

  B. 是一种编程语言

  C. 是一种访问协议

  D. 是一种存储数据的目录

  4. 要想在你的视图上成功的执行查询需要做什么?

  A. 只能在基础表中有select权限

  B. 在视图中需要有select权限

  C. 基础表中必须有数据

  D. 基础表必须在同一个 用户模式中

  5. 评估下面的一组SQL语句:

  CREATE TABLE dept

  (deptno NUMBER(2),

  dname VARCNAR2(14),

  1oc VARCNAR2 (13));

  ROLLBACK;

  DESCRIBE DEPT

  下面关于该组语句的哪个描述是正确的?

  A. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

  B. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

  C. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

  D. ROLLBACK语句将释放DEPT占用的存储空间

  6. Oracle中VARCHAR2类型的最大长度是:

  A. 4000

  B. 3000

  C. 1000

  D. 2000

  7. 下列哪一个选项按照顺序包括了OSI模型的七个层次:( )

  A. 物理层 数据链路层 传输层 网络层 会话层 表示层 应用层

  B. 物理层 数据链路层 会话层 网络层 传输层 表示层 应用层

  C. 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

  D. 网络层 传输层 物理层 数据链路层 会话层 表示层 应用层

  8. 当客户端关闭一个从连接池中获取的连接, 会发生下面哪一种情况?

  A. 连接不会关闭,只是简单地还给连接池

  B. 连接被关闭,但又被重新打开并还给连接池

  C. 连接永久性关闭

  9. 以下哪些不是javascript的全局函数()

  A. eval

  B. escape

  C. setTimeout

  D. parseFloat

  10. 你使用mkdir命令创建一个临时文件夹/tmp/aaa,并将一些文件复制其中。你使用完后要删除/mnt/tmp文件夹及其中的所有文件,应该使用命令

  A. rm /tmp/aaa

  B. rm -r /tmp/aaa

  C. rmdir -r /tmp/aaa

  D. rmdir /tmp/aaa

  11. 操作系统具有进程管理、存储管理、文件管理和设备管理的功能,在以下有关的描述中,哪一个是不正确的

  A. 设备管理是指计算机系统中除了CPU和内存以外的所有输入、输出设备的管理

  B. 存储管理主要是管理内存资源

  C. 进程管理主要是对程序进行管理

  D. 文件管理可以有效地支持对文件的操作,解决文件共享、保密和保护问题

  12. 在UML提供的图中,( )用于按时间顺序描述对象间的交互。

  A. 协作图

  B. 网络图

  C. 序列图

  D. 状态图

  13. 下面有关系统并发访问数估算数据那个最有效:

  A. 高峰时段日处理业务量100000

  B. 高峰时段平均每秒请求数80

  C. 同时在线用户数100

  D. 平均每秒用户请求数50

  14. 不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么设计模式。

  A. Bridge模式

  B. Fa?ade模式

  C. Adapter模式

  D. Proxy模式

  15. PL/SQL中用来判断FETCH语句是否成功,并且在FETCH语句失败时返回逻辑真的属性是:

  %ISOPEN

  %NOTFOUND

  %ROWCOUNT

  %FOUND

  16. 关于以下程序代码的说明正确的是:

  1. public class HasStatic{

  2. private static int x=100;

  3. public static void main(String args[]){

  4. HasStatic hs1=new HasStatic();

  5. hs1.x++;

  6. HasStatic hs2=new HasStatic();

  7. hs2.x++;

  8. hs1=new HasStatic();

  9. hs1.x++;

  10. HasStatic.x--;

  11. System.out.println("x="+x);

  12. }

  13. }

  A. 程序通过编译,输出结果为:x=103

  B. 10行不能通过编译,因为x是私有静态变量

  C. 5行不能通过编译,因为引用了私有静态变量

  D. 程序通过编译,输出结果为:x=102

  17. 定义字符串:String s1="hello";对下面程序描述正确的是:

  if(s1=="hello"){

  System.out.println("s1 = "hello"");

  }else{

  System.out.println("s1 !=hello");

  }

  A. 输出 s1 !=hello

  B. 编译正确,运行错误

  C. 产生编译错误

  D. 输出 s1="hello"

  18. 在实现DAO设计模式时,下面哪种模式经常被采用:

  A. Proxy模式

  B. Factory模式

  C. Prototype模式

  D. Observer模式

  19. 关于MVC,下面说法正确的是:

  A. Servlet实现MVC的Model部分

  B. EJB实现MVC的Model部分

  C. Http实现MVC的View部分

  D. JSP实现MVC的Control部分

  20. 下列关于PC机软件的叙述中,错误的是:

  A. C++语言编译器是一种系统软件,它需要操作系统的支持

  B. PC机除了使用Windows操作系统外,还可使用Linux等操作系统

  C. 软件是计算机系统不可缺少的组成部分,它包括各种程序、数据和有关文档资料

  D. Windows操作系统中的画图、计算器、游戏等是Windows的组成部分,它们都属于系统软件

  21. 在ORACLE中执行下面SQL的结果为:

  Select instr('Mississippi','i',3,3) from dual

  7

  10

  8

  11

  22. 在ORACLE中,下面哪个符号可以放到一个文件中的一行前面来标示注释。

  A. !

  B. $

  C. &

  D. #

  23. 以下代码段将创建几个对象?

  String s1="bc";

  String s2="bc";

  A. 2

  B. 3

  C. 0

  D. 1

  24. 关于垃圾收集的哪些叙述是对的。

  A. 垃圾收集能够在期望的时间释放被java对象使用的内存。

  B. 垃圾收集将检查并释放不再使用的内存。

  C. 垃圾收集允许程序开发者明确指定并立即释放该内存。

  D. 程序开发者必须自己创建一个线程进行内存释放的工作。

  25. 设x为int型变量,则执行以下语句段后,x的值为:

  x=10;

  x+=x-=x-x;

  A. 30

  B. 20

  C. 40

  D. 10

  26. 对于下面几种常见的CMT事务属性,下面?号处从?1 到 ?4依次应为:

  A. T2, None, None, T2

  B. None, T2, None, T2

  C. T1, T2, T2, None

  D. None, None, None, T1

  E. T2, T2, None, T2

  F. T1, None, T2, T2

  27. 如果配置一个Servlet需要使用的参数,最好在哪个方法中加载?

  A. init

  B. doGet

  C. destory

  D. doPost

  E. service

  28. 下面哪个Set是排序的?

  A. LinkedHashSet

  B. HashSet

  C. AbstractSet

  D. TreeSet

  29. 假设test类运行于多线程环境下,那么关于A处的同步下面描述正确的是?

  public class Test {

  List list= new java.util.ArrayList();

  public void test() {

  synchronized ( list) { // --A

  list.add( String.valueOf(System.currentTimeMillis()));

  }

  }

  }

  A. test方法中必须增加synchronized

  B. Test类为singleton时有必要增加synchronized

  C. test方法中没有必要增加synchronized

  D. Test类为singleton时也没有必要增加synchronized

  30. 下面哪个对类的声明是错误的?

  A. class MyClass extends MySuperClass1, MySupperClass2 {}

  B. public class MyClass{}

  C. abstract class MyClass implements YourInterface1, Youriterface2 {}

  D. private class MyClass {}

  E. class MyClass extends MySuperClass implements YourInterface {}

  31. 类的实例方法表示的是什么?( )

  A. 父类对象的行为

  B. 类的属性

  C. 类对象的行为

  D. 类的行为

  32. 下面说法正确的是( )

  A. JAVA中线程是非抢占式的

  B. JAVA中的线程不可以共享数据

  C. 每个JAVA程序都至少有一个线程,即主线程

  D. JAVA中的线程不可以共享代码

  1. Applet可以做下列那些操作

  A. 读取客户端文件

  B. 在客户端主机上创建新文件

  C. 在客户端装载程序库

  D. 读取客户端部分系统变量

  2. 在面向对象数据模型中,子类不但可以从其超类中继承所有的属性和方法,而且还可以定义自己的属性和方法,这有利于实现

  A. 可移植性

  B. 可扩充性

  C. 可靠性

  D. 安全性

  3. 下面两段代码打印的结果是:

  System.out.println(5.00-4.90);

  System.out.println(300-210);

  A. 0.8999999999999999和90

  B. 0.8999999999999999和89.99999999999999

  C. 0.9和90

  D. 0.9和89.99999999999999

  4. 下面关于数据库系统基于日志的恢复的叙述中,哪一个是正确的

  A. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改前值可以进行REDO

  B. 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO

  C. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO

  D. 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改前值可以进行REDO

  5. 评估下面的一组SQL语句:

  CREATE TABLE dept

  (deptno NUMBER(2),

  dname VARCNAR2(14),

  1oc VARCNAR2 (13));

  ROLLBACK;

  DESCRIBE DEPT

  下面关于该组语句的哪个描述是正确的?

  A. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

  B. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

  C. ROLLBACK语句将释放DEPT占用的存储空间

  D. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

  6. 下面哪个语句用于打开一个已经存在的约束?

  A. ALTER TABLE table_name ENABLE constraint_name;

  B. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

  C. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

  D. ALTER TABLE table_name ENABLE CONSTRAINT constraint _ name;

  E. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

  F. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

  7. TCP协议在每次建立或拆除连接时,都要在收发双方之间交换_________ 报文。

  A. 一个

  B. 四个

  C. 三个

  D. 两个

  8. 网络操作系统和分布式操作系统的主要区别是()

  A. 是否连接多台计算机

  B. 计算机之间能否通信

  C. 网上资源能否共享

  D. 各台计算机有没有主次之分

  9. 关于IE的window对象表述不正确的有()

  A. window.opener属性本身就是指向window对象

  B. window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面

  C. 定义了全局变量g;可以用window.g的方式来存取该变量

  D. window.reload()方法可以用来刷新当前页面

  10. 在操作系统中,Wait(s)和Signal(s)操作是一种

  A. 机器指令

  B. 作业控制命令

  C. 系统调用命令

  D. 低级进程通信原语

  11. 文件的存取方式是由文件的性质和用户使用文件的情况而确定的,一般有两种存取方式,它们是

  A. 直接存取和间接存取

  B. 顺序存取和链接存取

  C. 顺序存取和随机存取

  D. 只读存取和读写存取

  12. 下列描述中正确的是()

  A. 软件工程只是解决软件项目的管理问题

  B. 软件工程只是解决软件开发中的技术问题。

  C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化的原则。

  D. 软件工程主要解决软件产品的生产率问题。

  13. 项目中的技术风险是通常是通过()方法来缓解的

  A. 技术文档

  B. 架构原型验证

  C. 代码复审

  D. 单元测试

  14. CMM定义了几个不同的成熟度等级。

  A. 3

  B. 6

  C. 5

  D. 4

  15. PL/SQL中以下表达式的结果非空的是:

  A. NULL||NULL

  B. NULL'||NULL

  C. (5>NULL)

  D. 3+NULL

  16. 你怎样强制对一个对象立即进行垃圾收集?

  A. 调用 System.gc()

  B. 调用System.gc(), 同时传递要进行垃圾收集对象的引用

  C. 调用 Runtime.gc()

  D. 给这个对象的所有引用设置一个新的值(例如null)

  E. 垃圾收集是不能被强迫立即执行

  17. 以下( )方法不能被浏览器自动调用。

  A. init()

  B. stop()

  C. start()

  D. paint()

  18. 要创建一个新目录,可以用下面( )类实现。

  A. FileInputStream

  B. FileOutputStream

  C. RandomAccessFile

  D. File

  19. 执行下面代码,下面描述正确的是:

  public class Person{

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

  public static void main(String a[]){

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

  }

  }

  A. 产生编译错误

  B. 输出空

  C. 编译正确,运行错误

  D. 输出0

  20. 关于CMM的说法错误的是:

  A. CMM是一个软件生命周期模型

  B. CMM是一种软件过程的策略,与实际使用的模型无关

  C. CMM有助于组织建立一个有规律的、成熟的软件过程

  D. CMM定义了5个成熟度等级

  21. 执行下面PL/SQL,emp表中存在编号为1234的雇员,说法正确的是:

  declare

  v_name VARCHAR2(10);

  begin

  SELECT ename INTO v_name FROM emp WHERE empno='1234';

  dbms_output.put_line('found');

  EXCEPTION

  WHEN no_data_found THEN

  dbms_output.put_line('not found!');

  dbms_output.put_line('others');

  end;

  A. 程序编译错误

  B. 输出结果为:found

  C. 输出结果为: not found others

  D. 输出结果为: found others

  22. 在ORACLE中,关于同义词说法错误的是:

  A. 同义词只能由创建同义词的用户使用

  B. 同义词可以和表重名

  C. 共有同义词和私有同义词创建的权限不同

  D. 可以为存储过程创建同义词

  23. 在ORACLE中Date日期类型,存贮日期和时间信息,占用几个字节

  A. 6

  B. 10

  C. 8

  D. 7

  24. 有关线程的哪些叙述是对的。

  A. 一旦一个线程被创建,它就立即开始运行。

  B. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

  C. 一个线程可能因为不同的原因停止(cease)并进入就绪状态。

  D. 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

  25. 下列程序段执行后,t5的结果是:

  int t1=5,t2=6,t3=7,t4,t5;

  t4=t1<t2?t1:t2;< p="">

  t5=t4<t3?t4:t3;< p="">

  A. 7

  B. 5

  C. 6

  26. 下面哪一个参数不是存储过程接受的参数

  A. INPUT

  B. INOUT

  C. IN

  D. OUT

  27. 54. 执行如下两个查询,结果为:

  SELECT ename name, sal salary FROM emp order by salary;

  SELECT ename name, sal "SALARY" FROM emp order by sal ASC;

  A. 两个查询结果完全相同

  B. 第二个查询正确,第一个查询错误

  C. 第一个查询正确,第二个查询错误

  D. 两个查询结果不同

  28. EJB实例通过下面哪个接口与容器进行交互?

  A. Handle

  B. EJBContext

  C. EJBHome

  D. EJBObject

  E. HomeHandle

  29. 下面哪个Map是排序的?

  A. TreeMap

  B. HashMap

  C. Hashtable

  D. WeakHashMap

  E. LinkedHashMap

  30. transient 变量和下面哪一项有关?

  A. Cloneable

  B. Serializable

  C. Runnable

  D. Throwable

  E. Comparable

  31. 执行下列语句后,i 和n的值为( )int i=10;int n= i++%5;

  A. 10,0

  B. 11,0

  C. 10,1

  D. 11,1

  32. 随着Java技术的不断发展,Sun公司根据市场进一步将Java细分,其中针对普通PC应用的是( )

  A. J2EE

  B. JDK

  C. J2ME

  D. J2SE

  1. 以下创建了几个对象

  String A,B,C

  A="a";

  B="b":

  A=A+B;

  StringBuffer D=new StringBuffer("abc");

  D=D.append("567");

  A. 6

  B. 4

  C. 3

  D. 5

  2. J2EE的三层结构包括表示层、中间层、()。

  A. 保存层

  B. 服务层

  C. 中间层

  D. 数据层

  3. 下面那种服务不是JNDI应用范围。

  A. JMS

  B. JDBC

  C. Servlet

  D. EJB

  4. 要想在你的视图上成功的执行查询需要做什么?

  A. 基础表必须在同一个 用户模式中

  B. 只能在基础表中有select权限

  C. 基础表中必须有数据

  D. 在视图中需要有select权限

  5. 在数据库中,产生数据不一致的根本原因是

  A. 数据冗余

  B. 数据存储量太大

  C. 没有严格保护数据

  D. 未对数据进行完整性控制

  6. 评估下面的一组SQL语句:

  CREATE TABLE dept

  (deptno NUMBER(2),

  dname VARCNAR2(14),

  1oc VARCNAR2 (13));

  ROLLBACK;

  DESCRIBE DEPT

  下面关于该组语句的哪个描述是正确的?

  A. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

  B. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

  C. ROLLBACK语句将释放DEPT占用的存储空间

  D. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

  7. 下列哪一个选项按照顺序包括了OSI模型的七个层次:( )

  A. 网络层 传输层 物理层 数据链路层 会话层 表示层 应用层

  B. 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

  C. 物理层 数据链路层 会话层 网络层 传输层 表示层 应用层

  D. 物理层 数据链路层 传输层 网络层 会话层 表示层 应用层

  8. TCP协议在每次建立或拆除连接时,都要在收发双方之间交换____报文。

  A. 四个

  B. 一个

  C. 两个

  D. 三个

  9. 下列关于描述XML和HTML的差异不正确的是

  A. XML的语法比HTML严格

  B. XML扩展性比HTML强

  C. 解析XML的性能优于HTML

  D. XML与HTML互补

  10. 文件系统与()密切相关,它们共同为用户使用文件提供方便

  A. 作业管理

  B. 存储管理

  C. 设备管理

  D. 处理器管理

  11. 以下哪一项不是进程和程序的区别?

  A. 程序可以长期保存,进程是暂时的

  B. 程序只能在前台运行,而进程可以在前台或后台运行

  C. 程序没有状态,而进程是有状态的

  D. 程序是一组有序的静态指令。进程是一次程序的执行过程

  12. 在UML提供的图中,( )用于按时间顺序描述对象间的交互。

  A. 序列图

  B. 状态图

  C. 协作图

  D. 网络图

  13. 黑盒测试也称为功能测试。黑盒测试不能发现

  A. 界面是否有错误

  B. 终止性错误

  C. 输入是否正确接收

  D. 是否存在冗余代码

  14. 不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,

  但又必须和那个对象有所互动,这种情况最好使用什么设计模式。

  A. Fa?ade模式

  B. Proxy模式

  C. Adapter模式

  D. Bridge模式

  15. 下面哪项不是web容器的部署描述符的.作用。

  A. 映射到Servlet/JSP的请求

  B. 定义欢迎和错误页面

  C. 定义MIME参数

  D. 定义远程接口

  E. 初始化参数

  F. 安全授权和认证

  16. 表的主键特点中,说法错误的是:

  A. 主键的每一列都必须非空

  B. 主键的每一列都必须唯一

  C. 一个表只能定义一个住键

  D. 主键可以定义在表级或列级

  17. Oracle中可变长度的字符串类型用以下的哪个关键字表示:

  A. NUMBER

  B. VARCHAR2

  C. CHAR

  D. BOOLEAN

  18. 以下代码完成画线功能,所画线的颜色是:

  g.setColor(Color.red.green.yello.cyan);

  g.drawLine(0,0,100,100);

  A. yello

  B. red

  C. cyan

  D. green

  19. 创建一个标识有“关闭”按钮的语句是:

  A. Button b=new Button("关闭");

  B. TextField b=new TextField("关闭");

  C. Checkbox b=new Checkbox("关闭");

  D. Label b=new Label("关闭");

  20. 为了提高测试的效率,应该:

  A. 在完成编码以后制定软件的测试计划

  B. 集中对付那些错误群集的程序

  C. 随机选取测试数据

  D. 取一切可能的输入数据作为测试数据

  21. 软件生命周期中所花费用最多的阶段是:

  A. 软件维护

  B. 软件测试

  C. 详细设计

  D. 软件编码

  22. 在ORACLE中,删除emp表的全部数据,但不提交,以下正确的语句是:

  A. TRUNCATE TABLE EMP

  B. DELETE TABLE EMP

  C. DELETE FROM EMP

  D. DELETE * FROM EMP

  23. 在ORACLE中,下面哪个符号可以放到一个文件中的一行前面来标示注释。

  A. !

  B. &

  C. $

  D. #

  24. 下面这些方法中()方法不是Applet的基本方法。

  A. stop()

  B. run()

  C. init()

  D. start()

  25. 类Teacher和Student是类Person的子类:

  Person p;

  Teacher t;

  Student s;

  //p,t and s are all non-null.

  if(t instanceof Person) {s=(Student)t;}

  最后一句语句的结果是:

  A. 编译时正确,但运行时错误

  B. 将构造一个Student对象

  C. 表达式是错误的

  D. 表达式是合法的

  26. 软件设计中划分模块的一个准则是

  A. 低内聚高耦合

  B. 低内聚低耦合

  C. 高内聚低耦合

  D. 高内聚高耦合

  27. 下面哪个Set是排序的? TreeSet

  A. LinkedHashSet

  B. HashSet

  C. TreeSet

  D. AbstractSet

  28. 哪个类或者接口不包括在JDK Collection Framework中?

  A. Iterator

  B. Arrays

  C. TreeMap

  D. Enumeration

  E. Collections

  29. 如果你被要求写一段代码读取一个文本文件,那么一般使用哪种Stream?

  A. DataInputStream

  B. ObjectInputStream

  C. FileReader

  D. FileInputStream

  30. java程序运行入口的main方法的返回类型是什么?

  A. static

  B. void

  C. boolean

  D. int

  31. 在下面的代码中:public class AyeAye{ int i = 40; int j;

  public AyeAye(){ setValue(i++); }

  void setValue(int inputValue){ int i = 20; j = i + 1;

  System.out.println(“j = ” + j); }}当setValue( )方法显示变量j时,该变量的值为多少?

  A. 21

  B. 42

  C. 40

  D. 20

  32. 下面关于缺省构造方法的描述中正确的是( )

  A. 当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法

  B. 缺省构造方法可以初始化其他方法中定义的变量

  C. Java编译器会为所有的类创建缺省构造方法。

  D. 如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法

  1. 有关线程的哪些叙述是对的。

  A. 一旦一个线程被创建,它就立即开始运行。

  B. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

  C. 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

  D. 一个线程可能因为不同的原因停止(cease)并进入就绪状态。

  2. 关于finally块中的代码描述正确的是:

  A. 关于finally块中的代码描述正确的是:

  B. 异常没有发生时才被执行

  C. 如果try块后没有catch块时,finally块中的代码才会执行

  D. 异常发生时才被执行

  3. 下列代码编译和执行后的结果是

  public class Test {

  public void myMethod(Object o) {

  System.out.println("My Object");

  }

  public void myMethod(String s) {

  System.out.println("My String");

  }

  public static void main(String args[]) {

  Test t = new Test();

  t.myMethod(null);

  }

  }

  A. 代码不打印任何东西

  B. 代码打印出"My String"

  C. 代码打印出"My Object"

  D. 代码抛出一个Runtime的异常

  4. 数据库中只存放视图的?

  A. 操作

  B. 定义

  C. 限制

  D. 对应的数据

  5. Oracle中VARCHAR2类型的最大长度是:

  A. 1000

  B. 4000

  C. 2000

  D. 3000

  6. 下面哪个语句用于打开一个已经存在的约束? E

  A. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

  B. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

  C. ALTER TABLE table_name ENABLE constraint_name;

  D. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

  E. ALTER TABLE table_name ENABLE CONSTRAINT constraint _ name;

  F. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

  7. 下述论述中不正确的是( )

  A. IPV6具有高效IP包头

  B. IPV6采用主机地址自动配置

  C. IPV6地址采用64位

  D. IPV6增强了安全性

  8. TCP协议在每次建立或拆除连接时,都要在收发双方之间交换_________ 报文。

  A. 一个

  B. 两个

  C. 四个

  D. 三个

  9. 下列关于描述XML和HTML的差异不正确的是

  A. XML扩展性比HTML强

  B. 解析XML的性能优于HTML

  C. XML与HTML互补

  D. XML的语法比HTML严格

  10. 以下哪一项不是进程和程序的区别?

  A. 程序是一组有序的静态指令。进程是一次程序的执行过程

  B. 程序可以长期保存,进程是暂时的

  C. 程序只能在前台运行,而进程可以在前台或后台运行

  D. 程序没有状态,而进程是有状态的

  11. 操作系统具有进程管理、存储管理、文件管理和设备管理的功能,在以下有关的描述中,哪一个是不正确的

  A. 进程管理主要是对程序进行管理

  B. 设备管理是指计算机系统中除了CPU和内存以外的所有输入、输出设备的管理

  C. 存储管理主要是管理内存资源

  D. 文件管理可以有效地支持对文件的操作,解决文件共享、保密和保护问题

  12. 业务词汇表在()阶段产出

  A. 初始阶段

  B. 产品化阶段

  C. 构建阶段

  D. 精化阶段

  13. 项目中的技术风险是通常是通过()方法来缓解的

  A. 技术文档

  B. 架构原型验证

  C. 代码复审

  D. 单元测试

  14. 下面哪项不是 EJB事务属性。

  A. NotSupported

  B. Never

  C. Mandatory

  D. Request

  15. 在MVC框架中,哪两部分的访问不是双向的。

  A. M和V

  B. V和C

  C. M和C

  16. PL/SQL 包中不包含的元素为:

  A. 存储过程

  B. 存储函数

  C. 表

  D. 游标

  17. 以下语句的作用是:

  SELECT ename,sal FROM emp WHERE sal<(SELECT min(sal) FROM emp)+1000

  A. 显示工资低于1000元的雇员信息

  B. 将雇员工资小于1000元的工资增加1000后显示

  C. 显示不超过最低工资1000元的雇员信息

  D. 显示超过最低工资1000元的雇员信息

  18. 对于下列代码:哪些表达式返回值为true。

  public class Sample{

  long length;

  public Sample(long l){ length=l;}

  public static void main(String arg[])

  {

  Sample s1,s2,s3;

  s1=new Sample(21L);

  s2=new Sample(21L);

  s3=s2;

  }

  }

  A. s1==s2;

  B. s2.equals(s3)

  C. s1.equals(s2)

  D. s2!=s3;

  19. 下面哪项是int型的取值范围(用2 15表示2的15次方)?

  A. -2 63- 2 63-1

  B. -2 15 -- 2 15-1

  C. -2 31 -- 2 31-1

  D. 0 -- 2 16-1

  20. 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是:

  A. acbed

  B. decab

  C. deabc

  D. cedba

  21. 在PL/SQL中,下列有关函数的特点说法错误的是:

  A. 函数必须定义返回类型

  B. 函数参数的类型只能是IN

  C. 函数的调用应使用EXECUTE命令

  D. 在函数体内可以多次使用RETURN语句

  22. 在ORACLE中执行下面SQL的结果为:

  Select instr('Mississippi','i',3,3) from dual

  A. 11

  B. 10

  C. 7

  D. 8

  23. 已知A类被打包在packageA中,B类被打包在packageB中,且B类被声明为public,且

  有一个成员变量x被声明为protected控制方式,C类也位于packageA包,且继承了B类,则以下说法中正确的是:

  A. A类的实例不能访问到B类的实例

  B. A类的实例能够访问到B类的一个实例的x成员

  C. C类的实例可以访问到B类的一个实例的x成员

  D. C类的实例不能访问到B类的实例

  24. 下列程序段执行后,t5的结果是:

  int t1=5,t2=6,t3=7,t4,t5;

  t4=t1<t2?t1:t2;< p="">

  t5=t4<t3?t4:t3;< p="">

  A. 7

  B. 5

  C. 6

  25. 以下标识符中( )是不合法的。

  A. BigM

  B. 1s

  C. $1

  D. $I

  26. 54. 执行如下两个查询,结果为:

  SELECT ename name, sal salary FROM emp order by salary;

  SELECT ename name, sal "SALARY" FROM emp order by sal ASC;

  A. 两个查询结果完全相同

  B. 第一个查询正确,第二个查询错误

  C. 两个查询结果不同

  D. 第二个查询正确,第一个查询错误

  27. 释放SessionBean使用的某些资源或者刷新Entity Bean的缓存的代码一般实现在哪个方法中?

  A. ejbRemove

  B. ejbLoad

  C. ejbStore

  D. ejbActivate

  E. ejbPassivate

  28. 哪个HTTP Method可以用来传递大数据量?

  A. POST

  B. PUT

  C. DELETE

  D. HEAD

  E. GET

  29. 如果配置一个Servlet需要使用的参数,最好在哪个方法中加载?

  A. destory

  B. doGet

  C. doPost

  D. service

  E. init

  30. 下面哪个Map最适合用来实现LRU Cache?

  A. Hashtable

  B. TreeMap

  C. HashMap

  D. IdentityHashMap

  E. WeakHashMap

  31. 执行下列语句后,i 和n的值为( )int i=10;int n= i++%5;

  A. 10,0

  B. 11,1

  C. 10,1

  D. 11,0

  32. 下列标识符中,( )是正确的变量名?

  A. int

  B. one-hundred

  C. 1thing

  D. thing1

  多选题

  33. 消息类型Web服务适合下面哪些情况:

  A. Web服务是数据驱动的

  B. 调用Web服务的客户机要求立即响应

  C. Web服务是面向过程的

  D. Web服务功能在异步环境中

  34. 下面叙述哪些是正确的

  A. java接口包含函数声明和常量声明

  B. java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用

  C. 在java中,可以用异常(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要花费更大的系统开销

  D. java中,子类不可以访问父类的私有成员和受保护的成员

  35. 以下关于主键和唯一索引的区别有哪些是正确的?

  A. 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引

  B. 主键不能空,唯一索引可以为空

  C. 主键顺序为数据的物理顺序

  D. 主键每个表只能有一个,唯一索引可以多个

  36. 下列HTTP错误代码描述正确的是:

  A. HTTP 502 - 网关错误

  B. HTTP 403 - 禁止访问

  C. HTTP 404 - 无法找到文件

  D. HTTP 500 - 请求无效

  37. SSL协议提供的服务主要有

  A. 压缩数据降低网络传输的数据量

  B. 认证用户和服务器,确保数据发送到正确的客户机和服务器

  C. 维护数据的完整性,确保数据在传输过程中不被改变

  D. 加密数据以防止数据中途被窃取

  38. 在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本

  A.

  B.

  C.

  D.

  39. 可能与正在运行的进程无关的中断事件有()等

  A. 硬件故障

  B. 程序性

  C. 外部

  D. 输入/输出

  E. 访管

  40. 需求规格说明书需要包含的内容有

  A. 性能需求

  B. 资源需求

  C. 安全性需求

  D. 功能性需求

  41. J2EE的三层模型是指:

  A. 企业信息系统层

  B. 客户层

  C. WEB层

  D. 中间层

  42. 若下面指定的目录和文件名都存在,创建FileInputStream对象的语句正确的是:

  A. File file=new File("1.txt");FileInputStream fis =new FileInputStream(file);

  B. FileInputStream fis =new FileInputStream(" d:java1.txt ");

  C. FileInputStream fis =new FileInputStream("java/1.txt");

  D. FileInputStream fis =new FileInputStream("d:java1.txt");

  43. 下面的说法正确的是:

  A. Java中IO流的处理通常分为输入和输出两个部分。

  B. Reader与Writer类是用来处理字符流,也就是纯文本文件。

  C. File类是输入/输出流类的子类。

  D. InputStream与OutputStream类通常是用来处理字节流,也就是二进制文件。

  44. Which correctly create a two dimensional array of integers?

  A. int [][]a = new int[10][10];

  B. int a[10][10] = new int[][];

  C. int a[][] = new int[10][10];

  D. int a[][] = new int[][];

  45. 定义整型变量:int n=456;,表达式的值为5的是:

  A. n%10

  B. n/10

  C. (n-n/100*100)/10

  D. n/10%10

  46. 下面哪些资源可以通过JNDI接口访问?

  A. 文件系统

  B. DNS域名解析服务

  C. LDAP目录服务

  D. J2EE容器中的JNDI Tree

  47. 下面对数组的操作代码哪个是正确的?

  A. char[] a= "hello world".toCharArray();

  B. int len= a.length;

  C. char c= a[999];

  D. char c= a[0];

  a.equals( new Object());

  Class cc= a.getClass();

  33. 消息类型Web服务适合下面哪些情况:

  A. 调用Web服务的客户机要求立即响应

  B. Web服务是数据驱动的

  C. Web服务功能在异步环境中

  D. Web服务是面向过程的

  34. 下面哪几点是Hibernate的优势?

  A. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

  B. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作

  C. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性

  D. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系

  35. 在ORACLE中,下面哪些命令用来处理事务:

  A. commit

  B. savepoint

  C. set transaction

  D. rollback

  36. 下列HTTP错误代码描述正确的是:

  A. HTTP 404 - 无法找到文件

  B. HTTP 403 - 禁止访问

  C. HTTP 500 - 请求无效

  D. HTTP 502 - 网关错误

  37. HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在:

  A. 带宽优化及网络连接的使用

  B. 缓存处理

  C. 安全性及完整性

  D. 消息在网络中的发送

  38. 请选择对javascript理解有误的

  A. JScript是javascript的简称

  B. FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上

  C. javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度

  D. AJAX技术一定要使用javascript技术

  39. 可能与正在运行的进程无关的中断事件有()等

  A. 硬件故障

  B. 外部

  C. 访管

  D. 程序性

  E. 输入/输出

  40. 上下文关系图(context diagram)的作用是

  A. 定义系统的上下文和范围

  B. 定义业务规则

  C. 概括与系统之间相互影响的重要的外部系统和人

  D. 外部系统和人与系统之间交互的方式

  41. 关于J2EE描述正确的是:

  A. 是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构

  B. 一个J2EE应用必须是基于Web的

  C. J2EE提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持

  D. J2EE是一个产品

  42. 编译运行下面的程序,说法正确的有 :

  import java.io.*;

  public class A{

  public static void main(String[] x){

  String s="1234567890abcdefghijklmnopq";

  byte[] b=s.getBytes();

  try{

  File f=new File("B.txt");

  FileOutputStream out=new FileOutputStream(f);

  out.write(b,10,10);

  out.write(b,0,5);

  }catch (IOException e){

  System.out.println(e.getMessage());

  }

  }

  }

  A. 抛出一个可以被捕获的IOException

  B. 程序编译正常,并在当前目录下生成文件B.txt,文件内容为abcdefghij12345

  C. 编译正常,但运行时出现错误

  D. 程序编译正常,但屏幕没有任何输出

  43. 下面关于变量及其范围的陈述哪些是正确的。

  A. 实例变量是类的成员变量。

  B. 在方法中定义的局部变量在该方法被执行时创建 。

  C. 局部变量在使用前必须被初始化。

  D. 实例变量用关键字static声明。

  44. 下面关于float数的定义正确的是:

  A. float f=-5;

  B. float f=0x0687;

  C. float f=1.0;

  D. float f=7.8f;

  45. 在Java中判断applet的来源的方法有:

  A. getCodebase()

  B. getDocumentbase()

  C. getCodeBase()

  D. getDocumentBase()

  46. 下面代码中对result描述正确的是?

  InputStream in=...;

  byte[] buff= new byte[1024];

  int result= in.read( buff, 0, 256);

  A. result 可能等于 -1

  B. result 可能等于 0

  C. result 可能等于 256

  D. result 可能等于 1024

  47. 下面对数组的操作代码哪个是正确的?

  char[] a= "hello world".toCharArray();

  A. int len= a.length;

  B. char c= a[999];

  C. a.equals( new Object());

  D. char c= a[0];

  E. Class cc= a.getClass();

  33. 下面叙述哪些是正确的

  A. java接口包含函数声明和常量声明

  B. java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用

  C. java中,子类不可以访问父类的私有成员和受保护的成员

  D. 在java中,可以用异常(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要花费更大的系统开销

  34. 面哪个语句能够正确地创建一个InputStreamReader的实例?

  A. new InputStreamReader(new FileReader("data"))

  B. new InputStreamReader(new FileInputStream("data"))

  C. new InputStreamReader(new BufferedReader("data"))

  D. new InputStreamReader("data")

  E. new InputStreamReader(System.in)

  35. 在ORACLE中,下面哪些命令用来处理事务:

  A. rollback

  B. savepoint

  C. set transaction

  D. commit

  36. 下列HTTP错误代码描述正确的是:

  A. HTTP 502 - 网关错误

  B. HTTP 403 - 禁止访问

  C. HTTP 500 - 请求无效

  D. HTTP 404 - 无法找到文件

  37. 下面哪种协议运行在应用层:( )

  A. FTP

  B. IP

  C. TCP

  D. DNS

  38. 下面哪些关于HTML的描述是正确的

  A. div和table都可以用来做页面布局

  B. HTML中指定页面编码的关键词是charset

  C. html代码必须按照规范才能够在浏览器中显示

  D. HTML是一种自描述的语言

  39. 可能与正在运行的进程无关的中断事件有()等

  A. 访管

  B. 外部

  C. 输入/输出

  D. 程序性

  E. 硬件故障

  40. 需求规格说明书需要包含的内容有

  A. 安全性需求

  B. 性能需求

  C. 功能性需求

  D. 资源需求

  41. 关于J2EE描述正确的是:

  A. 一个J2EE应用必须是基于Web的

  B. J2EE是一个产品

  C. 是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构

  D. J2EE提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持

  42. 下面关于float数的定义正确的是:

  A. float f=1.0;

  B. float f=7.8f;

  C. float f=0x0687;

  D. float f=-5;

  43. JNDI结构包含的三个主要层次是:

  A. 实现层

  B. JNDI API 层

  C. 数据层

  D. 应用层

  44. public void test() {

  try { oneMethod();

  System.out.println("condition 1");

  } catch (ArrayIndexOutOfBoundsException e) {

  System.out.println("condition 2");

  } catch(Exception e) {

  System.out.println("condition 3");

  } finally {

  System.out.println("finally");

  }

  }

  在oneMethod()方法运行正常的情况下将显示什么?

  A. condition 2

  B. condition 3

  C. condition 1

  D. finally

  45. Which correctly create a two dimensional array of integers?

  A. int [][]a = new int[10][10];

  B. int a[][] = new int[10][10];

  C. int a[][] = new int[][];

  D. int a[10][10] = new int[][];

  46. 执行下面的哪些命令将释放用户以前持有的所有表锁?选出所有正确的答案

  A. UPDATE emp SET sal = 3000 WHERE ename = ‘SMITH’;

  B. ALLTER TABLE emp ADD UNIQUE (ename);

  C. COMMIT;

  D. EXIT;

  47. 下面哪项语句执行完成后返回 0 ?

  int i= 0xFFFFFFFF;

  int j= 0x0;

  A. i<<2

  B. i & j

  C. ~i

  D. i ^ j

  E. i | j

  33. 下面哪项是 EJB事务属性?

  A. NotSupported

  B. Mandatory

  C. Request

  D. Never

  34. 面哪个语句能够正确地创建一个InputStreamReader的实例?

  A. new InputStreamReader(System.in)

  B. new InputStreamReader(new FileInputStream("data"))

  C. new InputStreamReader(new BufferedReader("data"))

  D. new InputStreamReader(new FileReader("data"))

  E. new InputStreamReader("data")

  35. 以下关于主键和唯一索引的区别有哪些是正确的?

  A. 主键顺序为数据的物理顺序

  B. 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引

  C. 主键每个表只能有一个,唯一索引可以多个

  D. 主键不能空,唯一索引可以为空

  36. HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在: ABCD

  A. 带宽优化及网络连接的使用

  B. 消息在网络中的发送

  C. 安全性及完整性

  D. 缓存处理

  37. SMTP服务器回答:"250 OK"表示:

  A. SMTP 服务器有能力发送邮件

  B. 邮件传送成功

  C. 已经准备好,可以接收邮件

  D. 连接成功释放

  38. 下列关于 标签说法正确的是

  A. 目前不推荐使用 标签

  B. 标签可以用于包含对象,比如视频、applet等

  C. applet使用标签时,标签不支持 jre 的自动安装

  D. applet使用标签时,标签仅仅支持 IE 浏览器用户

  39. 与命令ls -l -F wls等价的命令有:

  A. ls -F -l wls

  B. ls -lF wls

  C. ls -Fl wls

  D. ls wls -F -l

  40. 上下文关系图(context diagram)的作用是

  A. 定义系统的上下文和范围

  B. 外部系统和人与系统之间交互的方式

  C. 概括与系统之间相互影响的重要的外部系统和人

  D. 定义业务规则

  41. 下面有关声明的哪些叙述是正确的。

  A. 对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。

  B. 对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。

  C. 非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。

  D. 非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。

  42. 消息类型Web服务适合下面哪些情况:

  A. 调用Web服务的客户机要求立即响应

  B. Web服务是面向过程的

  C. Web服务功能在异步环境中

  D. Web服务是数据驱动的

  43. 下面哪些情况适合考虑使用有状态会话bean。

  A. 在方法调用期间,会话bean需要维护成员变量的数据

  B. 会话bean提供的服务不具体针对某种客户端

  C. 会话bean需要跨越多个方法调用,维护客户端的信息

  D. 实例化会话bean的时候,必须初始化会话bean的状态

  44. 关于JSP和SERVLET的描述正确的是:

  A. JSP技术构建在SERVLET上,它是支持HTML和XML页面制作的SERVLET技术的扩展

  B. JSP能够访问Java API,具备SERVLET的全部优点。

  C. 访问JSP页面,需要预编译成SERVLET

  D. JSP页面只能在接受请求时动态编译成SERVLET

  45. 若下面指定的目录和文件名都存在,创建FileInputStream对象的语句正确的是:

  A. FileInputStream fis =new FileInputStream("d:java1.txt");

  B. FileInputStream fis =new FileInputStream("java/1.txt");

  C. File file=new File("1.txt");FileInputStream fis =new FileInputStream(file);

  D. FileInputStream fis =new FileInputStream(" d:java1.txt ");

  大学java期末考试试题 2

  1、在java中如果声明一个类为final,表示什么意思?

  答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。

  2、父类的构造方法是否可以被子类覆盖(重写)?

  答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。

  3、请讲述String 和StringBuffer的区别。

  答:String 类所定义的对象是用于存放“长度固定”的字符串。

  StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

  4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?

  答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。

  5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。

  答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。

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

  6、谈谈你对抽象类和接口的理解。

  答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。

  接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。

  大学java期末考试试题 3

  1)Java 中能创建 Volatile 数组吗?

  能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。

  2)volatile 能使得一个非原子操作变成原子操作吗?

  一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。但是对一个 volatile 型的 long 或 double 变量的读写是原子。

  3)volatile 修饰符的有过什么实践?

  一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。volatile 修复符的另一个作用是提供内存屏障(memory barrier),例如在分布式框架中的应用。简单的说,就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(write barrier),读一个 volatile 变量之前,会插入一个读屏障(read barrier)。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。

  4)volatile 类型变量提供什么保证?(答案)

  volatile 变量提供顺序和可见性保证,例如,JVM 或者 JIT为了获得更好的性能会对语句重排序,但是 volatile 类型变量即使在没有同步块的情况下赋值也不会与其他语句重排序。 volatile 提供 happens-before 的保证,确保一个线程的修改能对其他线程是可见的。某些情况下,volatile 还能提供原子性,如读 64 位数据类型,像 long 和 double 都不是原子的,但 volatile 类型的 double 和 long 就是原子的。

  5) 10 个线程和 2 个线程的同步代码,哪个更容易写?

  从写代码的角度来说,两者的复杂度是相同的,因为同步代码与线程数量是相互独立的。但是同步策略的选择依赖于线程的数量,因为越多的线程意味着更大的竞争,所以你需要利用同步技术,如锁分离,这要求更复杂的代码和专业知识。

  6)你是如何调用 wait()方法的?使用 if 块还是循环?为什么?(答案)

  wait() 方法应该在循环调用,因为当线程获取到 CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环检测条件是否满足会更好。下面是一段标准的使用 wait 和 notify 方法的代码:

  // The standard idiom for using the wait method

  参见 Effective Java 第 69 条,获取更多关于为什么应该在循环中来调用 wait 方法的内容。

【大学java期末考试试题】相关文章:

2017年java期末考试试题08-18

《JAVA程序设计》期末考试试题11-02

2017java期末考试参考试题08-18

2016年java期末考试试题及答案10-07

2016年《JAVA程序设计》期末考试试题11-02

java试题及答案08-12

2017年java模拟试题08-20

JAVA模拟试题及答案11-14

Java笔试题附答案08-27