每日一题:java基础
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题:java基础相关的知识,希望对你有一定的参考价值。
- 下列程序段的输出结果是:( )
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);
- 当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
A、CountDownLatch
B、CyclicBarrier
C、Semaphore
D、Future
答案:B
题解:(这一题我也不是很明白,所以借鉴的评论区的解释)
CountDownLatch:一个或者多个线程,等待其他多个线程完成某件事情之后才能执行;
CyclicBarrier:多个线程互相等待,直到到达同一个同步点,再继续一起执行。
对于CountDownLatch来说,重点是“一个线程(多个线程)等待”,而其他的N个线程在完成“某件事情”之后,可以终止,也可以等待。
而对于CyclicBarrier,重点是多个线程,在任意一个线程没有完成,所有的线程都必须互相等待,然后继续一起执行。
CountDownLatch是计数器,线程完成一个记录一个,只不过计数不是递增而是递减,
而CyclicBarrier更像是一个阀门,需要所有线程都到达,阀门才能打开,然后继续执行。 按照这个题目的描述等所有线程都到达了这一个阀门处,再一起执行,此题强调的是,一起继续执行,我认为 选B 比较合理!
- ServletConfig接口默认是哪里实现的?
A、Servlet
B、GenericServlet
C、HttpServlet
D、用户自定义servlet
答案:B
题解:
- Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是()
A、ArrayList和LinkedList均实现了List接口
B、ArrayList的访问速度比LinkedList快
C、添加和删除元素时,ArrayList的表现更佳
D、HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
答案:ABD
题解:C、增删的时候LinkedList速度更快,因为可以不用移动元素
- 下面的对象创建方法中哪些会调用构造方法 ()?
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基础的主要内容,如果未能解决你的问题,请参考以下文章