1.protected访问权限要小于包访问权限。( )
A.正确
B.错误
2.判断对错。在java的多态调用中,new的是哪一个类就是调用的哪个类的方法。
A.对
B.错
3.下面代码输出是?
enum AccountType
{
SAVING, FIXED, CURRENT;
private AccountType()
{
System.out.println("It is a account type");
}
}
class EnumOne
{
public static void main(String[]args)
{
System.out.println(AccountType.FIXED);
}
}
A.编译正确,输出”It is a account type”once followed by”FIXED”
B.编译正确,输出”It is a account type”twice followed by”FIXED”
C.编译正确,输出”It is a account type”thrice followed by”FIXED”
D.编译正确,输出”It is a account type”four times followed by”FIXED”
E.编译错误
4.在java语言中,如果你编写一个多线程序,可以使用的方法是()
A.扩展类Thread
B.实现Runnable接口
C.扩展类 Runnable
D.实现接口Thread
5.下面哪个流类不属于面向字符的流()
A.BufferedWriter
B.FileInputStream
C.ObjectInputStream
D.InputStreamReader
6.一个类可以有多个不同名的构造函数 (不考虑内部类的情况)。( )
A.正确
B.错误
7.下面关于JAVA的垃圾回收机制,正确的是( )
A.当调用“System.gc()”来强制回收时,系统会立即回收垃圾
B.垃圾回收不能确定具体的回收时间
C.程序可明确地标识某个局部变量的引用不再被使用
D.程序可以显式地立即释放对象占有的内存
8.以下关于JAVA语言异常处理描述正确的有?
A.throw关键字可以在方法上声明该方法要抛出的异常。
B.throws用于抛出异常对象。
C.try是用于检测被包住的语句块是否出现异常,如果有异常,则捕获异常,并执行catch语句。
D.finally语句块是不管有没有出现异常都要执行的内容。
E.在try块中不可以抛出异常
9.`给出下面的代码段:
public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a; y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;z=c;
}}
在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?()`
A.Base(a,b);
B.x=a, y=b;
C.x=a; y=b;
D.this(a,b);
10.下列正确的有()
A.call by value不会改变实际参数的数值
B.call by reference能改变实际参数的参考地址
C.call by reference不能改变实际参数的参考地址
D.call by reference能改变实际参数的内容
(1)B
只要记住默认访问权限是整个package,而protected访问权限不仅包含package还包含其子类就可以了
(2)B
错
java多态有两种情况:重载和覆写
在覆写中,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法;
在重载中,运用的是静态多分派,即根据静态类型确定对象,因此不是根据new的类型确定调用的方法
(3)答案:C
枚举类有三个实例,故调用三次构造方法,打印三次It is a account type
(4)正确答案: A B
Java多线程实现方式主要有四种:
1、继承Thread类
2、实现Runnable接口
3、实现Callable接口通过FutureTask包装器来创建Thread线程
4、使用ExecutorService、Callable、Future实现有返回结果的多线程。
(5)正确答案: B C
(6)B
只有与类名相同的方法可以叫构造函数
(7)B
有一点需要记录:
1)java中局部变量分为基本类型变量与引用类型变量,局部变量中基础数据类型的引用和值都存储在栈中,引用类型变量的引用存在栈中,值存在堆中。栈内存中的局部变量随着方法的消失而消失。
2)成员变量的引用和值全部存储在堆中,由垃圾回收器负责回收。
(8)CD
Java语言中的异常处理包括声明异常、抛出异常、捕获异常和处理异常四个环节。
throw用于抛出异常。
throws关键字可以在方法上声明该方法要抛出的异常,然后在方法内部通过throw抛出异常对象。
try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。
cacth用于捕获从try中抛出的异常并作出处理。
finally语句块是不管有没有出现异常都要执行的内容。
(9)
A错,调用Base这个构造方法应该这样 new Base(a,b)
B错,可以使用逗号的是变量初始化的语句,比如
int i=1,b=2;
如果是赋值语句,不能用逗号分隔。
C正常赋值操作
D调用本类的构造方法
(10)选ACD。该题考察的是值传递和引用传递参数的调用。
值传递是将变量的一个副本传递到方法中,方法中如何操作该变量副本,都不会改变原变量的值。
引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作。会对原变量造成影响。