第六次测试复盘

1、假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?(A)

public class Base
{
public void methodOne()
{
System.out.print(“A”);
methodTwo();
}

public void methodTwo()
{
System.out.print(“B”);
}
}

public class Derived extends Base
{
public void methodOne()
{
super.methodOne();
System.out.print(“C”);
}

public void methodTwo()
{
super.methodTwo();
System.out.print(“D”);
}
}

A.ABDC
B.AB
C.ABCD
D.ABC

解释:
这是一道类多态的向上转型题。
Base b = new Derived();
向上转型:父类只能调用父类方法或者子类覆写后的方法,而子类中的单独方法则是无法调用的。
因此:
调用的顺序是:(1)、(2)、(3)、(4)、(5)、(6)、(7) ; 得到的结果是:ABDC
class Base
{ public void methodOne() // (3)
{
System.out.print(“A”);
methodTwo(); //执行到这里的时候调用子类的覆盖方法 (4)
} public void methodTwo() // (7)
{
System.out.print(“B”);
}
}
class Derived extends Base { public void methodOne() // (1)
{ super.methodOne(); // (2)
System.out.print(“C”);
} public void methodTwo() //该方法为重写了父类的方法 (5)
{ super.methodTwo(); //(6)
System.out.print(“D”);
}
}

2、以下说法中正确的有?A

A.StringBuilder是 线程不安全的
B.Java类可以同时用 abstract和final声明
C.HashMap中,使用 get(key)==null可以 判断这个Hasmap是否包含这个key
D.volatile关键字不保证对变量操作的原子性

解释:
A: StringBuffer和stringBuilder的区别在于:StringBuffer是线程安全的而stringBuilder不是。
B:final的类不能被重写和继承,而abstract的类是抽象类,本身没有实现,只能通过子类来实现,也就是说必须被继承。所以说它们是没法同时做修饰符的。
C:如果java程序需要区分存的值是null和key不存在这两种情况,则需要使用:

if(map.containskey(key)){
//key 存在
}else{
//不存在
}
T t = map.get(key);
if(t==null){
//存的值是null
}
D:使用volatile关键字虽然能够使线程共享的变量在并发情况下完全可见,起到线程信息交互和通信的作用,但对于非原子操作,volatile并不能保证该操作的原子性

3、ArrayList list = new ArrayList(20);中的list扩充几次 A

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

解释:
ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍
ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。
所以,扩充为0次

4:以下哪个I / O类可以附加或更新文件A

A.RandomAccessFile()
B.OutputStream()
C.DataOutputStream()
D.None of the above

A:RandomAccessFile,用来随机访问文件的类。它支持对随机访问文件的读取和写入。这里的随机并不意味着不可控制,而是意味着可以访问文件内容的任意位置

5,下面关于垃圾收集的说法正确的是D

A. 一旦一个对象成为垃圾,就立刻被收集掉。 不会随时动
B. 对象空间被收集掉之后,会执行该对象的finalize方法 之前
C. finalize方法和C++的析构函数是完全一回事情 析构可以主动,Finalize是被动的
D.一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此

6、给定以下方法声明,调用执行mystery(1234)的输出结果?B

public void mystery (int x)
{
System.out.print(x % 10);
if ((x / 10) != 0)
{
mystery(x / 10);
}
System.out.print(x % 10);
}

A.1441
B.43211234
C.3443
D.12344321

7、下列关于构造函数说法正确的是( D)

A.构造函数的返回值为void
B.构造函数不可以被重载
C.构造函数可以是内联函数
D.构造函数可以没有参数

【解析】
构造函数的功能是对对象进行初始化,即对数据成员进行初始化。构造函数是类成员函数,它除了具有一般成员函数的特性之外,还具有一些特殊的性质:①构造函数的名字必须与类名相同;②构造函数不指定返回类型,它隐含有返回值,由系统内部使用;③构造函数可以有一个或多个参数,因此构造函数可以重载;④在创建对象时,系统会自动调用构造函数

8、以下关于Integer与int的区别错误的是D

A.int是java提供的8种原始数据类型之一
B.Integer是java为int提供的封装类
C.int的默认值为0
D.Integer的默认值为1
解析:包装类默认是NULL

9、关于windows下的多线程安全,选项中说法错误的是( B )

A.如果多线程的程序运行结果是可预期的,在功能逻辑上与单线程实现的程序运行结果一致,那么我们说这个程序是多线程安全的。
B.只要使用了多线程CRT(multithreaded CRT)进行编译链接,那么CreateThread启动的线程就可以随便使用CRT函数,而不用担多线程安全问题。
C.如果在线程函数中不直接或者间接使用crt函数,那么使用CreateThread和使用_beginthreadex启动 的线程在thread-safe方面区别不大。
D.在线程函数中,尽量避免使用crt函数,如果一定要用,尽量使用_beginthreadex来启动线程

10、AccessViolationException异常触发后,下列程序的输出结果为( )

static void Main(string[] args)
{
try
{
throw new AccessViolationException();
Console.WriteLine(“error1”);
}
catch (Exception e)
{
Console.WriteLine(“error2”);
}
Console.WriteLine(“error3”);
}

A.error2
error3
B.error3
C.error2
D.error1

解析:
链接:

(1)
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。
2.try{}中有异常,则异常下面代码不执行。
3.finally{}中代码必执行。

(2)
try{ //正常执行的代码 }catch (Exception e){ //出错后执行的代码 }finally{ //无论正常执行还是出错,之后都会执行的代码 } //跟上面try catch无关的代码 正常执行的代码如果出现异常,就不会执行出现异常语句后面的所有正常代码.

11(多选)以下哪些方法是Object类中的方法 ABCD

A.clone()
B.toString()
C.wait()
D.finalize()

12、(多选)以下哪种方式实现的单例是线程安全的 ABCD

A.枚举
B.静态内部类
C.双检锁模式
D.饿汉式

13,下面关于静态方法说明正确的是B

A.在静态方法中可用this来调用本类的类方法
B.在静态方法中调用本类的静态方法时可直接调用
C.在静态方法中只能调用本类中的静态方法
D.在静态方法中绝对不能调用实例方法

14(多选)下面有关java threadlocal说法正确的有?ABCD

A.ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
B.从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
C.在Thread类中有一个Map,用于存储每一个线程的变量的副本
D.对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式

15,(多选)判断一块内存空间是否符合垃圾收集器收集的标准有哪些?ABD

A.给对象赋予了空值null,以下再没有调用过
B.对象重新分配了内存空间
C.给对象赋予了空值null
D.给对象赋予了新值

16,在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为C

A.隐藏
B.覆盖
C.重载
D.Java不支持此特性

17、(多选)以下程序执行后,错误的结果是(ABC)

public class Test {
private String name = “abc”;
public static void main(String[] args) {
Test test = new Test();
Test testB = new Test();
String result = test.equals(testB) + “,”;
result += test.name.equals(testB.name) + “,”;
result += test.name == testB.name;
System.out.println(result);
}
}

A.true,true,true
B.true,false,false
C.false,true,false
D.false,true,true

18,关于protected 修饰的成员变量,以下说法正确的是A

A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
B.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
C.只能被该类自身所访问
D.只能被同一个包中的类访问

19:、抽象类和接口的区别,一下说法错误的是 D

A.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。
B.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
C.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法默认都是 public abstract 类型的
D.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。

20,(多选)下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:(A E )

A.java.util.ConcurrentHashMap
B.java.util.Map
C.java.util.TreeMap
D.java.util.SortMap
E.java.util.Hashtable
F.java.util.HashMap

21:(多选)下列关于final、finally、finalize说法正确的是( ABD)

A.final可以用来修饰类、方法、变量
B.finally是java保证重点代码一定要被执行的一种机制
C.变量被final修饰后不能再指向其他对象,但可以重写
D.finalize设计的目的是保证对象在被垃圾收集前完成特定资源的回收

22、jdbc的事务必须在一个数据库连接上完成。编程时必须去掉数据库的自动提交功能。当成功后调用commit,当失败后调用rollback。判断这句话正确与否A

A.T
B.F

23:在Java中,什么是Garbage Collection?()C

A.自动删除在程序中导入但未使用的任何包
B.JVM检查任何Java程序的输出并删除任何没有意义的东西
C.当对象的所有引用都消失后,对象使用的内存将自动回收
D.操作系统定期删除系统上可用的所有java文件

24、(多选)关于equals和hashCode描述正确的是 (ABC)

A.两个obj,如果equals()相等,hashCode()一定相等(符合代码规范的情况下)
B.两个obj,如果hashCode()相等,equals()不一定相等
C.两个不同的obj, hashCode()可能相等
D.其他都不对

25、(多选)关于java中的数组,下面的一些描述,哪些描述是准确的:(A,C,E)

A.数组是一个对象,不同类型的数组具有不同的类
B.数组长度是可以动态调整的
C.数组是一个连续的存储结构
D.一个固定长度的数组可类似这样定义:int array[100]
E.两个数组用equals方法比较时,会逐个便利其中的元素,对每个元素进行比较
F.可以二维数组,且可以有多维数组,都是在java中合法的。

26、以下哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址(B)

A.String a = “hello”; String b = “hello”;
B.Integer a; Integer b = a;
C.int a = 1; Integer b = new Integer(1);
D.int a = 1; Integer b = 1;

27、(多选)在Java中,关于HashMap类的描述,以下正确的是 (ACD)

A.HashMap使用键/值得形式保存数据
B.HashMap 能够保证其中元素的顺序
C.HashMap允许将null用作键
D.HashMap允许将null用作值

28,下面关于JAVA的垃圾回收机制,正确的是(B)

A.当调用“System.gc()”来强制回收时,系统会立即回收垃圾
B.垃圾回收不能确定具体的回收时间
C.程序可明确地标识某个局部变量的引用不再被使用
程序可以显式地立即释放对象占有的内存

29(多选)接口和抽象类描述正确的有(BC )

A.抽象类没有构造函数。
B.接口没有构造函数。
C.抽象类不允许多继承。
D.接口中的方法可以有方法体。

30、(多选)JAVA 中可以让线程停止执行方法有(ACD)

A.sleep();
B.notify();
C.synchronized();
D.yield();

31、(多选)下列运算符中,能够被重载的是(ABD)

A.&&
B.!=
C…
D.->

32、应用NAT后会带来哪些影响( A)

A.不利于分片
B.不利于数据加密
C.需要重新计算IP分组校验和
D.可以解决IPv4地址耗尽问题

33、高优先级的线程比低优先级的线程运行得更快B

A.T
B.F

34、在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要(B )。

A.标准输出流System.out.println()。
B.建立数据字节输出流
C.建立数据字节输入流
D.标准输入流System.in.read()。.

35,使用mvc模式设计的web应用程序具有以下优点,除了?D

A.可维护行强
B.可扩展性强
C.代码重复少
D.大大减少代码量

36:.关于java中的数组,下面的一些描述,哪些描述是准确的:()ACE

A.数组是一个对象,不同类型的数组具有不同的类
B.数组长度是可以动态调整的
C.数组是一个连续的存储结构
D.一个固定长度的数组可类似这样定义:int array[100]
E.两个数组用equals方法比较时,会逐个便利其中的元素,对每个元素进行比较
F.可以二维数组,且可以有多维数组,都是在java中合法的。

71.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( ADF )

A.Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下
B.通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
C.通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
D.Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
E.Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
F.Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率

38.对于函数y = ax^2 + bx + c,(a > 0),需要找出y的小值,精确到小数点后6位。下列选项中最有效的方法是(B)。

A.枚举
B.二分查找
C.三分查找
D.推公式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试复盘Test Retrospective)是软件测试项目中的一项重要活动,旨在回顾和评估测试过程和结果,以提高测试质量和效率。在测试复盘中,一般会复盘以下方面: 1. 测试目标和范围:回顾测试过程中设定的测试目标和范围,评估是否达到了预期的测试目标,并确定是否需要调整或细化测试范围。 2. 测试计划和策略:评估测试计划和策略的有效性,包括测试用例设计方法、测试环境的搭建、测试数据的准备等,确定是否需要进行改进或调整。 3. 测试执行过程:回顾测试执行过程,包括测试用例的执行情况、缺陷发现和修复的效率等,识别测试执行中的问题和挑战,并提出改进措施。 4. 缺陷管理:评估缺陷管理过程的效果,包括缺陷发现、报告、分析和跟踪的流程和工具,确定是否需要优化缺陷管理流程。 5. 测试工具和技术:评估使用的测试工具和技术的效果,包括自动化测试工具、性能测试工具等,确定是否需要更新或改进工具和技术的选择和使用。 6. 测试团队协作:评估测试团队的协作和沟通效果,包括团队合作、知识分享和问题解决等方面,确定是否需要加强团队协作和沟通。 7. 测试结果和质量:回顾测试结果和质量指标,包括通过的测试用例比例、发现的缺陷数量和严重性等,确定是否达到了预期的质量目标,并提出改进建议。 测试复盘的目的是识别问题、总结经验、改进流程,以提高测试的效率和质量。通过对测试过程的全面复盘,可以帮助团队发现问题并采取相应措施,从而不断改进和提升测试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值