Java 9.5 测试复盘

《9.5测试复盘》

3.对于一个已经不被任何变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的哪个方法(A)
A finalize
B notify
C notifyAll
D hashCode
垃圾回收过程中的对象销毁–Finalization

13.能单独和finally语句一起使用的块是( A)
A.try
B.catch
C.throw
D.throws
解析:处理异常常用的两种方式:
1、try…catch(捕获处理机制);
2、throws(冒泡处理机制).
注意细节:使用try…catch块捕获时可以没有catch块,但当没用catch块的时候必须得有finally块.故选A)



17.尝试编译以下程序会产生怎么样的结果?(C)
public class MyClass {
long var;
17.尝试编译以下程序会产生怎么样的结果?()
public class MyClass {
long var;
public void MyClass(long param) { var = param; }//(1)
public static void main(String[] args) {
MyClass a, b;
a =new MyClass();//(2)
b =new MyClass(5);//(3)
}
}
A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行

public static void main(String[] args) {
    MyClass a, b;
    a =new MyClass();//(2)
    b =new MyClass(5);//(3)
}

}
A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行
因为该类没有自行定义构造函数, public void MyClass(long param) { var = param; }只是一个方法罢了,所有该类只有一个默认的无参构造函数,所以3是行不通的。


20.正则表达式中,表示匹配非数字字符的字符是(D)?
A.\b
B.\d
C.\B
D.\D
\d 匹配一个数字字符。等价于[0-9]。grep 要加上-P,perl正则支持
\D 匹配一个非数字字符。等价于[^0-9]。grep要加上-P,perl正则支持



22.(多选)下面的Java赋值语句哪些是有错误的 (BF)
A. int i =1000;
B. float f = 45.0;
C. char s = ‘\u0639’
D. Object o = ‘f’;
E. String s = “hello,world\0”;
F. Double d = 100;
B是double无法向低进制32位的float转换
F是身为int型的100编译器无法通过自动装箱到Double类



30.关于JAVA的垃圾回收机制,下面哪些结论是正确?(B)
A.程序可以任意指定释放内存的时间
B.JAVA程序不能依赖于垃圾回收的时间或者顺序
C.程序可明确地标识某个局部变量的引用不再被使用
java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。
当对象的引用变量被赋值为null,可能被当成垃圾。



33.如下代码的 结果是什么 ?(B)

class Base {
Base() {
System.out.print(“Base”);
}
}
public class Alpha extends Base {
public static void main( String[] args ) {
new Alpha();
//调用父类无参的构造方法
new Base();
}
}

A. Base
B. BaseBase
C. 编译失败
D. 代码运行但没有输出
E. 运行时抛出异常
子类构造方法必须在第一行调用父类的构造方法,如果不写,系统会自动在第一行调用父类的无参构造方法


35.关于protected 修饰的成员变量,以下说法正确的是(A)
A. 可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
B. 只能被该类本身和该类的所有的子类访问
C. 只能被该类自身所访问
D. 只能被同一个包中的类访问


36.下列不正确的 Java 语言标识符是(C )
A. Sky
B.$BaseComputer
C. for
D.NULL
Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。


52.多重继承的概念在Java中实现是通过如下哪些?(B)
I. 扩展两个或多个类
II. 扩展一个类并实现一个或多个接口。
III. 实现两个或更多接口。
A. 只有I &II
B. 只有II & III
C. 只有III
D. 都是
因为在Java中类只能单继承


58.下列不属于Java语言性特点的是(D)
A. Java致力于检查程序在编译和运行时的错误
B. Java能运行虚拟机实现跨平台
C. Java自己操纵内存减少了内存出错的可能性
D. Java还实现了真数组,避免了覆盖数据类型的可能
只有D不是


67.StringBuffer类对象创建之后可以再修改和变动.
A.正确
B.错误
stringbuffer是可变长度的,可通过append,insert,remove等方法改变其长度©


71.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?
A.实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。
B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值
C.类变量指的是用static修饰的属性
D.final变量指的是用final 修饰的变量
定义在类中的变量是类的成员变量,可以不进行初始化,Java会自动进行初始化,如果是引用类型默认初始化为null,如果是基本类型例如int则会默认初始化为0
局部变量是定义在方法中的变量,必须要进行初始化,否则不同通过编译
被static关键字修饰的变量是静态的,静态变量随着类的加载而加载,所以也被称为类变量
被final修饰发变量是常量



72.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? (C )
A.void use() { …}
B.protected void use() { …}
C.public void use() { …}
D.以上语句都可以用在类SmallCup中
既然是实现接口,就要实现接口的所有方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)


15、Java的Daemon线程,setDaemon( )设置必须要?
A. 在start之前
B. 在start之后
C. 前后都可以
java中线程分为两种类型:
1:用户线程。通过Thread.setDaemon(false)设置为用户线程;
2:守护线程。通过Thread.setDaemon(true)设置为守护线程,如果不设置,默认用户线程;
守护线程是服务用户线程的线程,在它启动之前必须先set。



25、下列关于Java并发的说法中正确的是(B)
A. CopyOnWriteArrayList适用于写多读少的并发场景
B. ReadWriteLock适用于读多写少的并发场景
C. ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D. 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
A,CopyOnWriteArrayList适用于写少读多的并发场景
B,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,
读与读之间可以并发执行。在读多写少的情况下可以提高效率
C,ConcurrentHashMap是同步的HashMap,读写都加锁
D,volatile只保证多线程操作的可见性,不保证原子性



34、下面哪个Set类是排序的?(B)
A. LinkedHashSet
B. TreeSet
C. HashSet
D. AbstractSet
TreeSet自然排序

上一篇:php中美元符号是什么意思


下一篇:面向对象上