每日一题:java基础

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题:java基础相关的知识,希望对你有一定的参考价值。

  1. 下列程序段的输出结果是:( )
    A、true
    B、false
    C、1
    D、0
public void complicatedexpression_r()
    int x=20, y=30;
    boolean b;
    b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60;
    System.out.println(b);

答案:B
题解:此题考查的是运算符优先级。
题中符号的优先级排序是:‘>’,‘<’,‘&&’,‘||’。
即 b=(x>50&&y>60)||(x>50&&y<-60)||(x<-50&&y>60)||(x<-50&&y<-60);

  1. 当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
    A、CountDownLatch
    B、CyclicBarrier
    C、Semaphore
    D、Future

答案:B
题解:(这一题我也不是很明白,所以借鉴的评论区的解释)
CountDownLatch:一个或者多个线程,等待其他多个线程完成某件事情之后才能执行;
CyclicBarrier:多个线程互相等待,直到到达同一个同步点,再继续一起执行。
对于CountDownLatch来说,重点是“一个线程(多个线程)等待”,而其他的N个线程在完成“某件事情”之后,可以终止,也可以等待。
而对于CyclicBarrier,重点是多个线程,在任意一个线程没有完成,所有的线程都必须互相等待,然后继续一起执行。
CountDownLatch是计数器,线程完成一个记录一个,只不过计数不是递增而是递减,
而CyclicBarrier更像是一个阀门,需要所有线程都到达,阀门才能打开,然后继续执行。 按照这个题目的描述等所有线程都到达了这一个阀门处,再一起执行,此题强调的是,一起继续执行,我认为 选B 比较合理!

  1. ServletConfig接口默认是哪里实现的?
    A、Servlet
    B、GenericServlet
    C、HttpServlet
    D、用户自定义servlet

答案:B
题解:

  1. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是()
    A、ArrayList和LinkedList均实现了List接口
    B、ArrayList的访问速度比LinkedList快
    C、添加和删除元素时,ArrayList的表现更佳
    D、HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

答案:ABD
题解:C、增删的时候LinkedList速度更快,因为可以不用移动元素

  1. 下面的对象创建方法中哪些会调用构造方法 ()?
    A、new语句创建对象
    B、调用Java.io.ObjectInputStream的readObject方法
    C、java反射机制使用java.lang.Class或java.lang.reflect.Constructor的newInstance()方法
    D、 调用对象的clone()方法

答案:AC
题解:构造函数的作用是完成对象的初始化。当程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间。分配完内存之后,再调用构造函数,填充对象的各个域,这一步叫做对象的初始化。而选项B、D中,对象的初始化并不是通过构造函数完成的,而是读取别的内存区域中的对象的各个域来完成。

以上是关于每日一题:java基础的主要内容,如果未能解决你的问题,请参考以下文章

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础