《java基础知识考点java开卷考试》由会员分享,可在线阅读,更多相关《java基础知识考点java开卷考试(17页珍藏版)》请在金锄头文库上搜索。
1、开卷考试,共 2 个小时,要求卷面整洁,书写清晰。一 判断题 10 分,每题 1 分在编程时编写过多的注释,会使编译之后生成的程序文件变大。(错) 放心, 编译器会删除所有的注释。所以,哪怕你在程序中写了一部长篇小说,也不会拖慢程序的运行速度。一个 Java 源文件中只能定义一个公有类,并且类名必须与文件名一致。(对) . 通过在程序中引入“ import javax.swing.*; ”语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。(错) 要使用嵌套子包中的类,必须再次添加 import 子句 J2SE 的功能是 J 2 ME 的一个子集。(错) Java
2、 规定所有的方法都必须放到某个类中,不存在独立于类的方法。(对) java 中 所有类是 java.lang.Object 类的子类 (对) Swing 是一套 GUI 组件,采用了新的思路设计 Java 应用程序的界面,它完全地替换掉了原有的 AWT。(错)Swing 仍然使用 AWT 的事件模型,并非完全抛弃。值得注意的 NetBeans 6.9.1 完成最新的更新组件后,创建 Java 桌面应用程序时,有了一个新的提示消息框:二 简答题 40 分,每题 5 分,共 8 个小题。现代编程语言有两种主要的类型:一种是“编译型 ”的,比如 C ,程序源码必须经过编译才能运行;另一种是“解释型
3、”的,这种类型的语言(比如早期的 Basic )通常都拥有一个交互环境,用户输入一句代码计算机就执行一句代码。Java 属于上述哪种类型?如果你认为 Java 不属于上述任何一种类型,那么它是不是一种新的编程语言类型? Java 源程序需要编译,但运行时需要即时“解释”为本地 CPU 能执行的机器指令,所以它不属于“纯”的编译型或解释型,而是一种混合类型。Java 中有两个关键字: void 和 null ,它们有什么区别?void 是无类型,null 是空值,一个是对返回类型来说,一个对值来说的。Void 表示这个方法执行结束后不返回任何值。void :Public void sort();
4、表示方法没有返回值Null 表示一个对象为 null,就是没有分配内存,没有初始化。3. 简述“类(Class)”、“ 类库(Class Library)”、“包(Package)”、“ Jar 文件”这四个概念间的联系。类库其实是一个“统称”,它是类的集合。包则是类库的组织形式,它类似于 C+中的 namespace,可以解决类的同名问题。Jar 则是一个采用 Zip 格式压缩的文件包 ,主要是为了方便 Java 组件的复用,简化Java 应用程序的部署和发布。 Jar 包中可以保存任意类型的多个文件和多级嵌套的文件夹。比如 JDK 就包容了不少 Jar 压缩包,你可以使用解压缩工具(比如
5、WinRAR)去查看它的内容。可以把 Jar 文件看成是 Java 类库的一个物理“载体”,之所以称其为 “物理”的,是因为我们可以在计算机中直接“看见”并“操作”它。在一个很大的循环(比如循环 100000 次)中,如果需要进行大量字符串的连接操作, 通常人们会使用 StringBuffer (或 StringBuilder)而不是 String 类型,请解释这么做的理由。StringBuffer 可存放允许修改的字符串,String 对一串字符进行操作,不可变类。StringBuffer 内部结构是数组,字符可以动态改变,String 是 final 类型,不可改变。因为 String 的
6、对象是不能修改的,进行加操作,会产生新的对象,在很大的循环中这样做会浪费内存空间。而 StringBuffer 是对同一个内存对象,进行修改,节省内存,增加效率。现有两个长度不同的数组:int arr1 = new int10;int arr2 = new int100; 那么以下语句能通过编译吗? arr1 = arr2; 如果你认为可以通过编译,得到这个结论的依据是什么?如果不能通过编译,你认为其原因是什么?可以。因为哪怕是基本类型的数组,数组本身也是引用的,用=号时,只是将一个数组的地址,指向另一个,并不是进行复制。请看以下代码 : double d1 = 100.1;double d2
7、 = 1001/10;System.out.println(d1 = d2); / 输出 : false 明明 d1 与 d2 是相等的 , 为什么程序运行时会输出一个让人意外的结果 : false ?Double d2=1001/10 1001 和 10 都是 int 型 它们相除得出一个 int 型 100前面用 double 类型 所以是 100.0 所以的 d1 和 d2 不相等。请看以下示例代码: String s1 = Hello; String s2 = Hello; System.out.println(s1 = s2); / 输出: true String s3 = new
8、String(Hello); String s4 = new String(Hello); System.out.println(s3 = s4); / 输出: false 请解释一下为什么上述代码中 “System.out ” 两句代码输出完全不同的结果 ?请看代码String s=北京;s=s+奥运会 ;请问上面代码产生几个 String 对象3 个 请看代码short s=1; short t=s+1;以上代码是否可以编译,如果不能,请说明原因不能,1 是 int 型 s 为 short 型 都转换为 int 型 short t=(short)(s+1 )谈谈你对 interface 的
9、理解和应用。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。三 简单编程题 30
10、分,每题 5 分,共 6 个小题。以所有学习过程中练习过的作业为原型,注意适当的变化和新要求。试凑法、迭代法、最大最小值、打印图形、求素数、排序等。1.编写一个程序,用户输入任何一个字符串之后,反转输出其结果。其运行结果如下所示:请输入一个字串:我在学习 Java 程序设计,您输入了:计设序程 avaJ 习学在我package fei;public class fanchuan public static void main(String args) String s=计设序程 avaJ 习学在我;char array=s.toCharArray();for(int i=array.lengt
11、h-1;i=0;i-)System.out.println(s.charAt(i);package fei;import java.util.Scanner;public class Fanchuan2 public static void main(String args) Scanner sc= new Scanner(System.in);/ System.outString word = sc.nextLine();System.out.println(word);StringBuffer sbb = new StringBuffer(word);System.out.println(
12、sbb.reverse().toString();/自定char a=word.toCharArray();for(int i=a.length-1;i=0;i-)System.out.println(ai);/把a里的东西反序赋给bchar b=new chara.length;for(int j=0,i=a.length-1;j obj.max) obj.max = value;if (value 1)if(arrindex = true)countNum+;if(countNum = 3)countNum=0;arrindex=false;leftCount-;index +;if(index = arr.length)index = 0;for(int i=0;iarr.length;i+)if(arri = true)System.out.println(i);