当前位置:文档之家› java期末考试习题集讲解

java期末考试习题集讲解

选择题(单选) .......................................................................................................................... 1
选择题(单选) .......................................................................................................................... 6
单选题........................................................................................................................................ 10
选择题(单选) ........................................................................................................................ 14
选择题(可以多选) ................................................................................................................ 18
选择题(单选)
、被声明为private、protected及public的类成员,在类外部:
、只能访问声明为public的成员
、只可能访问到声明为protected和public的成员
、都可以访问
、都不能访问
、下列那个声明是正确的?
、 abstract final class Hh {}
、 abstract private move(){}
、 protected private number;
、 public abstract class Car{}
、关于对象成员占用内存的说法哪个正确?( )
、同一个类的对象共用同一段内存
、同一个类的对象是用不同的内存段,但静态成员共享相同的内存空间
、对象的方法不占用内存
、以上都不对
、关于this和super,下列说法正确的是( )
、都可以在main()方法中使用
、都是指一个内存地址
、不能用在main()方法中
、意义相同
、关于接口下列哪个说法正确?( )
、实现一个接口必须实现接口的所有方法
、一个类只能实现一个借口
、接口间不能有继承关系
、接口和抽象类是一回事
、下列那个说法正确:( )
、子类只能覆盖父类的方法,而不能重载
、子类只能重载父类的方法,而不能覆盖
、子类不能定义和父类同名同形参的方法,否则,系统将不知道调用哪个方法
、重载就是一个类中有多个同名但有不同形参和方法体的方法
、认真阅读下段例程,







6行会引起编译错误:( )
、关于main()方法的说法哪个正确?( )
、main()方法只能放在公共类中
、main()方法的头定义可以根据情况任意更改
、一个类中可以没有main()方法
、所有对象的创建都必须放在main()方法中
、关于内部类的说法哪个正确?( )
、内部类不能使用外部类的私有属性和方法
、内部类可以广泛使用,不受任何限制
、内部类可以单独编译
、内部类可以使用外部类的私有属性和方法
、在Q2_2类哪些是合法的覆盖(override)? ( )
、public void method(int i){};
、public void method(int j,int k){}
、public float method(int k);
、private void method(int k);
、下

面的类中,哪些不是合法的重载(overload)? ( )

、private void method(int i,int j){}
、public void method(int k){}
、private float method(float f){}
、public String method(int i,int j){}
、public float method(float f){}
、看下面的代码,选择正确的结论 ( )





、编译时出现错误
、运行时出现错误
、输出 10
、输出 8
、下面哪些是short型的取值范围( )
–2^7 – 2^7-1
0 – 2^16-1
2^15 – 2^15-1
2^31 – 2^31-1
、关于方法的形参,下列说法正确的是:( )
、必须定义多个形参
、至少有一个
、可以没有
、只能是简单变量
、阅读以下例程,
int i=1,j=10;



i和j的值是( )





、下面的哪些关键字通常用来对对象的加锁,该标记使得对对象的访问是排他的 ( )
transient
synchronized
serialize
static
、 题目:下面关于变量及其范围的陈述哪些是不对的。( )
实例变量是类的成员变量。
实例变量用关键字static声明。
在方法中定义的局部变量在该方法被执行时创建
局部变量在使用前必须被初始化。
、阅读程序,回答问题:











Java API文档中下面的哪些部分不被包括在内 ( )
类及用途的描述
父类的方法的列表
成员变量的列表
类层次
、下面那个变量声明不正确的: ( )
、 I_love_Java
、 $20
、 _a22
、 3_aa
、 const1
、下面关于JAVA的优点说法错误的是?( )
、JAVA是纯面向对象的语句,还有众多的API支持,所以JAVA开发各种各样的应用

、JAVA使用的是Unicode作为标准字符,这使得JAVA程序在不同的语言平台上都能

、垃圾回收机制是JAVA的一在特性,垃圾回收机制的调度是有程序员负责的。
、JAVA引进来的EXCEPTION处理机制,使得JAVA程序更安全、更稳定、更随机应变。
、下面关于JVM说法不准确的是? ( )
、JVM目前已有针对不同的平台开发了多个相应的版本。
、所以的JAVA程序编译成字节码后都需要被调度到相应版本的JVM中才能执行。
、各个版本的JVM对内存的管理都是通过GC机制实现的
、JVM机制的引入才使我们的程序很容易的动态内存管理及多线程、JavaBean等服务。
选择题(单选)
、给出下面代码:
private int m;
public static void fun()
{
// some code...
}
fun()中直接访问成员变量m?
、给出下面定义:
?
、按钮可以产生ActionEvent事件,实现那个接口可以处理此事件?




、下面代码中那一个不能够创建一个数组?

、给出下面代码段:
?
、如果一个方法调用wait()方法,下面的那个方法能使他继续运行?
、下面那个关键字可以用来和锁旗标相互作用?


如果一个类的成员变量只能在同一个包中访问,用下面那个修饰符?
、在Test.java 源文件中,那个是下确的类定义


、给出下面的代码:
public static void main(String args[])
{
String str = new String(“World”);
char ch[] = {'H', 'e', 'l', 'l', 'o'};
change(str, ch);
System.out.println(str + “and” + ch);
}
public static void change(String str, char ch[])
{
str = “Changed; ch[0] = 'C'”;
}

运行下面程序,会产生什么结果
public void run(){
System.out.println("this is run()...");
}
public static void main(String args[])
{
Thread t = new Thread(new X());
t.start();
}
第一行会产生编译错误
第七行会产生编译错误
第八行会产生编译错误
程序会运行和启动
、运行下面程序,会产生什么结果:
private int a;
void foo(double d, final float f)
{
String s;
final boolean b;
class Inner
{
void metodInner()
{
System.out.println("in the Inner");
}
}
}
public static void main(String args[])
{
Outer me = new Outer();
me.foo(123, 123);
System.out.println("outer");
}
outer
编译不通过
、如果func()允许抛出IOException异常,能使用下面的那个方法声明?

单选题
、MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义

、public int MAX_LENGTH=100;
、final int MAX_LENGTH=100;
、final public int MAX_LENGTH=100;
、public final int MAX_LENGTH=100.
、给出下面代码:

2} private String name;
3} public Parent(){}
4} }
5) public class Child extends Parent {
6} private String department;
7} public Child() {}
8} public String getValue(){ return name; }
9} public static void main(String arg[]) {
10} Parent p = new Parent();
11} }
12} }
哪一行将引起错误?
、第3行
、第6行
、第7行
、第8行
、类Teacher和Student是类Person的子类;
Person p;
Teacher t;
Student s;
//p, t and s are all non-null.
if(t instanceof Person) { s = (Student)t; }
最后一句语句的结果是:
、将构造一个Student对象;
、表达式是合法的;
、表达式是错误的;
、编译时正确,但运行时错误。
、给出下面代码段
1) public class Test {
2) int m, n;
3) public Test() {}
4) public Test(int a) { m=a; }
5) public static void main(String arg[]) {
6) Test t1,t2;
7) int j,k;
8) j=0; k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
哪行将引起一个编译时错误?
、line 3
、lin

e 5
、line 6
、line 10
、对于下列代码:
1) class Person {
2) public void printValue(int i, int j) {//... }
3) public void printValue(int i){//... }
4) }
5) public class Teacher extends Person {
6) public void printValue() {//... }
7) public void printValue(int i) {//...}
8) public static void main(String args[]){
9) Person t = new Teacher();
10) t.printValue(10);
11) }
第10行语句将调用哪行语句?
、line 2
、line 3
、line 6
、line 7
、对于下列代码:
public class Parent {
public int addValue( int a, int b) {
int s;
s = a+b;
return s;
}
}
class Child extends Parent {
}
下述哪一方法可以加入类Child?
、int addValue( int a, int b ){// do something...}
、public void addValue (int a, int b ){// do something...}
、public int addValue( int a ){// do something...}
、public int addValue( int a, int b )throws MyException {//do something...}
、给出下面代码:
public class test{
static int a[] = new a[10];
public static void main(String args[]) {
System.out.println(arr[10]);
}
}
那个选项是正确的?
、编译时将产生错误;
、编译时正确,运行时将产生错误;
、输出零;
、输出空。
、内部类是在一个类内嵌套定义的类。其特点描述错误的是_______
、只能在定义它的类或程序段中或表达式内匿名使用, 外部使用时必须给出类的全名
、可以使用它所在类的静态成员变量或实例成员变量,但不可以使用所在类中的局部变量
、可以作为其它类的成员,而且可以访问它所在类的成员
、除static内部类外, 不能在类内声明static 成员
、下面说法不正确的是______
、Java中线程是抢占式的
、Java中线程是分时的
、Java 中的线程可以共享数据
、Java 中的线程可以共享代码
、下面说法正确的是
、java语言里的线程是没有优先级的
、socket类在https://www.doczj.com/doc/4710668453.html,ng中
、java语言不支持为的序列化
、能序列化的类必须实现java.io.Serializable接口
、下列那些说法是正确的
、Java语言只允许单一继承
、Java语言只允许实现一个接口
、Java语言不允许同时继承一个类并实现一个接口
、Java 语言的单一继承使得代码更加可靠
、对于下列代码
Child?
、int addValue(int a, int b ){//do something ...}
、public void addValue(int a, int b){//do something ...}
、public int addValue(int a){//do something ...}
、public int addValue(int a, int b )throws MyException {// do something ...}
、下列哪些语句不是正确的?
、int a[][]=new int[][3];
、int a[][]={{1,3},{2,3,4},{1,2}};
、String s[][]=new String[2][];
、String s[][]={{"can","I"},{"help","you"}}
、运行下列程序,会产生什么结果:
class Outer1{
private int a;
void foo(double d,final float f){

String s;
final boolean b;
class Inner{
void methodInner(){
System.out.println("in the Inner");
}
}
}
public static void main(String args[])
{
Outer1 me=new Outer1();
me.foo(123,123);
System.out.println("outer");
}
}
、in the Inner outer
、outer
、in the Inner
、编译不通过
选择题(单选)
、给出下面代码:
private int m;
public static void fun()
{
// some code...
}
fun()中直接访问成员变量m?
、给出下面定义:
?
、按钮可以产生ActionEvent事件,实现那个接口可以处理此事件?




、下面代码中那一个不能够创建一个数组?

、给出下面代码段:
?
、如果一个方法调用wait()方法,下面的那个方法能使他继续运行?
、下面那个关键字可以用来和锁旗标相互作用?

、如果一个类的成员变量只能在同一个包中访问,用下面那个修饰符?
、在Test.java 源文件中,那个是下确的类定义


、给出下面的代码:
public static void main(String args[])
{
String str = new String(“World”);
char ch[] = {'H', 'e', 'l', 'l', 'o'};
change(str, ch);
System.out.println(str + “and” + ch);
}
public static void change(String str, char ch[])
{
str = “Changed; ch[0] = 'C'”;
}

运行下面程序,会产生什么结果
public void run(){
System.out.println("this is run()...");
}
public static void main(String args[])
{
Thread t = new Thread(new X());
t.start();
}
第一行会产生编译错误
第七行会产生编译错误
第八行会产生编译错误
程序会运行和启动
、运行下面程序,会产生什么结果:
private int a;
void foo(double d, final float f)
{
String s;
final boolean b;
class Inner
{
void metodInner()
{
System.out.println("in the Inner");
}
}
}
public static void main(String args[])
{
Outer me = new Outer();
me.foo(123, 123);
System.out.println("outer");
}
outer
编译不通过
、如果func()允许抛出IOException异常,能使用下面的那个方法声明?

选择题(可以多选)
. 以下属于面向对象的特征的是(C,D)。(两项)
重载
重写
封装
继承
. 以下代码运行输出是(C)

输出:Person
没有输出
编译出错
运行出错
. 在使用super 和this关键字时,以下描述正确的是(A)
在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构

()和this()

不一定要放在构造方法内第一行
()和super()可以同时出现在一个构造函数中
()和super()可以在static环境中使用,包括static方法和static语句块
. 以下对封装的描述正确的是(D)
只能对一个类中的方法进行封装,不能对属性进行封装
如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用
封装的意义不大,因此在编码时尽量不要使用
封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
. 以下对继承的描述错误的是(A)
中的继承允许一个子类继承多个父类
父类更具有通用性,子类更具体
中的继承存在着传递性
当实例化子类时会递归调用父类中的构造方法
. 以下程序的运行结果是(D)
m.out.println(“this is a Person”);


运行出错
编译有两处错误
. 以下说法错误的是()
方法()可以调用父类的所有非私有方法
()可以调用父类的所有非私有构造函数
属性可以调用父类的所有非私有属性
和super关键字可以出现在同一个构造函数中
. 以下关于final关键字说法错误的是(A,C)(两项)
是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
修饰的类肯定不能被继承
修饰的方法不能被重载
修饰的变量不允许被再次赋值
. 访问修饰符作用范围由大到小是(D)
. 多态的表现形式有(A)
重写
抽象
继承
封装
. 以下对重载描述错误的是(B)
方法重载只能发生在一个类的内部
构造方法不能重载
重载要求方法名相同,参数列表不同
方法的返回值类型不是区分方法重载的条件
. 以下(D)添加到ComputerBook中不会出错
. 以下对抽象类的描述正确的是(C)
抽象类没有构造方法
抽象类必须提供抽象方法
有抽象方法的类一定是抽象类
抽象类可以通过new关键字直接实例化
. 以下对接口描述错误的有(D)
接口没有提供构造方法
接口中的方法默认使用public、abstract修饰
接口中的属性默认使用public、static、final修饰
接口不允许多继承
. 以下代码,描述正确的有(A)
第1行错误,没有给变量赋值
第2行错误,方法没有修饰符
第4行错误,没有实现接口的全部方法
第3行错误,没有方法的实现
. 接口和抽象类描述正确的有(B,C)(两项)
抽象类没有构造函数
接口没有构造函数
抽象类不允许多继承
接口中的方法可以有方法体
. 以下描述错误的有(C)
可以修饰类、接口、方法
修饰的类主要用于被继承
可以修饰变量
修饰的类,其子类也可以是abstract修饰的
. 以下描述正确的有(B)
方法的重写应用在一个类的内


方法的重载与返回值类型无关
构造方法不能重载
构造方法可以重写
. 以下程序运行结果是(A)


编译出错
运行出错,无输出
. 以下对异常的描述不正确的有(C)
异常分为Error和Exception
是所有异常类的父类
是所有异常类父类
包括RuntimeException和RuntimeException之外的异常
. 在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)
. 下面代码运行结果是(B)
语句块”);
语句块”);
和是:”+demo.add(9,34));
编译异常
语句块 和是:43
和是:43 finally语句块
语句块 和是:43
. 以下描述不正确的有(D)
块不可以省略
可以使用多重catch块
块可以省略
块和finally块可以同时省略
. 以下对自定义异常描述正确的是(C)
自定义异常必须继承Exception
自定义异常可以继承自Error
自定义异常可以更加明确定位异常出错的位置和给出详细出错信息
程序中已经提供了丰富的异常类,使用自定义异常没有意义
. 以下程序运行结果是(D)




商是:” + demo.div(9, 0));
商是:0
商是:0
商是:0
编译报错
在Java中,下面对于构造函数的描述正确的是(D)。(选择一项)
类必须显示定义构造函数
构造函数的返回类型是void
构造函数和类有相同的名称,并且不能带任何参数
一个类可以定义多个构造函数
根据下面的代码,
NullPointerException异常的有(A,C)。[两项]
. .在Java中,关于HashMap类的描述,以下描述错误的是( B )。
使用键/值得形式保存数据
能够保证其中元素的顺序
允许将null用作键
允许将null用作值
下列选项中关于java中super关键字的说法错误的是( B )
关键字是在子类对象内部指代其父类对象的引用
关键字不仅可以指代子类的直接父类,还可以指代父类的父类
子类可以通过super关键字调用父类的方法
子类可以通过super关键字调用父类的属性
中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误
C)(选择一项)
和LinkedList均实现了List接口
的访问速度比LinkedList快
添加和删除元素时,ArrayList的表现更佳
实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
中,以下( B )接口以键_值对的方式存储对象。
在Java中,( A )类可用于创建链表数据结构的对象。
分析下面这段Java代码,它的运行结果是( C )。
程序无法编译

相关主题
文本预览
相关文档 最新文档