2018Java岗位面试和笔试汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37610397/article/details/83153030

  这篇文章是用来记录自己秋招遇到的比较难的笔试题和面试题,有部分答案,不过可能不太对,如果错误,麻烦各位指出了。

1.tomcat 重启后,第一次打开页面很慢,后面就渐渐快了,是什么原因?

可能使因为第一次链接要初始化数据库连接池和如果是jsp文件,需要编译。
参考:
https://bbs.csdn.net/topics/360213495

2.Double d=42.0; d.equals(42);是否为true?byte i=10;和byte i=200;是否正确?

d.equals(42)的值为false,byte i=10能通过编译,byte i=200 不能通过编译。

3.jdk提供的用于并发编程的同步器有哪些?

Semaphore,CyclicBarrier,CountDownLatch
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
链接:https://www.nowcoder.com/questionTerminal/6a670710f1a54892985575aa4dd67cdc
来源:牛客网

猜你喜欢

转载自blog.csdn.net/weixin_37610397/article/details/83153030