当前位置:编程学习 > JAVA >>

自测一下你的Java掌握得怎么样?

自测一下你的Java掌握得怎么样?

====================================================================

注:

以下是我为北京理工大学计算机学院2008级学生设计的Java试题,感兴趣的朋友不妨自我测试一下,看看你能得多少分。

目前我正在批改学生的试卷,此工作完成后,过几天我会发布试题点评以及对考试结果的分析,其中会有一些比较值得关注的东西。

                                                                                                                    金旭亮

====================================================================


 


北京理工大学计算机科学技术学院 2010 -2011 学年第一学期

Java 技术与应用考试试题 ( A )

班级           学号            姓名            成绩    _      

 

说明:

       ( 1 )本次考试为开卷 考试,允许学生携带相关的书籍及其他纸面资料,但不

         得使用计算机、智能手机等电子设备。

       ( 2 )考试时间为 2 小时。

       ( 3 )简答题和编程题写在试卷后所附的答题纸上,标明题号。

       ( 4 )特设卷面整洁分,凡卷面不整洁导致代码及文字难于识别者,扣除 5 分 。

       ( 5 )部分题目没有标准答案,只要言之成理,均可给分。

 

*******************************************************************************

 

一、判断题(正确的描述打钩,错误的打叉,每题 1 分,共 10 分)

 

1.        一个 Java 源文件中只能定义一个公有类,并且类名必须与文件名一致。(     )

 

2.        通过在程序中引入 “import javax.swing.*;” 语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。 (     )

 

3.        J2SE 的功能是 J2ME 的一个子集。(     )

 

4.        Java 字节码只有被装入到内存中之后,才能被执行。(     )

 

5.        Swing 是一套 GUI 组件,采用了新的思路设计 Java 应用程序的界面,它完全地替换掉了原有的 AWT 。(     )

 

6.        在编程时编写过多的注释,会使编译之后生成的程序文件变大。(     )

 

7.        Java Applet 可运行于浏览器中,这意味着浏览器本身就可以直接执行 Applet 程序。(     )

 

8.        JDK 5.0 增加的枚举类型( enum )是一个原始数据类型。(      )

 

9.        Java 规定所有的方法都必须放到某个类中,不存在独立于类的方法。(     )

 

10.    面向对象软件系统设计师们经常用到的 UML 是一种编程语言。(     )

 


 

二、简答题(请将答案写到答题纸上,注明题号。每题 4 分,共 40 分)

 

1.        现代编程语言有很多种分类方法,以下是我们常见的一种划分方法:

       ( 1 ) “ 编译型 ” 编程语言: 比如 C ,程序源码必须经过编译才能运行;

       ( 2 ) “ 解释型 ” 编程语言: 这种类型的语言(比如早期的 Basic )通常都拥有一个交互环境,用户输入一句代码计算机就执行一句代码。

       Java 属于上述哪种类型?如果你认为 Java 不属于上述任何一种类型,那么它是不是属于另外一种编程语言类型?

 

2.        Java 中有两个关键字: void 和 null ,它们有什么区别?

 

3.        简述 “ 类( class ) ” 、 “ 类库 (class library)” 、 “ 包( package ) ” 、 “jar 文件 ” 这四个概念间的联系。

 

4.        面向对象的程序在运行时会创建多个对象,这些对象之间通常可以相互 “ 发送消息 ” ,谈谈你对 “ 对象之间发送消息 ” 这句话的理解,并编写几句 Java 示例代码展示对象之间发送消息的具体编程实现方法。

 

5.        加法运算符 “+” 可以施加于原始数值类型(比如 int )的变量,但我们发现一些对象类型(比如 Integer )的变量,也支持 “+” 运算:

 

    Integer v1 = 100;

    Integer v2 = 200;

    System.out.println(v1 + v2 );  // 输出: 300

 

       这看上去好象 Integer 类型重载了 “+” 运算符,一些编程语言比如 C++ 可以重载运算符,但 Java 本身并不支持这一特性。依你的理解或猜测, Java 采用什么方法处理两个 Integer 对象直接 “ + ” 的语句?

 

6.        在一个很大的循环(比如循环 100000 次)中,如果需要进行大量字符串的连接操作,通常人们会使用 StringBuffer (或 StringBuilder )而不是 String 类型,请解释这么做的理由。

 

7.        现有两个长度不同的数组:

 

    int[] arr1 = new int[10];

    int[] arr2 = new int[100];

   

    那么以下语句能通过编译吗?

 

    arr1 = arr2;

 

    如果你认为可以通过编译,得到这个结论的依据是什么?如果不能通过编译,你认为其原因是什么?

8.   请看以下代码 :

 

    double d1 = 100.1;

    double d2 = 1001/10;

    System.out.println(d1 == d2);  // 输出 : false

 

       明明 d1 与 d2 是相等的 , 为什么程序运行时会输出一个让人意外的结果 : false ?

 

9.        当使用多个 catch 语句捕获多个异常时, Java 规定捕获 Exception 的 catch 语句必须排在最后,如下所示:

 

    try { …… }

    catch(ClassCastException ex){ …… }

    catch(NumberFormatException ex){ …… }

    catch(Exception ex){ …… }  // 此句必须放在最后!

 

    为什么会有这个限制?谈谈你的理解。

 

10. 请看以下示例代码:

 

    String s1 = "Hello";

    String s2 = "Hello";

    System.out.println(s1 == s2);  // 输出: true

 

    String s3 = new String("Hello");

    String s4 = new String("Hello");

    System.out.println(s3 == s4);  // 输出: false

&n

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,