1.正确描述如下类和类关系的选项是()

    1. "Man has a best friend who is a Dog"
    2. A.class Man extends Dog { }
    3. B.class Man implements Dog { }
    4. C.class Man { private BestFriend dog; }
    5. D.class Man { private Dog bestFriend; }
    6. E.class Man { private Dog<bestFriend>; }
    7. F.class Man { private BestFriend<dog>; }

    正确答案:D
    解析:
    原意为:我有一个好朋友,它是一条狗;包含关系;而这好朋友是抽象的意思
    A:extens是继承关系,人类继承狗,这明显不对;
    B:implements是接口,定义规则;而人类实现一个狗的接口,这也明显不对;
    C:这句的解析为:我有一个朋友,叫狗;而这朋友具体化了,所以也不对;
    D:我有一条狗,它是我好朋友;这朋友也是抽象化,符合题意;
    E:Dog是泛型集合,<>这里面是定义集合的类型;这狗的类型是好朋友,不对;
    F:跟上述一样,我的好朋友的类型是狗,不对。

    2.

    1. Given:
    2. class Mammal{ }
    3. class Raccoon extends Mammal{
    4. Mammal m = new Mammal();
    5. }
    6. class BabyRaccoon extends Mammal{}
    7. Which four statements are true(Choose four)
    8. A.Raccoon is-a Mammal.
    9. B.Raccoon has-a Mammal.
    10. C.BabyRaccoon is-a Mammal.
    11. D.BabyRaccoon is-a Raccoon.
    12. E.BabyRaccoon has-a Mammal.
    13. F.BabyRaccoon is-a BabyRaccoon.

    正确答案:ABCD
    解析:
    问:有四个正确选项,我却漏选了一个,这是一个失误;
    A:Raccoon继承Manmmal,is a是继承实现的意思,所以正确;
    B:Raccoon有一个Mammal,has a是有一个的意思;Raccoon其中有一个Mammal的对象,所以正确;
    C:BabyRaccoon继承Mammal,is a 是继承实现的意思,所以正确;
    D:BabyRaccoon不继承Raccoon,所以错误
    E:BabyRaccoon有一个Mammal,BabyRaccoon中并没有Mammal的对象,所以错误
    F:BabyRaccoon继承BabyRaccoon,自己继承自己,有这个关系,所以正确

    3.

    1. Given:
    2. class Alpha{
    3. public void foo(){
    4. System.out.print("Afoo");
    5. }
    6. }
    7. public class Beta extends Alpha{
    8. public void foo(){
    9. System.out.print("Bfoo");
    10. }
    11. public static void main(String[] args){
    12. Alpha a = new Beta();
    13. Beta b = (Beta)a;
    14. a.foo();
    15. b.foo();
    16. }
    17. } 2 Points
    18. A.Afoo Afoo
    19. B.Afoo Bfoo
    20. C.Bfoo Afoo
    21. D.Bfoo Bfoo
    22. E.Compilation fails
    23. F.An exception is thrown at runtime

    正确答案:D
    解析:
    Alpha类包含foo方法,而Beta继承了Alpha类,Bete中也有一个foo方法,所以子类Beta重写了父类Alpha的方法;在主方法中,父类的对象引用了子类的对象,这是多态的特性,那么调用的是子类重写父类的方法,即为Bfoo;而a又被造型回了子类,那么子类调用的即为自己的方法,即为Bfoo;所以正确答案为D。

    4.如下哪些语句编译无错误()

    1. A.Byte b = new Byte("123");
    2. B.Byte b = new Byte(123);
    3. C.Byte b = new Byte();
    4. D.Byte b = new Byte((int)123.4);
    5. E.Byte b = new Byte(0x123);

    正确答案:A
    解析:
    Byte对象,底层只有构造方法可以调用,一个带参的String构造方法,一个带参的本身构造方法,由此可见,只有A才是正确的。

    5.以下选项中,关于int和Integer的说法错误的是()
    A.int是基本数据类型,Integer是int的包装类,是引用数据类型
    B.int的默认值是0,Integer的默认值也是0
    C.Integer可以封装属性和方法,提供更多的功能
    D.Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能
    正确答案:BD
    解析:
    B:int的默认值是0,而Integer的默认值是null,因为Integer是int的包装类,是引用数据类型。
    D:自动拆箱功能是JDK1.5之后才开始有自动装箱和自动拆箱功能;但是Integer这个是自动装箱功能。
    6.分析如下Java代码,该程序编译后的运行结果是()

    1. public static void main(String[] args){
    2. String str = null
    3. str.concat("abc");
    4. str.concat("def");
    5. System.out.println(str);
    6. }
    7. A.null
    8. B.abcdef
    9. C.编译错误
    10. D.运行时出现NullPointerException

    正确答案:D
    解析:
    这题本不应该错误。
    String为空,但是不能点函数。

    如果String为空字符串,那么也不行,String的特性其中之一就是不可变性,这个特性在于字符串的内容和长度上,所以更改内容时,需要重新赋值回原字符串,相当于将新的内容引用到原字符串的位置。
    7.关于迭代器说法错误的是()
    A.迭代器是取出集合元素的方式
    B.迭代器的hasNext()方法返回值是boolean类型
    C.List集合和Set集合均可以获取迭代器
    D.迭代器的next方法将返回集合中的上一个元素
    a—>d
    正确答案:D
    解析:迭代器的next方法将返回集合中的当前元素。
    8.若使用TreeSet集合来存储元素,该元素必须()
    A.实现Comparable接口
    B.有main方法
    C.有get和set方法
    D.实现Serializable接口
    c—>a
    正确答案:A
    解析:
    Tree是继承Comparable接口来的,而Set是无序无重复的,所以存储元素,则需要规则,所以需要实现Comparable接口。
    9.下列关键字不能单独使用,必须与try一起使用的有
    A.final
    B.finally
    C.catch
    D.finalize
    正确答案:BC
    解析:
    A:final是最终的,不可更改的,能修饰数据、方法参数、类、方法,与try无关;
    BC:是搭配try一起使用的关键字,
    D:finalize()方法中一般用于释放非Java 资源,与try无关。
    10.以下关于JAVA语言异常处理描述正确的有?()
    A.throw关键字可以在方法上声明该方法要抛出的异常
    B.throws用于抛出异常对象
    C.try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句
    D.finally语句块是不管有没有出现异常都要执行的内容
    E.在try块中不可以抛出异常
    c—>d
    正确答案:D
    解析:
    AB:说反了,throws才是可以在方法上声明该方法要抛出的异常,throw用于抛出异常对象;
    C:如果有异常,不抛出,直接执行catch语句;
    E:在try中是可以抛出异常的。
    9.关于异常的编程,以下描述错误的是()
    A.在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常
    B.int i = Integer.parseInt(“123a”);将产生NumberFormatException
    C.int a[] = null; a[0] = 1;将产生NullPointerException
    D.输入输出流编程中,读和写时都要抛出IOException
    b—>a
    正确答案:A
    解析:
    不是必须。


    总结:
    1.进度还是有些赶不上。
    2.对最基础的有些东西还是了解的不够深,印象不是很深刻。
    3.对底层的代码运行还是看的太少。
    解决办法:利用碎片化时间来学习课程加快课程的进度,多看看底层代码,有规划的复习之前的基础知识。