每日一题: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中,对象的初始化并不是通过构造函数完成的,而是读取别的内存区域中的对象的各个域来完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值