选择题
第一章 java语言概述
- 在下列概念中, Java语言只保留了 B .
A.运算符重载 B.方法重载 C.指针` D.结构和联合
- 下列关于Java语言特性的描述中,错误的是___D_.
A.支持多线程操作
B. JAVA程序与平台无关
C. JAVA程序可以直接访问Internet上的对象
D. 支持单继承和多继承 - 下列关于JavaApplication程序在结构上特点的描述中,错误的是 C
A. Java程序是由一个或多个类组成的
B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中
C. Java程序的文件名要与某个类名相同 //这个描述是不完全准确的。实际上,Java源文件的名称(不包括.java扩展名)必须与**公共类(public class)**的名称相同。如果源文件中没有公共类,那么文件名可以与任何类名不同。但是,如果源文件中有一个公共类,那么文件名必须与这个公共类的名称相同。
D. 组成Java程序的多个类中,有且仅有一个主类. - //这个描述是不完全准确的。实际上,Java源文件的名称(不包括.java扩展名)必须与**公共类(public class)**的名称相同。如果源文件中没有公共类,那么文件名可以与任何类名不同。但是,如果源文件中有一个公共类,那么文件名必须与这个公共类的名称相同。
- Java 程序经过编译后生成的文件的后缀是 C
A. .obj B. .exe C. .class D. .java - 下列关于运行字节码文件的命令行参数的描述中,正确的是 A
A.第一个命令行参数被存放在args[0]中
B.第一个命令行参数被存放在args[1]中
C.命令行的命令字被存放在args[0]中
D.数组args[]的大小与命令行参数的个数无关。 - 下列关于java语言面向对象特性描述中,错误的是___C___
A.具有封装性 B. 支持多态性,允许方法重载
C. 支持单继承和多继承 D. 支持多接口 - 下列关于java语言与C++语言异同点的描述中,错误的是______D
A. java语言取消了goto语句|
B. java语言中取消了指针
C. java 语言不支持运算符重载
D. java 语言仍保留了结构和联合 - 列关于JavaApplication程序特点的描述中,错误的是 A
A. 该程序只能是一个名字与主类名相同的文件组成
B. 该程序中仅有一个主方法,并被包含在某个类中
C. 该 程序中没有不属于某个类的方法
D. 该程序实际上是一个类串 - 使用Java语言编写的源程序保存时的文件扩展名是( B )。
A.class B.java C.cpp D.txt - Java源文件和编译后的文件扩展名分别为( B )
(A) .class和 .java (B).java和 .class
(C).class和 .class (D) .java和 .java - Java语言使用的字符码集是 ( D )
(A) ASCII (B) BCD
(C) DCB (D) Unicode - 下面关于main方法说明正确的是( B )
(A) public main(String args[ ])
(B) public static void main(String args[ ])
(C) private static void main(String args[ ])
(D) void main() - Java application中的主类需包含main方法以下哪项是main方法的正确形参( B )
A、 String args B、String args[] C、Char arg D、StringBuffer args[]
- 下列关于Java语言和C++语言之间差别的描述中,不正确的一项是( A )
A. Java虽然提供了安全机制,但是还是没有C++安全
B. Java的内存管理优于C++的内存管理
C. Java没有全局变量,但是C++有全局变量
D. Java没有指针,但是C++的指针最灵活 - 关于Java语言的内存回收机制,下列选项中最正确的一项是(C )
A. Java程序要求用户必须手工创建一个线程来释放内存
B. Java程序允许用户使用指针来释放内存
C. 内存回收线程负责释放无用内存
D. 内存回收线程不能释放内存对象 - 下列关于Java语言和C++语言之间差别的描述中,不正确的一项是(A )
A. Java虽然提供了安全机制,但是还是没有C++安全
B. Java的内存管理优于C++的内存管理
C. Java没有全局变量,但是C++有全局变量
D. Java没有指针,但是C++的指针最灵活 - Java语言是一种( D)
A. 面向机器的编程语言 B. 面向过程的编译型编程语言
C. 面向问题的解释型编程语言 D. 面向对象的解释型编程语言 - 下面的说法正确的是( C )。
A. Java语言里的线程不是对象
B. Java中任何可执行的类都需要main方法
C. Java语言的类都是java.1ang.Object的子类
D. double是Java语言的合法标识符 - 关于Java语言的内存回收机制,下列选项中最正确的一项是(C )
A. Java程序要求用户必须手工创建一个线程来释放内存
B. Java程序允许用户使用指针来释放内存
C. 内存回收线程负责释放无用内存
D. 内存回收线程不能释放内存对象
第二章 java语言语法基础
- java语言所用的字符集中字符是______B____位
A. 8 B. 16 C. 32 D. 64 - 下列关于标识符的描述中,正确的是____A___
A.标识符中可以使用下划线和美元符
B.标识符可以使用边接符和井号符
C.标识符中大小写字母是无区别的
D.标识符可选用关键字 - Java语言的各种分隔符中,非法的是_____D____
A. 空白符 B.分号 C. 逗号 D. 问号 - 下列Java语言中可用的注释符,其中错误的是____C____
A. // B. /*...*/ C. /**.. **/ D. /**...*/ - Java语言中字符型数据的长度是_____B____位。
A 8 B. 16 C. 32 D. 64 - 下列描述的两种数据类型的长度不相等的是_____A_____
A. 字符型和布尔型 B.字节型和布尔型
C. 短整型和字符型 D. 整型和单精度浮点型 - 下列是Java语言中的复合数据类型,其中错误的是_____C___
A.数组 B.接口 C.枚举 D.类 - 下面是关于Java语言中数据类型的强制转换的描述,其中错误的是_____BC___
A. 当数据类型从高转换为低时需要强制转换
B. 强制转换时使用强制转换运算符,形如(<类型>)
C. 浮点型数据强制转换为整形时,小数部分四舍五入// 这是错误的。在Java中,当浮点型(如float或double)被强制转换为整型(如int或long)时,小数部分会被直接丢弃,而不是四舍五入。例如,(int) 3.9的结果是3,而不是4。
D. 赋值操作中都要采用强制类型转换 // 这是错误的。并非所有的赋值操作都需要强制类型转换。只有当你尝试将一个类型的值赋给另一个不兼容的类型时,才需要强制类型转换。例如,你可以直接将一个int类型的值赋给long类型的变量,而不需要任何转换,因为long可以容纳int的所有值。 - 下列关于常量的描述中,错误的是_____BD_____
A.Java语言的常量有5种
B. 浮点整形数据12.456是单精度
C. 布尔型常量只有两个选值:true和false
D. 字符串常量含有结束符’\0’ - 下列关于定义符号常量的描述中,错误的是___?______
A.定义符号常量使用关键字const
B.定义符号常量时要赋初值
C.符号常量既可定义为类成员,又可在方法中定义
D.定义符号常量时必须给出数据类型-
- 下列关于变量的默认值的描述,其中错误的是__BC__
A.定义变量而没有进行初始化时,该变量具有默认值
B.字符型变量的默认值为换行符
C.布尔型变量的默认值为true
D.变量的默认值是可以被改变的 //这是正确的。一旦你声明并(可能隐式地)初始化了一个变量,你就可以在程序中的任何点更改其值。 - 下列关于变量定义的描述中,正确的是____AC____
A.定义变量时,至少应指出变量的名字和类型
B.定义变量时没有给出初值,该变量可能是无意义值
C.定义变量时,同一个类型多个变量间可用逗号分隔
D.定义变量时,必须要给变量初始化 - 下列关于变量作用域的描述,错误的是___D____
A. 在某个作用域定义的变量,仅在该作用域内是可见的,而在该作用域外是不可见的。
B. 在类中定义的变量的作用域在该类中的方法内是可以使用的
C. 在方法中定义的变量的作用域仅在该方法内
D. 在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量。 - 下列关于开关语句的描述中,正确的是
A.开关语句中, default子句可以省略
B.开关语句中,case子句的<语句序列>中一定含有break语句
C.开关语句中,case子句和default子句都可以有多个
D.退出开关语句的唯一条件是执行break语句//关于开关语句(通常指的是C/C++、Java、C#等语言中的switch语句),我们来分析每个选项的正确性:
A. 开关语句中, default子句可以省略
这是正确的。default子句在switch语句中是可选的。如果没有任何case与给定的值匹配,并且没有default子句,那么switch语句将不执行任何操作。
B. 开关语句中,case子句的<语句序列>中一定含有break语句
这是不正确的。虽然通常建议在每个case子句结束时使用break语句以防止“fall-through”(即执行到下一个case),但在某些情况下,程序员可能故意省略break以实现特定的逻辑。
C. 开关语句中,case子句和default子句都可以有多个
这是不正确的。在switch语句中,case子句可以有多个,但default子句只能有一个,并且通常放在所有case子句之后。
D. 退出开关语句的唯一条件是执行break语句
这也是不正确的。switch语句的退出条件不仅仅是执行break语句。当switch语句中的所有case和default子句(如果存在)都被执行(或跳过)后,switch语句就会自然退出。此外,如果switch语句在一个函数或方法内部,并且该函数或方法通过return语句返回,那么switch语句也会退出。
综上所述,正确的选项是A。
- 下列哪个编译没有警告或错误 C
A. float f=1.3; B. char c="a";
C. byte b=254; D. boolean b=null;
- 下列表达式中,非法的是 B
int a=5, b=6; double c=1.1, d=2.2;
A. a+c+++d B.(a+c)-- C. c<<b D. a!=? c:d - 下列循环语句的循环次数是 D
int i=5;
do{
System.out.println(i--)
i--;
}while(i!=0);
A. 0 B. 1 C. 5 D.无限 - 下列关于Java语言的数组描述中,错误的是 D
A.数组的长度通常用length表示
B.数组的下标从0开始
C.数组元素是按顺序存放在内存的
D.数组在赋初值和赋值时都不判界 - 下列关于数组的定义形式,正确的是( B)
A.int []a; a=new int; B. char b[]; b=new char[80];
C.int []c=new char[10]; D.int []d[3] = new int[2][]; - 下列关字字符串的描述中,错误的是___B_____
A. Java语言中,字符串分为字符串常量和字符串变量两种
B.两种不同的字符串都是String类的对象|
C. Java语言中不再使用字符数组存放字符串
D. Java Application程序的main()的对数args[]是一个String类的对象数组,用它可存放若干个命令行参数。 - 设有数组的定义int[] a = new int[3]则下面对数组元素的引用错误的是( C )。
Aa[0]; Ba[a.length-1];
Ca[3]; Dint i=1 a[i]; - 下面哪一个是Java中不合法的标识符( D )。
A$persons BtwoNum
C_myVar D*point - 下面哪个是非法的( B )
(A) int I = 32; (B) float f = 45.0;
(C) double d = 45.0; (D) char c = ‘u’ - 以下代码段执行后的输出结果为( C )
int x=3 int y =10
System.out.println(y%x);
A、 -1 B、2 C、1 D、3 - 若有定义byte[] x={11,22,33,-66}; 其中0≤k≤3则对x数组元素错误的引用是( C )
Ax[5-3] Bx[k] C x[k+5] Dx[0] - 以下哪个不是Java的原始数据类型 (B)
A、int B、Boolean C、float D、char - 有以下方法的定义请选择该方法的返回类型( D )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double - 有以下程序片段下列哪个选项不能插入到行1。( D)
1.
2.public class Interesting{
3.//do sth
4. }
A、import java.awt.*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ } - 下面哪些选项不可以用作变量名的首字符?( C )
A. 字母B. 下划线(_) C. 数字 D. 美圆符号($) - 下面的程序段输出的结果是( A )
String s1="Abc",s2="Bcd";
System.out.println(s1.compareTo(s2));
A. -1 B. 1 C. false D. true//这段程序段使用 String 类的 compareTo 方法来比较两个字符串 s1 和 s2。
compareTo 方法是这样工作的:
如果参数字符串与当前字符串相等,则返回 0。
如果参数字符串的字典顺序在当前字符串之前,则返回一个负数。
如果参数字符串的字典顺序在当前字符串之后,则返回一个正数。在这个例子中,s1 是 "Abc",而 s2 是 "Bcd"。
在字典顺序中,"Abc" 是在 "Bcd" 之前的,因为 "A" 的ASCII值小于 "B" 的ASCII值。
因此,s1.compareTo(s2) 将返回一个负数,即 -1。
所以,答案是 A. -1。
- 下列表达式哪些是正确的?( C )
A. byte=340 B. Boolean=1
C. long l=-2 D. double=0.9239d - 下列方法定义中,方法头不正确的是( D)
A. public int x(){...} B. public static int x(double y){...}
C. void x(double d) D. public static x(double a){...} - 执行下面语句,myArray数组的长度是____B___
int[] myArray= new int [3]; myArray= new int[6];
A. 3 B.6 C.9 D.执行错误 E. 5 - 下列关于int类型的说法中,正确的一个是(C )
A. int类型可以自动转换为所有的简单类型
B. int类型只能自动转换为float、long、double类型
C. 103是合法的int类型常量
D. int类型包括有符号整型和无符号整型 - 编译一个定义了两个类和三个方法的的Java源码文件,总共会产生几个字节码文件,这些字节码文件的扩展名是什么?(D)
A. 5个字节码文件,以".java"为扩展名
B. 2个字节码文件,以".java"为扩展名
C. 5个字节码文件,以".class"为扩展名
D. 2个字节码文件,以".class"为扩展名 - 现有一个变量声明为boolean b1;下面赋值语句中正确的是(A )
A. b1 = true; B. b1 = True;
C. b1 = "ture"; D. b1 = 0; - 若有如下程序段:
int index=1;
int foo[]=new int[3];
int bar=foo[index]
int baz=bar+index;
程序的执行结果正确的是( B )。
A. 整型变量baz的值为0 B. 整型变量baz的值为1
C. 整型变量baz的值为2 D. 执行有错误 - 下列语句执行后,i的值是( C )
int i=2;
do{i*=i;} while(i<16);
A. 4 B. 8 C. 16 D. 32//
这是一个 do-while 循环,它的特点是先执行循环体,然后检查条件是否满足以决定是否继续循环。初始时,i = 2。
进入循环体,执行 i *= i;,即 i = i * i;,此时 i 的值变为 2 * 2 = 4。
检查循环条件 i < 16,此时 i 的值为 4,条件成立,所以继续循环。
再次进入循环体,执行 i *= i;,即 i = i * i;,此时 i 的值变为 4 * 4 = 16。
检查循环条件 i < 16,此时 i 的值为 16,条件不成立,所以退出循环。最后,i 的值是 16。
所以答案是 C. 16。
- 下列说法中,正确的一个是( A )
A. 接口属于复合数据类型 B. 接口属于简单数据类型
C. 标识符的总的字符个数是有限的 D. 标识符就是保留字 - 下列表达式哪些是正确的?( C )
A. byte=340 B. Boolean=1
C. long l=-2 D. double=0.9239d - 有如下数组:
byte[] arrayl,array2[]
byte array3[][]
byte[][]array4
假设每个变量都已初始化,以下哪一条语句会导致编译错误?( A )
A. array2=arrayl; B. array2=array3;
C. array2=array4; D. A并且B - 下面哪条语句定义了5个元素的数组( A )
A、int [] a={22,23,24,25,12}; B、int a[]=new int(5);
C、int [5] array; D、int [] arr; - 下面哪个语句不能定义一个字符变量( B )
A、char c1=’a’; B、char c2=” S ”
C、char c4=97 D、char c3=’\u0041’;
原因是char类型用于存储单个字符,而” S “是一个字符串字面量,由两个字符(一个空格、一个大写字母'S')以及两个双引号组成。要定义一个字符变量并初始化为'S'(不包括前后的空格),应该这样写:
char c2 = 'S';
其他选项都是合法的字符变量定义:
A、char c1='a'; - 正确,定义了一个字符变量c1并初始化为字符'a'。
C、char c4=97; - 正确,因为97是字符'a'的ASCII码值,可以直接用来初始化char类型的变量。
D、char c3='\u0041'; - 正确,
第三章 java语言面向对象的特征
- 下列对封装性的描述中,错误的是_______B
A.封装体包含了属性和行为
B.封装体中的属性和行为的访问权限是相同的
C.被封装的某些信息在封装体外是不可见的
D.封装使得抽象的数据类型提高了可重用性 - 下列关于继承性的描述中,错误的是 C
A.一个类可以同时生成多个子类
B.子类继承了父类的所有成员
C.Java语言支持单继承和多重继承
D.Java语言通过接口可使子类使用多个父类的成员 - 下列关于多态性的描述中,错误的是 A
A.java语言允许运算符重载
B.java语言允许方法重载
C.java语言允许变量覆盖
D.多态性提高了程序的抽象性和简洁性 - 在类的修饰符中,规定只能被同一包类所使用的修饰符是____B___
A.public B.默认 C.final D.abstract - 在成员变量的修饰符中,规定只允许该类自身访问的修饰符是
A.private B.public C.默认 D.protected - 在成员变量的修饰符中,规定访问权限包含类自身,同包的其他类和其它包中的子类的修饰符是: D
A.private B.public C.默认 D.protected - 下列关于构造方法的特点的描述中, 错误的是 A
A.不可重载 B.方法名同类名
C.无返回值 D.系统自动调用 - 下列关于静态方法的描述中,错误的是 D
A.在类体内说明静态方法用关键字static
B. 静态方法可能处理静态变量或调用静态方法
C. 静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能类名调用 - 下列对静态初始化器的描述中,错误的是 D
A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化的
B.静态初始化器是由关键字static和一对花括号组成的语句组
C.静态初始化器不同于构造方法,它不是方法
D.初始化器是产生新对象时,由系统自动调用的 - 下列关于抽象类的描述中,错误的是_______C___
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类 - 下列关于类的继承性的描述中,错误的是 D
A.继承是在已有的基础上生成新类的一种方法
B.子类继承父类的所有成员
C.Java语言要求了个子类只有一个父类
D.父类中成员的访问权限在子类中将被改变 - 下列关于子类继承父类的成员的描述中,错误的是 A
A.子类中继承父类中的所有成员都可以直接访问
B.子类中定义的与父类同名的变量时,使用自己定义的变量
C.当子类中出现成员方法头与父类的方法头相同的方法时,子类成员方法覆盖父类了成员方法
D.方法重载是编译时处理的,而方法的覆盖是在运行时处理的 - 下列关于接口的描述中,错误的是 B
A.接口实际上是由常量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中,通常要给出接口袋定义的抽象方法的具体实现 - 下列关于包的描述中,错误的是 A
A.包是一种特殊的类 C.若干个类的集合
C.包是使用package 语句创建的 D.包有有名包和无名包两种 - 下列常用包中,存放用户图形界面类库的包是___A___
A. java.awt B. java.lang C. java.util D. java.io - 下列是系统提供的常用的类,所有类的父类的类是____B____
A. Math B. Object C. System D. String - 下列关于方法的描述中,错误的是___B___
A. 方法只有类的成员方法,再无其他方法
B. 方法可以重载和内联
C. 对象作为方法的参数时,参数传递的是对象的地址值
D. 方法的返回值是通过return来实现的 - 在下列关于静态成员的描述中,错误的是___D____
A. 静态成员有成员变量和方法两种
B. 静态成员的修饰符是static
C. 静态成员可以使用类名来访问,也可使用对象名的访问
D. 静态方法可以访问静态成员变量也可以访问非静态的成员变量。 - 在下列关于类的继承的描述中,错误的是____B___
A. 子类只允许一个父类
B. 一个父类只能生成一个子类
C. 继承不改变成员访问权限
D. 私有成员和构造方法不能继承 - 在下列关于方法的重载和覆盖的描述中,错误的是__D____
A. 方法重载是指在面一个类中允许出现方法参数、个数、顺序不同而方法名相同的若干个方法
B. 方法覆盖是指在父类和子类之间出现的方法头相同而方法体不同的多个方法
C. 方法重载是在编译时进行选择的
D. 方法覆盖是在编译时进行选择的 - 给出下面代码关于该程序以下哪个说法是正确的( C )
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{ System.out.println(arr[0]); }
}
A、编译时将产生错误 B、编译时正确运行时将产生错误
C、输出零 D、输出空 - 以下有关构造方法的说法正确的是( A )
A 一个类的构造方法可以有多个
B 构造方法在类定义时被调用
C 构造方法只能由对象中的其它方法调用。
D 构造方法可以和类同名也可以和类名不同 - 在Java中一个类可同时定义许多同名的方法这些方法的形式参数的个数、类型或顺序各不相同传回的值也可以不相同。这种面向对象程序特性称为( C )
A 隐藏 B 重写 C 重载 D Java不支持此特性 - 以下关于继承的叙述正确的是( A )。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承 - 关于抽象方法的说法正确的是( )
(A)可以有方法体 (B) 可以出现在非抽象类中
(C) 是没有方法体的方法 (D) 抽象类中的方法都是抽象方法 - 如果一个类的成员变量只能在所在类中使用则该成员变量必须使用的修饰是( )
(A) public (B) protected (C) private (D) static - 对于一个Java源文件import, class定义以及package正确的顺序是( A )
(A) package,import,class (B) class,import,package
(C) import,package,class (D) package,class,import - 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它该方法头的形式为( A )。
Astatic void method( ) Bpublic void method( )
Cfinal void method( ) Dabstract void method( ) - 类与对象的关系是( A )。
A类是对象的抽象 B对象是类的抽象
C对象是类的子类 D类是对象的具体实例 - 在类的定义中构造函数的作用是( D )。
A保护成员变量 B读取类的成员变量
C描述类的特征 D初始化成员变量 - 在类的定义中可以有两个同名函数这种现象称为函数( D )。
A封装 B继承 C覆盖 D重载 - 设有下面两个赋值语句
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue();
下述说法正确的是( D )。
A、a是整数类型变量b是整数类对象。 B、a是整数类对象b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。 - 为了使包ch4在当前程序中可见可以使用的语句是( A )。
Aimport ch4.*; Bpackage ch4.*;
Cch4 import; Dch4 package; - 下面程序段执行后b的值是( B )。
Integer integ =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false - 关于对象成员占用内存的说法哪个正确( B )
A同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段但静态成员共享相同的内存空间
C对象的方法不占用内存
D以上都不对 - 覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间而重载可以发生在同一个类中
B覆盖方法可以不同名而重载方法必须同名
Cfinal修饰的方法可以被覆盖但不能被重载
D覆盖与重载是同一回事 - 类Account中方法的声明哪项正确( C )
A. class Account B. class Account
{ deposit(); } { void deposit(); }
C. class Account D. class Account
{ void deposit(){} } { void deposit{} } - 如果一个类的成员变量只能在所在类中使用则该成员变量必须使用的修饰是( C )
(A) public (B) protected (C) private (D) static - 定义主类的类头时可以使用的访问控制符是( )
A. public B. protected C. private D. private protected - 为了区分重载多态中同名的不同方法,要求( A )
A. 形式参数个数或者类型不同 B. 返回值类型不同
C. 调用时用类名或对象名做前缀 D. 形式参数名称不同 - 下列哪个不是面向对象程序设计方法的特点( D )
A. 抽象 B. 继承 C. 多态 D. 结构化 - 关于类的说法中,不正确的一项是( D)
A. 一般类体的域包括常量、变量、数组等独立的实体
B. 类中的每个方法都由方法头和方法体构成
C. java程序中可以有多个类,但是公共类只有一个
D. java程序可以有多个公共类 - 下列选项中,用于在程序开头引入包的关键字是(A )
A. import B. implements C. interface D. protected - 在一个相同的包中,想让一个类能够引用另一个类的成员,达到这个目的最小的访问控制权限的修饰符是什么?( C )
A. public B. private C. protected D. 不需要任何修饰符 - 下述声明中哪一种可防止该类产生子类?( D )
A. static class FooBar{} B. private class Foobar{}
C. abstract class FooBar{} D . final public class FooBar{} - 一下关于面向对象概念的描述中,不正确的一项是( B)
A. 在现实生活中,对象是指客观世界的实体
B. 程序中的对象就是现实生活中的对象
C. 在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类
D. 在程序中,对象是一组变量和相关方法的集合 - 现有
public class Parentt {
public void change (int x){}
}
public class Child extends Parent{
//覆盖父类chang()的方法
} ( c )
A. protected void change (int x){}
B. public void change(int x, int y){}
C. public void change (int x){}
D. public void change (String s){}
- 现有
public class Pet{}
public class Cat extends Pet{}
执行代码
Cat c= new Cat();
Pet p=new Pet();
后下列哪项是正确的_____D_因重复定义了p___
A. Pet p=(Pet)c 编译错误
B. Pet p=(Pet)c 运行错误
C. Pet p=(Pet)c 正常运行
D.以上均不对 - 下面哪个方法不是public int add(int a)的重载方法____B_____
A. public int add(long a)
B. public void add(int a)
C. public void add(long a)
D. public int add(float a)
- 为了使System.out.println()输出对象引用时得到有意义的信息,我们应覆盖Object类的哪个方法___B___
A. equals B. toString C. hashode D.notify - 在子类中调用父类中被覆盖的方法时需要使用哪项关键字____B___
A. this B.super C.new D.以上都不是 - 下列有关接口哪项定义正确____C___
A. interface C{int a;}
B. public interface A implements B {}
C. public interface A {int a(); }
D. abstract interface D {} - 为了区分重载多态中同名的不同方法,要求(A )
A. 形式参数个数或者类型不同 B. 返回值类型不同
C. 调用时用类名或对象名做前缀 D. 形式参数名称不同 - Java语言的类间的继承关系是(B )
A. 多重的 B. 单重的 C. 线程的 D. 不能继承 - 分析以下程序段:
abstract class AbstractIt {
abstract float getFloat (); //第2行
}
public class AbstractTest extends AbstractIt {
private float f1=1.0f;
private float getFloat(){return fl;} //第6行
}
下面哪一种结果正确?( C )
A. 可编译成功 B. 在第6行运行失败
C. 在第6行编译失败 D. 在第2行编译失败 - 设有两个类A、B,以下描述中表示B继承自A的是( D )
A. class A extends B B. class B implements A
C. class A implements D. class B extends A - 下面的程序段输出的结果是(A )
String s1="Java",s2="java";
System.out.println(s1.equalsIgnoreCase(s2));
A. true B. false C. Java D. java - 执行下列代码后,哪个结论是正确的?( B )
String[] s=new String[10]
A. s[10]为"" B. s[9]为null
C. s[0]为未定义 D. s.length()为10 - 对象使用时,下面描述错误的是( B )
A.通过“.”运算符调用成员变量和方法
B.通过成员变量的访问权限设定限制自身对这些变量方法的调用
C.将一个对象申明为类的成员时,必须在使用前为其分配内存
D.在方法中使用对象作为参数时,采用引用调用 - 定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:( C)
A.private class MyClass extends Object
B.class MyClass extends Object
C.public class MyClass
D.private class MyClass extends Object
第四章 java Applet及其应用
- Applet类是属于_____B____包的
A. java.awt B.java.applet C. java.io D.java.lang - 下列关于Applet程序的描述中,错误的是 B
A.Applet程序的主类必须应有一个main()方法
B.Applet程序的主类必须是Applet类的子类
C.Applet不是完整的独立程序
D.Applet的字节码文件必须嵌套在一个HTML文件中 - 下列关于Applet程序的描述中,错误的是_____D___
A. 将编辑好的java源文件,使用javac命令生成字节码文件
B.将字节码文件嵌入html文件中,并存放在一个WWW服务器中
C.使用浏览器解释Html文件中的标记
D.使用编译器直接执行嵌套在Html文件中的字节码文件 - 下列关于Applet程序的描述中,错误的是__A___
A. Applet程序是一种独立的程序,它经过编译后可运行
B. Applet程序的源文件的扩展名为.java
C. Applet程序运行时要把它写到一个html文件中
D. 使用Applet Viewer命令运行Applet程序的字节码文件被嵌入的html文件,便可得到运行结果。 - 下列关于向Applet程序传递参数的描述中,错误的是 A
A.Applet程序可能通过命令行获取外部参数
B.Applet程序可以通过HTML文件获取外部参数
C. 使用Applet标记中的PARAM标记来实现
C. Applet程序中使用getParameter()方法读取参数值 - 在Applet类的主要方法中,用来实现初始化的操作是 A
A. init() B. stop() C.start() D.paint() - 下列Applet类的主要方法中,功能是输出显示文本,图形和其它界面元素的方法是_D__
A. init() B. start() C. stop() D. paint() - 下列绘制几何图形的方法中,用来绘制圆的方法是______A___
A. drawOval() B. drawArc() C. drawRect() D. drawLine() - 下列关于字体的描述中,错误的是_______C
A. Font类提供了创建字体对象的方法
B. 字体的风格(字形)使用了3个静态常量表示
C. 表示字型的字体风格只能单独使用,不可以组合
D. 字号表示字的大小,用点表示,一个点为1/72英寸 - 在Java Applet程序用户自定义的Applet子类中一般需要重载父类的( D )方法来完成一些画图操作。
(A) start( ) (B) stop( ) (C) init( ) (D) paint( ) - 在浏览器中执行applet 程序以下选项中的哪个方法将被最先执行( A )。
A、init() B、start() C、destroy() D、stop() - paint()方法使用哪种类型的参数? ( A )
A、Graphics B、Graphics2D C、String D、Color - 在编写Java Applet程序时必需在程序的开头写上( B )语句。
A、import java.awt.* ; B、import java.applet.Applet ;
C. import java.util.* D. import java.lang.* - .下面关于Applet的说法正确的是( B )。
A. Applet也需要main方法
B. Applet必须继承java.awt.Applet
C. Applet能访问本地文件
D. Applet程序不需要编译
第五章 图形用户界面设计
- 下列关于容器的描述中,错误的是______D
A. 容器是由若干个组件和容器组成的
B. 容器是对图形界面元素的一种管理
C. 容器是一种指定宽和高的矩形范围
D. 容器都是可以独立的窗口 - 下列界面元素中,不是容器的是 A
A.List B. Frame C. Dialog D. Panel - 下列关于实现图形用户界面的描述中,错误的是 C
A.放在容器的组件首先要定义,接着要初始化
B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayout
C.容器中的所有组件都是事件组件,都可产生事件对象 - 下列关于组件类的描述中,错误的是_____A
A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)
B.标签(Label)和按钮(Button)是组件类(Component)的子类
C.面板(Panel)和窗口(Window)是容器类(Container)的子类
D.文本框(TextField)和文本区(TextArea)是文本组件类的(TextComponent)的子类 - 在对下列语句的解释中,错误的是 C
but.addActionListerner(this);
A.but是某种事件对象, 如按钮事件对象
B.this 表示当前容器
C.ActionListerner是动作事件的监听者
D.该语句的功能是将but对象的监听者注册为this对象 - 所有事件类的父类是___B
A. ActionEvent B. AwtEvent C. KeyEvent D. MouseEvent - 所有GUI标准组件类的父类是_____C
A. Button B..List C. Component D. Container - 一个Applet 的默认布局管理器是FlowLayout.下面哪个能改变成其他布局管理器 B
A. setLayoutManager(new GridLayout());
B.setLayout(new GridLayout(2,2));
C.setGridLayout(2,2);
D. setBorderLayout();
- 下列各种布局管理中,Window类,Dialog类和Frame类的默认布局是( C)
A.FlowLayout B. CardLayout
C.BorderLayout D.GridLayout - 在下列各种窗口中,最简单的无边框的又不能移动和缩放的只能包含在另一个容器的容器是_____D
A. Window B. Dialog C. Frame D. Panel - 下列关于菜单和对话框的描述中,错误的是______C
A. Frame容器是可以容纳菜单组件的窗口
B. 菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项还可以包含子菜单
C. 对话框与Frame一样都可作用程序的最外层窗口
D. 对话框内不含有菜单条,它由Frame弹出 - 下列关于事件和事件处理的描述中,错误的是______A
A. 每个事件源只能发出一种类型的事件
B. 事件对象是指某种事件类的对象
C. 事件监听者是某种监听类的对象
D. 通过注册当前窗口为事件对象的监听者 - 进行Java基本的GUI设计需要用到的包是( c) 。
Ajava.io Bjava.sql Cjava.awt Djava.rmi - 10. 当点击鼠标或者拖动鼠标时触发的事件是下列的哪一个
AKeyEvent BActionEvent CItemEvent DMouseEvent - 从文本文件中逐行读取内容,应使用哪个输入流____A___
A. BufferedReader B. BufferedWriter
C. BufferedInputStream D. BufferedOutputStream - 下面哪个会产生动作事件(A)
A. Button B. Label C。 Check Boxe D. Window - Frame的默认的布局管理器是下列哪一个( B )
A.FlowLayout B.BorderLayout
C.GridLayout D.CardLayou
第六章 异常与异常处理
- 下列关于异常的描述中,错误的是 B
A.异常是一种经过修正后程序仍可执行的错误
B.异常是一种程序在运行中出现的不可恢复执行的错误
C.不仅Java语言有异常处理,C++语言也有异常处理
D.出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行 - 下列关于异常处理的描述中,错误的是_____D
A. 程序运行时异常由Java虚拟机自动的进行处理
B. 使用try-catch-fanally语句捕获异常
C. 使用trrow语句抛出异常
D. 捕获到的异常只能在当前方法中处理,不能在其它方法中处理 - 下列关于try-catch-finally语句的描述中,错误的是 A
A.try语句后面的程序段将给出处理异常的语句
B.catch()方法跟在try语句后面,它可以是一个或多个
C.catch()方法有一个参数,该参数是某种异常类的对象
D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用 - 下列关于抛出异常的描述中,错误的是_______D
A. 捕捉到发生的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理
B. 在说明要抛出异常的方法时应加关键字throws <异常列表>
C. <异常列表>中可以有多个逗号分隔的异常
D. 抛出异常的方法要使用下述抛出异常的语句:throw <异常名>; 其中,<异常名>是异常类的类名。 - 下列关于用户创建自己的异常的描述中,错误的是__D___
A.创建自己的异常应先创建一个异常类
B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句
C.捕捉异常的方法是使用try-catch-finally语句格式
D.使用异常处理不会使整个系统更加安全和稳定 - 下开关于用户创建自己的异常的描述中,错误的是___B__(也可以是自己异常类的子类,但间接是Exception子类,ACD书上有原话 这题可能有点小问题)__
A. 为了保证系统的稳定性,用户可以创建自己的异常和异常类
B. 创建的异常类必须是Exception类的子类
C. 在创建的异常类的类体中可以定义或重载其父类的属性和方法
D. 用户自定义的异常必须使用throw语句进行抛出 - 下列关于异常和异常类的描述中,错误的是_____D_
A. 异常是某种异常类的对象
B. 异常类代表一种异常事件
C. 异常对象中包含有发生异常事件的类型等重要信息
D. 对待异常的处理就是简单的结束程序 - 下列关于异常处理的描述中,错误的是____C____
A. 程序运行时出的异常是通过系统默认的异常处理程序进行处理的
B. 在程序中可以使用try-catch语句捕捉异常和处理异常事件
C. 对于捕获的异常只能在当前方法中处理
D. 使用throw语句可将异常抛出到调用当前方法的方法中处理。 - 下面关键字中哪一个不是用于异常处理语句( B )
Atry Bbreak Ccatch Dfinally - 请问所有的异常类皆继承哪一个类(c ) 。
Ajava.io.Exception Bjava.lang.Throwable
Cjava.lang.Exception Djava.lang.Error - finally块中的代码将( A )
A. 总是被执行
B. 如果try块后面没有catch块时,finally块中的代码才会执行
C. 异常发生时才被执行
D. 异常没有发生时才被执行 - 关于try....catch...finally...结构中,下列描述哪项是正确的___A_____
A. catch可以有多个 B. catch只能有一个
C. finally不可省略 D.可以没有catch语句 - 在异常处理中,如释放资源、关闭文件、关闭数据库等由( C )来完成。
A.try子句 B.catch子句 C.finally子句 D.throw子句
第七章 线程编程
- 下面的关键词和方法 D ,不是线程同步所需要的
A.synchornized B. wait()
C. notify() D.sleep() //A. synchronized
这是Java中实现线程同步的关键字。它可以用于方法或代码块,确保同一时间只有一个线程可以执行同步代码。因此,synchronized是线程同步所需要的。
B. wait()
wait()是Java中Object类的一个方法,它用于使当前线程进入等待状态,直到其他线程调用该对象的notify()或notifyAll()方法。wait()方法通常与synchronized一起使用,因为它需要在同步块或同步方法内部被调用。wait()是线程同步所需要的。
C. notify()
notify()也是Java中Object类的一个方法,用于唤醒正在等待该对象监视器的线程之一。与wait()类似,notify()也需要在同步块或同步方法内部被调用,以协调线程间的通信。notify()是线程同步所需要的。
D. sleep()
sleep()是Thread类的一个静态方法,用于使当前线程暂停执行一段时间。然而,sleep()并不涉及线程间的同步或通信。它只是简单地让当前线程放弃CPU的使用权,以便其他线程可以获得执行的机会。因此,sleep()不是线程同步所需要的。
综上所述,D选项的sleep()不是线程同步所需要的。
- 当对线程进行调度使其暂停时,暂停的时间单位是_______A
A. 毫秒 B. 秒 C. 分钟 D. 小时 - 主线程属于 B
A.是守护线程 B.用户线程 C. Thread线程 D.Runnable线程 - D 方法可以让某个线程等待其他线程的执行结束
A. sleep() B.wait()
C. notify() D. join() //在Java中,要让某个线程等待其他线程的执行结束,应该使用的方法是 D. join()。
A. sleep(): 使当前线程(即调用此方法的线程)暂停执行一段时间,让其他线程有机会执行,但它并不涉及等待其他线程结束。
B. wait(): 使当前线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。但是,wait() 通常与 synchronized 关键字一起使用,用于线程间的通信,而不是简单地等待另一个线程结束。
C. notify(): 唤醒在此对象监视器上等待的单个线程。这通常与 wait() 一起使用,用于线程间的通信,而不是等待线程结束。
D. join(): 使当前线程等待,直到调用 join() 方法的线程执行完毕。这正是你想要的功能。因此,正确答案是D。
- 为了使线程处于暂停状态,可引用______bc____方法
A. wait() B. sleep() C. join D. notify() - 下面有关线程的说法,错误的是 B
A Java支持多线程编程
B Java中实现多线程编程,必须创建用户自己的线程子类 把Thread作为父类
C在多线程编程中,同一个程序多次运行,可能输出的结果不同。
D 可以调用sleep()使线程挂起(休眠)。 - 在( B )可以设置线程的优先级
A. 当第一次创建线程时 B. 创建线程后的任何时间
C. 只有在线程启动后 D. 以上都不对
第八章 java语言集合操作
- ______cd__可实现有序的对象操作
A. HashMap B. HashSet C. TreeMap D.LinkedList - 关于链表结构,陈述错误的是 A
A.在链表中查找对象是最有效的 B.链表可动态增长
C.链表中每一个元素都有其前后元素的链接 D.链表中的元素可以重复 - 下列不是迭代器(Iterator) 接口所定义的方法是 D
A.HasNext() B. next() C. remove() D. nextElement() - Collections类可对集合对象不能进行 D 操作
A.只读 B.同步
C.排序 D.删除 - java语言的集合框架类定义在________A_包中
A. java.util B. java.lang C. java.array D. java.collections - 欲构造ArrayList类的一个实例此类继承了List接口下列哪个方法是正确的( )。
AArrayList myList=new Object( )
BList myList=new ArrayList( )
CArrayList myList=new List( )
DList myList=new List( )
第九章 java输入输出
- 实现字符流的读操作的类的是 C
A. B.
C. D. Writer - 进行文件操作的类是______BC__
A. Reader B. C. D. Writer - 可用于获得文件或目录的路径名是
A. File B. RandomAccess D.BufferedReader - 随机文件访问是由____B___类实现的
A. File B. RandomAccess D.BufferedWriter - 用于关闭流的方法 _____A__
A. close() B. flush() C. read() D. writer - 可实现对基本数据类型的读写操作的类是_____BC
A. B. DataInputStream C. DataOutputStream D. - ___D_____描述了该java语句:File f = new File(“d:\src\Hello.txt”);中出现的错误
A. 文件类的构造方法不需要参数
B. 文件类的构造方法的参数不能是字符串
C. 文件类表示的是目录而不是文件
D. 文件类的构造方法的字符串参数必须有转义 - ——C——方法表示获取一个字节数据
A. close() B. flush() C. read() D. write() - java.io包的File类是( )
(A)字符流类 (B) 字节流类
(C) 对象流类 (D) 非流类 - .关于RandomAccessFile类的说法正确的是(B)
A. RandomAccessFile类继承自File类
B. RandomAccessFile类对象可读写Java原始类型数据
C. RandomAccessFile类对象只能从文件读Java原始类型数据
D. 随机读写流的指针所计算的是字符的个数 - 下面哪个选项能够构造一个BufferedlnputStream流?( D )
A. New BufferedInputStream(”in.txt”);
B. New BufferedlnputStream(new File(”in.txt”));
C. New BufferedlnputStream(newⅥHter(”in.txt”));
D. New BufferedlnputStream(new (”in.txt”)); - 下面哪种流可以用于字符输出?( B )
A. java.io.OutputStream B. java.io.OutputStreamWriter
C. java.io.EncodeOutputStream D. java.io.EncodeWriter - 要创建一个新目录,可用下面( D )类实现
A. B. RandomAccessFile C. D. File
第十章 网络编程
- 若对WEB页面进行操作,一般会用到的类是____ab___
A. URL B. URLConnection C. Socket D. DatagramSocket - IP地址或域名是由______B_类来表示的
A. URL B. InetAddress C. NetworkInterface D. Socket - 若访问网卡信息,需用到的类是_____C
A. URL B. Network C. NetworkInterface D. InetAddress - 在套接字编程中,客户方需要用到的Java类______A_来创建TCP连接
A. Socket B. URL C. ServerSocket D. DatagramSocket - 在套接字编程中,服务器方需要用到的java类_______来监听端口
A. Socket B. URL C. ServerSocket D. DatagramSocket - 在UDP通信中,接收和发送数据报要用到的类是 B
A.Socket B.DatagramSocket
C.DatagramPacket D.MulticastSocket - 在安全套接字编程中, 客户方一般要用 B 类来创建安全的套接字对象
A. SSLSocket B. SSLSocketFactory
C.SSLServerSocketFactory D.SSLServerSocket