Java日常练习题|Java日常练习题,每天进步一点点(20)

目录

  • 1、如何跳出Array的forEach循环?( )
  • 2、对抽象类的描述正确的是()
  • 3、类方法中可以直接调用对象变量。( )
  • 4、如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( )
  • 5、内部类(也叫成员内部类)可以有4种访问权限。( )
  • 6、下面代码的运行结果是()
  • 7、关键字super的作用是?
  • 8、下面程序运行完之后,t2与t3的关系为()
  • 9、下列不属于Java语言性特点的是
  • 10、下面哪个行为被打断不会导致InterruptedException:( )
    • 答案汇总:
  • 总结
    承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

    1、如何跳出Array的forEach循环?( )
    正确答案: A

    break

    return true

    return false

    以上都不是
    题解:
    送分题,break

    2、对抽象类的描述正确的是()
    正确答案: D

    抽象类的方法都是抽象方法

    一个类可以继承多个抽象类

    抽象类不能有构造方法

    抽象类不能被实例化
    题解:
    A.抽象类也可以有非抽象的方法,而接口中的方法都是抽象方法
    B.java中类只能单继承,接口可以‘继承'多个接口
    C.抽象类必须有构造方法,接口一定没有构造方法
    D.实例化一般指new一个对象,所以抽象类不能实例化

    3、类方法中可以直接调用对象变量。( )
    正确答案: B
    正确

    错误
    题解:
    静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用

    4、如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( )
    正确答案: C

    void drink() { …}

    protected void drink() { …}

    public void drink() { …}

    以上语句都可以用在类Calf中
    题解:
    子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public

    5、内部类(也叫成员内部类)可以有4种访问权限。( )
    正确答案: A

    正确

    错误
    题解:
    你就把内部类理解成类的成员,成员有4种访问权限吧,内部类也是!分别为private、protected、public以及默认的访问权限

    6、下面代码的运行结果是()
    public static void main(String[] args){

    String s;

    System.out.println(“s=”+s);

    }

    正确答案: C

    代码编程成功,并输出”s=”

    代码编译成功,并输出”s=null”

    由于String s没有初始化,代码不能编译通过。

    代码编译成功,但捕获到NullPointException异常
    题解:
    成员变量有初始值,而局部变量没有初始值得。本体中的s定义在方法中所以为局部变量没有初始值。变量没有初始值就使用了,编译通不过,敲代码的时候就能发现不初始化使用时就是红的错误提示。

    7、关键字super的作用是?
    正确答案: D
    用来访问父类被隐藏的非私有成员变量

    用来调用父类中被重写的方法

    用来调用父类的构造函数

    以上都是
    题解:
    全是

    8、下面程序运行完之后,t2与t3的关系为()
    Object obj=new Object(); List aList=new ArrayList(); List bList=new LinkedList(); long t1=System.currentTimeMillis(); for(int i=0; i<50000; i++){aList.add(0,obj); }long t2=System.currentTimeMillis()-t1; t1=System.currentTimeMillis(); for(int i=0; i<50000; i++){bList.add(0,obj); }long t3=System.currentTimeMillis()-t1;

    正确答案: D

    t2

    t2=t3

    不确定

    t2>t3
    题解:
    此题考察的是ArrayList和LinkedList的特征:同样是新增5000个对象,LinkedLIst比ArrayList更快

    ArrayList:增删慢,查询快。
    由于是数据组实现,需要连续的内存空间,如果删除数组中间的值,为了保证下标的有效性,需要将后面的数据往前移,所以删除慢。
    当插入A对象到B对象的前面时,需要将B对象和B对象之后的所有对象后移一位,再插入A对象。所以插入慢。
    数组的大小是固定的,如果数组满了,需要重新分配空间,new一个新数组并copy旧数据之后再增加新数据,所以增加慢。
    因为是连续内存空间,可以通过下标查询数据,所以查询快。

    LInkedList:增删快,查询慢。
    由于是链表实现,当前节点的next指向下一个节点,prev指向上一个节点,不需要连续的内存空间,所以增删快。
    因为不是连续内存空间,所以不能使用下标查询,只能通过next遍历,所以查询慢。

    9、下列不属于Java语言性特点的是
    正确答案: D

    Java致力于检查程序在编译和运行时的错误

    Java能运行虚拟机实现跨平台

    Java自己操纵内存减少了内存出错的可能性

    Java还实现了真数组,避免了覆盖数据类型的可能
    题解:
    Java致力于检查程序在编译和运行时的错误。
    Java虚拟机实现了跨平台接口
    类型检查帮助检查出许多开发早期出现的错误。
    Java自己操纵内存减少了内存出错的可能性。
    Java还实现了真数组,避免了覆盖数据的可能。
    注意,是避免数据覆盖的可能,而不是数据覆盖类型

    10、下面哪个行为被打断不会导致InterruptedException:( )
    正确答案: E

    Thread.join

    Thread.sleep

    Object.wait

    CyclicBarrier.await

    Thread.suspend
    题解:
    抛InterruptedException的代表方法有:
    java.lang.Object 类的 wait 方法
    java.lang.Thread 类的 sleep 方法
    java.lang.Thread 类的 join 方法
    当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。
    对于常见的ABC选项都有说明,对于D,CyclicBarrier是一个屏障类,它的await方法可以简单的理解为:等待多个线程同时到达之后才能继续进行,在此之前它就是这些线程的屏障,线程不能继续进行,而对于失败的同步尝试,CyclicBarrier 使用了一种要么全部要么全不 (all-or-none) 的破坏模式:如果因为中断、失败或者超时等原因,导致线程过早地离开了屏障点,那么在该屏障点等待的其他所有线程也将通过 BrokenBarrierException(如果它们几乎同时被中断,则用 interruptedException)以反常的方式离开。因此它被中断也是可以抛出interruptedException的,如果还是不清楚,查看一下JavaAPI,对于这个类介绍的清清楚楚。

    答案汇总:

    1、正确答案: A

    2、正确答案: D

    3、正确答案: B

    4、正确答案: C

    5、正确答案: A

    6、正确答案: C

    7、正确答案: D

    8、正确答案: D

    9、正确答案: D

    10、正确答案: E

    总结 【Java日常练习题|Java日常练习题,每天进步一点点(20)】本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

      推荐阅读