Java测试错题集(4)

Java测试错题题解

博主声明:
本文由博主luoru_LR原创,请多支持与指教。
转载请在开头附加本文链接及作者信息,并标记为转载。
博主主页

下列选项中,不属于CSS3样式选择器的是(  ) 正确答案:D
A.empty选择器
B.root 选择器
C.target选择器
D.ID选择器
解析:
	没明白题目意思。
以下代码执行的结果显示是多少(  )  正确答案:B
public class Demo{
    public static void main(String args[]){
        int count = 0;
        int num = 0;
        for(int i = 0;i <= 100; i++){
            num = num + i;
            count = count++;
        }
        System.out.println("num * count = " + (num * count));
    }
}
A.505000
B.0
C.运行错误
D.5050
解析:
    在JVM中,对于count=count++的处理,先是将count的值(不是引用)存储在一个临时变量区,然后对count进行+1的操作,
最后返回临时变量区的值。即等价于:
    temp(临时变量)=count;
    count++;
    count=temp;
下面描述属于java虚拟机功能的是?(  )  正确答案:ABCD
A.通过 ClassLoader 寻找和装载 class 文件
B.解释字节码成为指令并执行,提供 class 文件的运行环境
C.进行运行期间垃圾回收
D.提供与硬件交互的平台
解析:
	JVM的作用:
    (1)通过 ClassLoader 寻找和装载 class 文件
    (2)解释字节码成为指令并执行,提供 class 文件的运行环境
    (3)进行运行期间垃圾回收
    (4)提供与硬件交互的平台
Which statement is true for the class java.util.ArrayList?(  )  正确答案:A
A.The elements in the collection are ordered.
B.The collection is guaranteed to be immutable.
C.The elements in the collection are guaranteed to be unique.
D.The elements in the collection are accessed using a unique key.
E.The elements in the collections are guaranteed to be synchronized.
解析:
	A.集合中的元素是有序的   对
     B.集合被保证为不可变的  错
     C.集合中的元素被保证为唯一的  错  有序的 所以不唯一
     D.集合中的元素使用一个唯一的键来存取   错   没有键
     E.集合中的元素被保证为同步的   错  不是同步的
错因:对“有序”这个词误解了;
对Collection和Collections描述正确的是(  )  正确答案:AC
A.Collection是java.util下的类,它包含有各种有关集合操作的静态方法
B.Collection是java.util下的接口,它是各种集合结构的父接口
C.Collections是java.util下的接口,它是各种集合结构的父接口
D.Collections是java.util下的类,它包含有各种有关集合操作的静态方法
命令javac-d参数的用途是?(  )  正确答案:A
A.指定编译后类层次的根目录
B.指定编译时需要依赖类的路径
C.指定编译时的编码
D.没有这一个参数
解析:
    -d 目录设置类文件的目标目录。如果某个类是一个包的组成部分,则 javac 将把该类文件放入反映包名的子
目录中,必要时创建目录。例如,如果指定 -d c:\myclasses 并且该类名叫 com.mypackage.MyClass,那么类
文件就叫作 c:\myclasses\com\mypackage\MyClass.class。
    若未指定 -d 选项,则 javac 将把类文件放到与源文件相同的目录中。
    注意: -d 选项指定的目录不会被自动添加到用户类路径中。
下列程序的运行结果(  )  正确答案:A
public void getCustomerInfo() {
        try {
            // do something that may cause an Exception
        } catch (java.io.FileNotFoundException ex) {
            System.out.print("FileNotFoundException!");
        } catch (java.io.IOException ex) {
            System.out.print("IOException!");
        } catch (java.lang.Exception ex) {
            System.out.print("Exception!");
        }
    }
A.IOException!
B.IOException!Exception!
C.FileNotFoundException!IOException!
D.FileNotFoundException!IOException!Exception!
解析:
    1.如果抛出一个FileNotFoundException(或其子类),那么最终结果就打印FileNotFoundException 
    2.如果抛出一个IOException,或者IOException的子类(不包含FileNotFoundException及其子类),
那么最终结果就打印IOException 
    3.如果抛出一个Exception(不包含IOException及其子类),那么最终结果就打印Exception. 
    以上,所以3个皆有可能.但是,不管是哪一种情况,只会输出其中之一。 
    答案中的B,C,D的输出情况是不存在的。因此选A
下关于List删除方法使用错误的是(  )  正确答案:C
A.list循环外指定index删除:list.remove(i);
B.list循环外指定元素删除:list.remove(obj);
C.for(Object obj:list){list.remove(obj);}
D.for(Iterator it= list.iterator();it.hasNext();){it.next();it.remove();}
解析:
    增强循环其实就是个迭代器的封装。List维护了一个变量modcount修改次数,包括集合的内部结构的更改
(set、add、remove),都会是modcount+1;迭代器中维护了一个变量expectedmodcount,它的初始值是
expectedmodcount=modcount。迭代器不允许你在我迭代数据的时候受到修改集合的干扰,确实是这样,不
然遍历出来的数据就不符合逻辑了。所以迭代器设计了一个checkForComodification()方法来检测
    final void checkForComodification() {
          if (modCount != expectedModCount) {
                throw new ConcurrentModificationException();
          }
    }
    该方法在迭代器的next()中被调用。一旦modCount != expectedModCount,就ConcurrentModificationException报错。
    要修改也必须是迭代器自己修改,因为迭代器在修改完后会重置expectedmodcount=modcount。也就是说在foreach中只
能查询,不能修改。
jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是?(  )  正确答案:BD
A.抽象类可以有构造方法,接口中不能有构造方法
B.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法
C.一个类可以实现多个接口,但只能继承一个抽象类
D.接口中可以有普通成员变量,抽象类中没有普通成员变量
解析:
    抽象类
    特点:
    1.抽象类中可以构造方法
    2.抽象类中可以存在普通属性,方法,静态属性和方法。
    3.抽象类中可以存在抽象方法。
    4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
    5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
    接口
    1.在接口中只有方法的声明,没有方法体。
    2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上
    public static final 
    3.在接口中的方法,永远都被public来修饰。
    4.接口中没有构造方法,也不能实例化接口的对象。
    5.接口可以实现多继承
    6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法
    7.则实现类定义为抽象类。
发布了36 篇原创文章 · 获赞 75 · 访问量 2024

猜你喜欢

转载自blog.csdn.net/qq_43472474/article/details/102955369