JAVA试题及答案(50道选择题) 下载本文

选择题

1、 JAVA所定义的版本中不包括:( D )

A、 JAVA2 EE B、 JAVA2 Card C、 JAVA2 ME D、 JAVA2 HE E、 JAVA2 SE

2、 下列说法正确的是( A )

A、 JAVA程序的main方法必须写在类里面 B、 JAVA程序中可以有多个main方法 C、 JAVA程序中类名必须与文件名一样

D、 JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来

3、 变量命名规范说法正确的是( B )

A、 变量由字母、下划线、数字、$符号随意组成; B、 变量不能以数字作为开头; C、 A和a在java中是同一个变量;

D、 不同类型的变量,可以起相同的名字;

4、 下列javaDoc注释正确的是( C )

A、 /*我爱北京天安门*/ B、 //我爱北京天安门*/ C、 /**我爱北京天安门*/ D、 /*我爱北京天安门**/

5、 为一个boolean类型变量赋值时,可以使用( B )方式

A、 boolean = 1;

B、 boolean a = (9 >= 10); C、 boolean a=\真\D、 boolean a = = false;

6、 以下( C )不是合法的标识符

A、 STRING B、 x3x; C、 void D、 de$f

7、 表达式(11+3*8)/4%3的值是( D )

A、 31 B、 0 C、 1 D、 2

8、 ( A )表达式不可以作为循环条件

A、 i++; B、 i>5;

C、 bEqual = str.equals(\D、 count = = i;

9、 运算符优先级别排序正确的是(A )

A、 由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值

运算符;

B、 由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑

运算符;

C、 由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值

运算符;

D、 由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑

运算符;

10、 以下程序的运行结果是:( B ) public class Increment{ public static void main(String args[]) { int a; a = 6; System.out.print(a); System.out.print(a++); System.out.print(a); } }

A. 666 B. 667 C. 677 D. 676

11、 下列值不为true的表达式有( C )。

A、 \B、 \C、 \

D、 \

12、 下列输出结果是( C )

int a = 0 ; while ( a < 5 ) { switch(a){

case 0:

case 3 : a = a + 2;

case 1 :

case 2 : a = a + 3; default : a = a + 5; } }

System.out.print ( a ) ; A、 0 B、 5 C、 10 D、 其他

13、

下列代码输出结果是( B ) int i = 10; while ( i > 0 ){ i = i + 1; if ( i = =10 ){ break; } }

A. while循环执行10次 B. 死循环

C. 循环一次都不执行 D. 循环执行一次

14、 下面有关for循环的描述正确的是( A )

A、 for循环体语句中,可以包含多条语句,但要用大括号括起来 B、 for循环只能用于循环次数已经确定的情况 C、 在for循环中,不能使用break语句跳出循环 D、 for循环是先执行循环体语句,后进行条件判断

15、 下列( A C )属于引用数据类型(选择两项)

A、 String B、 char

C、 用户自定义的Student类类型 D、 int

16、 对象的特征在类中表示为变量,称为类的( B )。

A、 对象 B、 属性 C、 方法

D、 数据类型

17、 在java中下列关于自动类型转换说法正确的是( A )

A、 基本数据类型和String相加结果一定是字符串型

B、 char类型和int类型相加结果一定是字符 C、 double类型可以自动转换为int

D、 char + int + double +\结果一定是double;

18、 关于类的描叙正确的是( BD)(选择两项)

A、 在类中定义的变量称为类的成员变量,在别的类中可以直接使用

B、 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流

块中

C、 使用别的类的方法仅仅需要引用方法的名字即可

D、 一个类的方法使用该类的另一个方法时可以直接引用方法名

19、 下列关于字符串的描叙中错误的是(BC )(选择两项)

A、 字符串是对象

B、 String对象存储字符串的效率比StringBuffer高

C、 可以使用StringBuffer sb=\这里是字符串\声明并初始化StringBuffer对象

sb

D、 String类提供了许多用来操作字符串的方法:连接,提取,查询等

20、 以下( D )代码,能够对数组正确初始化(或者是默认初始化)。

A、 int[] a;

B、 a = {1, 2, 3, 4, 5};

C、 int[] a = new int[5]{1, 2, 3, 4, 5}; D、 int[] a = new int[5];

21、 score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读

下面代码,程序运行结果是( B ) temp = score[0];

for (int index = 1;index < 5;index++) { if (score[index] < temp) { temp = score[index]; } }

A. 求最大数 B. 求最小数

C. 找到数组最后一个元素 D. 编译出错

22、 下面关于数组的说法中,错误的是(AB )(选择两项)

A、 在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素

值为空

B、 数组可以在内存空间连续存储任意一组数据 C、 数组必须先声明,然后才能使用 D、 数组本身是一个对象

23、 在Java中,关于构造方法,下列说法错误的是( C )

A、 构造方法的名称必须与类名相同 B、 构造方法可以带参数 C、 构造方法不可以重载

D、 构造方法绝对不能有返回值

24、 执行下面代码结果( D ) for(int i=0;;){

System.out.println(\这是 \ break;

}

A、 语法错误,缺少表达式2和表达式3 B、 死循环

C、 程序什么都不输出 D、 输出:这是0

25、 下面代码输出结果是(B )。 int i=0,s=0; do{

if (i%2 = = 0 ){ i++;

continue; } i++; s = s + i; } while (i<7);

System.out.println(s);

A、 16 B、 12 C、 28 D、 21

26、 下面( C )不是String类提供的合法的方法。

A、 equals(String) B、 trim() C、 append() D、 indexOf()

27、 在JAVA中,以下( C )类的对象以键-值的方式存储对象

A、 java.util.List

B、 java.util.ArrayList C、 java.util.HashMap D、 java.util.LinkedList

28、

A. B. C. D.

给定如下所示的JAVA代码,则运行时,会产生( String s = null; s.concat(\ArithmeticException NullPointerException IOException

ClassNotFoundException

B )类型的异常

29、 给定java代码如下所示,在A处新增下列( AC)方法,是对cal方法的

重载(选择两项)

public class Test { public void cal(int x, int y, int z)

{

} //A }

A. public int cal(int x,int y,float z){return 0;} B. public int cal(int x,int y,int z){return 0;} C. public void cal(int x,int z){} D. public viod cal(int z,int y,int x){}

30、 给定如下Java 程序代码片段,编译运行这段代码,结果是( java.util.HashMap map = new java.util.HashMap(); map.put(\ map.put(\

System.out.println(map.get(\

A. null B. Jack C. nullJack

D. 运行时出现异常

31、 给定以下JAVA代码,这段代码编译运行后输出的结果是( C public class Test {

public static int aMethod(int i) throws Exception { try{ return i/10;

}catch(Exception ex){

throw new Exception (\ }finally{ System.out.print(\ }

}

)。 B ) public static void main(String [] args) { try{ aMethod(0); }catch(Exception ex){ System.out.print(\ } System.out.print(\ }

A、 finallyexception in mainfinished B、 exception in mainfinally C、 finallyfinished

D、 finallyexception in mainfinished

32、 在Java中,下面对于构造函数的描述错误的是( BC )(选择两项)

A、 类不一定要显式定义构造函数 B、 构造函数的返回类型是void

C、 如果构造函数不带任何参数,那么构造函数的名称和类名可以不同 D、 一个类可以定义多个构造函数

33、 在Java语言中,下列关于类的继承的描述,正确的是(B )。

A、 一个类可以继承多个父类 B、 一个类可以具有多个子类

C、 子类可以使用父类的所有方法 D、 子类一定比父类有更多的成员方法

34、 下列选项中关于Java中super关键字的说法正确的是( A )。

A、 super关键字是在子类对象内部指代其父类对象的引用

B、 super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C、 子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D、 子类通过super关键字只能调用父类的属性,而不能调用父类的方法

35、 在Java接口中,下列选项中有效的方法声明是( AB )。(选择二项)

A、 public void aMethod(); B、 void aMethod();

C、 protected void aMethod(); D、 private void aMethod();

36、 在JAVA的异常处理模型中,能单独和finally语句一起使用的块是( A

)。 A、 try B、 catch C、 throw D、 throws

37、 分析如下Java代码,编译运行后将输出(B )。 public class Test{

public Test(){}

static void print(ArrayList al){ al.add(2);

al=new ArrayList(); al.add(3); al.add(4);

}

public static void main(String[]args){ Test test=new Test();

ArrayList al=new ArrayList(); al.add(1); print(al);

System.out.println(al.get(1)); } } A、 1 B、 2 C、 3 D、 4

38、 在JAVA中,Object类是所有类的父亲,用户自定义类默认扩展自Object

类,下列选项中的( D )方法不属于Object类的方法。 A、 equals(Object obj) B、 getClass() C、 toString() D、 trim()

39、 下列选项中关于Java中封装的说法错误的是(D )。

A、 封装就是将属性私有化,提供共有的方法访问私有属性 B、 属性的访问方法包括setter方法和getter方法 C、 setter方法用于赋值,getter方法用于取值

D、 包含属性的类都必须封装属性,否则无法通过编译

40、 Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正

确的是(A )

A、 C不仅继承了B中的成员,同样也继承了A中的成员 B、 C只继承了B中的成员 C、 C只继承了A中的成员

D、 C不能继承A或B中的成员

41、 分析选项中关于Java中this关键字的说法正确的是( A )

A、 this关键字是在对象内部指代自身的引用 B、 this关键字可以在类中的任何位置使用

C、 this关键字和类关联,而不是和特定的对象关联 D、 同一个类的不同对象共用一个this

42、 在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列( D

)选项中的方法是LinkedList类有而ArrayList类没有的。 A、 add(Object o)

B、 add(int index,Object o) C、 remove(Object o) D、 removeLast()

43、 在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问

元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( C )。 A、 bookTypeList.add(\小说\B、 bookTypeList.get(\小说\

C、 bookTypeList.contains(\小说\D、 bookTypeList.remove(\小说\

44、 给定如下Java代码,其中第( 无答案 )行代码有错误。

A、 4 B、 5 C、 6 D、 7 E、 8 F、 9

45、 以下关于布局的说法,错误的是( B )

A、 BorderLayout是边框布局,它是窗体的默认布局 B、 null是空布局,它是面板的默认布局

C、 FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左

向右排列, 一行排满之后就转到下一行继续从左至右排列

D、 GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容

器被分成大小相等的矩形,一个矩形中放置一个组件

46、 以下用于创建容器对象的类是( AC )(选择两项)

A、 Frame B、 Checkbox C、 Panel D、 TextField

47、 以下关于抽象类和接口的说法错误的是( E )

A、 抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。

但是一个类却可以实现多个接口。 B、 在抽象类中可以没有抽象方法

C、 实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。

接口中的方法都不能被实现

D、 接口中定义的变量默认是public static final 型,且必须给其初值,所以实

现类中不能重新定义,也不能改变其值。 E、 接口中的方法都必须加上public关键字。

48、 关于面向对象的说法正确的是( A )

A、 类可以让我们用程序模拟现实世界中的实体 B、 有多少个实体就要创建多少个类

C、 对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是

要知道类的内部是如何实现

D、 现实世界中的某些实体不能用类来描述

一、单项选择题

1.下面( B )是合法的 Java 标识符。

A、#_pound B、_underscore C、5Interstate D、class

2.下面( D )赋值语句不会出现编译警告或错误。

A、float f=1.3; B、char c=\ C、byte b=257; D、int i=10;

3.编译一个定义了两个类和三个方法的 Java 源程序文件,总共会产生( D )个字节码文件。

A、5 个字节码文件,以“.java”为扩展名 B、2 个字节码文件,以“.java”为扩展名

C、5 个字节码文件,以“.class”为扩展名 D、2 个字节码文件,以“.class”为扩展名

4.有关类的说法,正确的是( B ) 。

A、类具有封装性,所以类的数据是不能被访问的

B、类具有封装性,但可以通过类的公共接口访问类中的数据 C、声明一个类时,必须使用 public 修饰符

D、每个类中必须有 main 方法,否则程序无法运行

5.执行完下面程序片段后, ( B )的结论是正确的。 int a, b, c; a = 1; b = 2;

c = (a + b > 3 ? a++ : b++);

A、a 的值是 2,b 的值是 3 B、a 的值是 1,b 的值是 3 C、a 的值是 1,b 的值是 2 D、c 的值是 false

6.将类的成员的访问权限设置为默认的,则该成员能被( A ) A、同一包中的类访问 B、其他包中的类访问 C、所有的类访问

D、所有的类的子类访问

7.下面的方法重载,正确的是( C ) 。

A、int fun(int a, float b) { } B、float fun(int a, float b) { } float fun(int a, float b) { } float fun(int x, float y) { } C、float fun(float a) { } D、float fun1(int a, float b) { } float fun(float a, float b) { } float fun2(int a, float b) { }

8.下面关于继承的说法,正确的是( D ) 。 A、超类的对象就是子类的对象 B、一个类可以有几个超类 C、一个类只能有一个子类 D、一个类只能有一个超类

9.下面关于多态性的说法,正确的是( C ) 。

A、一个类中不能有同名的方法

B、子类中不能有和父类中同名的方法

C、子类中可以有和父类中同名且参数相同的方法

D、多态性就是方法的名字可以一样,但返回的类型必须不一样

10.关于下面程序, ( A )的结论是正确的。 class J_SubClass extends J_Test { } public class J_Test { J_Test(int i) {

System.out.println(i); }

public static void main(String[] args) { J_SubClass a = new J_SubClass(); } }

。 A、不能通过编译,因为类 J_Test 没有定义无参数的构造方法

B、不能通过编译,因为类 J_SubClass 没有定义无参数的构造方法 C、不能通过编译,因为没有实现 J_SubClass(int i)的构造方法 D、可以成功通过编译

11.关于下面程序片段, ( B )的结论是正确的。 String a = \ String b = \ String x = \ String y = \ String c = x + y;

A、a 和 b 指向同一个实例对象,a 和 c 指向同一个实例对象 B、a 和 b 指向同一个实例对象,a 和 c 不指向同一个实例对象 C、a 和 b 不指向同一个实例对象,a 和 c 指向同一个实例对象 D、a 和 b 不指向同一个实例对象,a 和 c 不指向同一个实例对象

12.假设下面的程序代码都放在 MyClass.java 文件中, ( D )程序代码能够编译通过。

A、import java.awt.*; B、package mypackage; package mypackage; import java.awt.*;

class MyClass { } public class myClass { } C、int m; D、/*This is a comment*/ package mypackage; package mypackage; import java.awt.*; import java.awt.*; class MyClass { } public class MyClass { }

13.当需要在文件中写入字符而不是字节时,在下面的类中最好选用( B )类。

A、java.io.RandomAccessFile B、java.io.PrintWriter

C、java.io.PrintStream D、java.io.PrintOutputStream

14.关于事件监听,正确的是( C ) 。 A、一个事件监听器只能监听一个组件 B、一个事件监听器只能监听处理一种事件

C、一个组件可以注册多个事件监听器,一个事件监听器也可以注册到多个组件上

D、一个组件只能引发一种事件

二、填空题

1. Class类是由 Java 编译器自动生成的,它伴随每个类。

2.任何一个 Java 程序都默认引入一个包,这个包的名字是java.lang 。 3.在 Java 语言中,有一个类是所有类或接口的父类,这个类的名称是

java.lang.Object 。

4.在 Java 中所实现的二维数组,实际上是由一维数组构成的数组 。 5.在 Java 中,字符串是作为对象出现的。

6.接口可以看作是仅容纳抽象方法 、常量,而又不能直接生成对象的特殊抽象类。 7.FileInputStream 是字节流,BufferedWriter 是字符流,ObjectOutputStream 是对象流 。

8.在 Java 中,组件不能独立地显示出来,必须将组件放在一定的 容器 中才能显示。

9.Applet 是能够嵌入到 HTML 格式中的文件,并能够在浏览器中运行的 Java 类。

三、判断题

1、Java 程序一般应当含有 main 方法,因为它是所有 Java 程序执行的入口。 ( × )

2、Java 语言的标识符是不区分大小写的。 ( × )

3、 Java 语言为所有的 Java 程序自动导入包 “java.lang” , 因此 Java 程序

可以直接用 “java.lang”中的类和接口。位于类继承关系层次结构树的根部的类 Object 就是在包“java.lang”中的类。( √ )

4、有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。 ( × ) 5、Java 语言规定,任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用) ,并且调用父类构造方法的语句必须是子类构造方法的第一条语句。 ( √ )

6、Java 语言对内存的释放是采用垃圾回收机制。Java 虚拟机自动判断并收集“垃圾” ,但一般不会立即释放它们的存储空间。 ( × ) 7、 在 编 译 Java 源程序时, 计算机根本不会去识别各个变量名的具体含义,

因此命名规范对编写 Java程序而言不是必要的,而且有可能会降低编写 Java 源程序的效率。 ( × )

一、单项选择题

1.作为 Java 应用程序入口的 main 方法,其声明格式可以是( A ) 。 A、public static void main(String[] args) B、public static int main(String[] args) C、public void main(String[] args) D、public int main(String[] args) 2.在一个合法的 Java 源程序文件中定义了 3 个类,其中属性为 public 的类可能有( B )个。

A、0 B、1 C、2 D、3

3.下面( B )单词是 Java 语言的关键字。

A、sizeof B、abstract C、null D、String

4.下面( C )语句不会出现编译警告或错误。 A、float f = 1.3; B、char c = \ C、byte b = 25; D、boolean d = null;

5.下面程序片段输出的是( D ) 。 int i = 0, j = 9; do {

if(i++ > --j) break;

} while(i < 4);

System.out.println(\

A、i = 4 and j = 4 B、i = 5 and j = 5 C、i = 5 and j = 4 D、i = 4 and j = 5

6.对于下面( B )类定义,可以通过“new J_Class()”生成类 J_Class 的实例对象。

A、public class J_Class { public J_Class(void) { } }

B、public c lass J _Class { } C、public class J_Class {

public J_Class(String s) { } }

D、public class J_Class {

public void J_Class() { } public J_Class(String s) { }

7.要求设计一个类,它拥有一个特殊的成员域,该成员域必须能够被这个类的子类访问到,但是不能被不在同一个包内的其他类访问到。下面( C )可以满足上述要求。

A、该成员域的封装属性设置为 public B、该成员域的封装属性设置为 private C、该成员域的封装属性设置为 protected D、该成员域不需要特殊的封装属性

8.关于下面程序, ( D )的结论是正确。 public class J_Test {

public static void main(String[] args) { int[] a = new int[5];

boolean[] b = new boolean[5]; System.out.println(a[4]); System.out.println(b[5]);

} }

A、程序可以通过编译并正常运行,结果输出“0false” B、程序可以通过编译并正常运行,结果输出“1true” C、程序无法通过编译

D、程序可以通过编译,但无法正常运行

9.下面这段代码会产生( C )个 String 对象。 String s1 = \

String s2 = s1.substring(2, 3); String s3 = s1.toString();

String s4 = new StringBuffer(s1).toString(); A、1 B、2 C、3 D、4

10.关于下面程序, ( D )的结论是正确的。 public class J_Test {

public static void main(String[] args) { try { return; }

finally {

System.out.println(\ } } }

A、上面程序含有编译错误

B、上面程序在运行时会产生一个运行时异常 C、上面程序会正常运行,但不产生任何输出 D、上面程序输出“1”

11.用“new FileOutputStream(“data.txt”,true)”创建一个 FileOutputStream 实例对象,则下面( B )说法是正确的。

A、如果文件“data.txt”存在,则将抛出 IOException 异常

B、如果文件“data.txt”存在,则将在文件的末尾开始添加新内容 C、如果文件“data.txt”存在,则将覆盖掉文件中已有的内容 D、如果文件“data.txt”不存在,则将抛出 IOException 异常

12.改变当前容器的布局方式, ( A ) 。

A、调用方法 setLayout

B、容器一旦生成,它的布局方式就不能改变 C、调用方法 setLayoutManager D、调用方法 updateLayout

13.关于小应用程序执行过程的生命周期, ( D )的结论是正确的。

A、当小应用程序从运行态进入停止态时,首先要调用的成员方法是 pause() B、当关闭正处于运行态的小应用程序时,首先要调用的成员方法是 destory() C、当小应用程序从停止态进入运行态时,首先要调用的成员方法是 paint() D、当关闭正处于停止态的小应用程序时,首先要调用的成员方法是 destory()

14.下面( D )方法可以用来加载 JDBC 驱动程序。 A、类 java.sql.DriverManager 的 getDriver 方法 B、类 java.sql.DriverManager 的 getDrivers 方法 C、java.sql.Driver 的方法 connect

D、类 java.lang.Class 的 forName 方法

二、概念填空题

1.Java 语言通过 垃圾回收 机制简化了程序的内存管理。

2.Java 标识符是由 字母、数字、下划线、美元符号 组成的字符序列。 3.面向对象的计算机语言一般应具有 3 个基本特性,分别是 封装、继承、多态 。

4.Java 中的 java.lang.Object 类是最顶层的类,所有其他的类都是它直接或间接的子类。

5.在 Java 的基本数据类型中,char 类型采用 Unicode 编码方案,这样,无论是中文字符还是英文字符,都是占 2 字节内存空间。 6.类的静态成员属于这个类的 所有对象 。

7.一个类要具有可序列化的特性一般就必须实现接口 java.io.Serializable 。

8.类 String 本身负责维护一个字符串池。该字符串池存放 字符串常量 所指向的字符串示例,以及调用过类 String 成员方法 intern 后的字符串示例。

三、判断题

1、父类的构造方法不可以被子类继承。 ( √ )

2、在接口中定义的方法都只能是没有方法体的抽象方法。 ( √ ) 3、Java 程序分成应用程序和小应用程序两类,所以一个 Java 程序不可能既是应用程序,又是小应用程序。 ( × ) 4、javadoc 是一种从文档注释生成 HTML 帮助文件的工具。它可以处理在 java 源程序中介于“/*”和“*/”之间的注释,并生成相应的程序文档。 ( × )

5、采用事件适配器比采用事件监听器的执行效率要高,因为采用事件适配器可以只处理所需处理的事件。 ( × )

6、每个 java.sql.Statement 实例对象只能对应一个 java.sql.ResultSet 实例对象,所以如果执行 SQL 语句返回多个结果,一般需要分多次取得返回结果。 ( √ )

一、单项选择题

1.下面选项中, ( B )是 Java 关键字。

A、then B、continue C、java D、PUBLIC

2.下面语句中,正确的是( B ) 。 A、boolean b=”true”; B、double x=2.5f; C、char c=”A”; D、float y=0.8d;

3.设有定义“int k=3;” ,语法正确且值为 true 的表达式是( D ) 。 A、k=3; B、k++>3; C、k--==3&&k++==3; D、k++==3||++k>3; 4.设有定义:String s=“World”;,下列语句错误的是( D ) 。 A、int m=s.indexOf(‘r’); B、char c=s.charAt(0);

C、int n=s.length(); D、String str=s.append(‘2’);

5.假设在 Java 源程序文件“MyClass.java”中只含有一个类,而且这个类必须能够被位于个庞大的软件系统中的所有 Java 类访问到,那么下面( C )声明有可能是符合要求的类声明。 A、private class MyClass extends Object B、public class myclass extends Object C、public class MyClass

D、class MyClass extends Object

6.在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是( A ) 。

A、与文件目录的层次相同 B、与文件的结构相同 C、与文件类型相同 D、与文件大小相同

7.下面关于数组的说法,错误的是( B ) 。

A、数组是最简单的复合数据类型,是一系列数据的集合 B、声明数组时,必须分配内存

C、数组的元素可以是值(基本数据类型) 、对象或其他数组 D、一个数组中的所有值都必须是相同的类型

8.下面关于方法的说法,错误的是( C ) 。 A、Java 中的方法参数传递时传值调用,而不是地址调用

B、方法体是对方法的实现,包括变量声明和 Java 的合法语句

C、如果程序定义了一个或多个构造方法,在创建对象时,也可以用系统自

动生成空的构造方法

D、类的私有方法不能被其子类直接访问

9.下面关于内部类的说法,错误的是( A ) 。 A、内部类不能有自己的成员方法和成员变量

B、内部类可用 abstract 修饰定义为抽象类,也可以用 private 或 protected 定义

C、内部类可作为其他类的成员,而且可访问它所在类的成员 D、除 static 内部类外,不能在类内声明 static 成员

10.在字节流中,可以使用文件名作为参数的类有( C ) 。 A、DataInputStream B、BufferedReader C、FileInputStream D、FileReader

11.语句:JTextField=new JTextField(8);,语句中的 8 表示文本框的( A ) 。

A、列宽 B、所显示的字符串 C、行高 D、编号

12.文档标签@exception 在文档注释中的格式一般是( A ) 。 A、@exception 类名 描述 B、@exception 异常描述

C、@exception 异常变量名 描述 D、不存在文档标签@exception

二、填空题

1.Java 虚拟机运行 Java 程序的基本步骤是:首先从后缀为 class 的文件加载代码到内存中,接着在内存中检测代码的合法性和安全性,然后解释执行合法和安全的代码。

2.在 Java 语言中,字符串直接量是用双引号括起来的字符序列,字符串不是字符数组,而是类 String 的实例对象。

3.类 System 的三个成员域 in、out、err 分别指向标准输入流、标准输出流和标准错误输出流。

4.有时运行一个 Java 小应用程序需要多个文件,如“.class”文件、声音文件、图像文件等。为了提高效率,可以考虑将运行小应用程序所需要的各种文件做成一个 jar 文件 。

5.假设用 Java 语言为某大学(网址为“hznu.edu.cn” )编写了图像处理包

(image) ,那么按照 Sun公司的建议,这个包的名称最好为 cn.edu.hznu.image 。 6.在编写和运行数据库程序之前需要建立起 Java 数据库程序的开发环境,这至少需要安装 JDK、数据库和 JDBC 驱动程序 。

7.传递给实现了 java.awt.event.MouseMotionListener 接口的类中 mouseDragged 方法的事件对象是 MouseEvent 类。

三、判断题

1、假设有一个 Java 源程序文件,它只定义了一个具有 public 属性的类 Hello,那么编译该文件的命令是“javac Hello” 。 ( × ) 2、switch 语句中可以没有 default 子句。 ( √ ) 3、常量 87.363 的数据类型是 float。 ( × )

4、构造方法一般不允许有任何返回值,因此需要在构造方法返回类型处标注为 void。 ( × ) 5、如果在定义一个类的时候没有用到关键字 extends,则这个类没有直接父类。 ( × )

6、抽象方法不能含有方法体,并且必须在抽象类中。 ( × )

7、如果类的访问控制符是 public,则类中成员的访问控制属性也必须是 public。 ( × ) 8、假设文件“a.txt”的长度为 100 字节,那么当正常运行语句“OutputStream f = new

FileOutputStream(new File(“a.txt”));”之后,文件“a.txt”的长度变为 0 字节。 ( √ )

9、 对于数组 int[][] t = {{1,2,3},{4,5,6}}来说, t.length 等于 3, t[0].length 等于 2。 ( × )