Java多线程与常遇面试题总结
Java多线程面试问题总结
1、多线程有什么用?
2、创建线程的方式
3、start()方法和run()方法的区别
4、Runnable接口和Callable接口的区别
5、CyclicBarrier和CountDownLatch的区别
6、volatile关键字的作用
7、什么是线程安全
8、Java中如何获取到线程dump文件
9、一个线程如果出现了运行时异常会怎么样
10、如何在两个线程之间共享数据
11、sleep方法和wait方法有什么区别
12、生产者消费者模型的作用是什么
13、ThreadLocal有什么用
14、为什么wait()方法和notify()/notifyAll()方法要在同步块中被调用
15、wait()方法和notify()/notifyAll()方法在放弃对象监视器时有什么区别
16、为什么要使用线程池
17、怎么检测一个线程是否持有对象监视器
18、synchronized和ReentrantLock的区别
19、ConcurrentHashMap的并发度是什么
20、ReadWriteLock是什么
21、FutureTask是什么
22、Linux环境下如何查找哪个线程使用CPU最长
23、Java编程写一个会导致死锁的程序
24、怎么唤醒一个阻塞的线程
25、不可变对象对多线程有什么帮助
26、什么是多线程的上下文切换
27、如果你提交任务时,线程池队列已满,这时会发生什么
28、Java中用到的线程调度算法是什么
29、Thread.sleep(0)的作用是什么
30、什么是自旋
31、什么是Java内存模型
32、什么是CAS
33、什么是乐观锁和悲观锁
34、什么是AQS
35、单例模式的线程安全性
36、Semaphore有什么作用
37、Hashtable的size()方法中明明只有一条语句"return count",为什么还要做同步?
38、线程类的构造方法、静态块是被哪个线程调用的
39、同步方法和同步块,哪个是更好的选择
40、高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
面试最容易被问到的十八道题
1)请简单解释算法是什么?
2)解释什么是快速排序算法?
3)解释算法的时间复杂度?
4)请问用于时间复杂度的符号类型是什么?
5)解释二分法检索如何工作?
6)解释是否可以使用二分法检索链表?
7)解释什么是堆排序?
8)说明什么是Skip list?
9)解释插入排序算法的空间复杂度是多少?
10)解释什么是“哈希算法”,它们用于什么?
11)解释如何查找链表是否有循环?
12)解释加密算法的工作原理?
13)列出一些常用的加密算法?
14)解释一个算法的最佳情况和最坏情况之间有什么区别?
15)解释什么是基数排序算法?
16)解释什么是递归算法?
17)提到递归算法的三个定律是什么?
18)解释什么是冒泡排序算法?
以上就是多线程面试题与常见面试题(可私信我免费领取答案),以下最新总结的BAT面试题及答案及更多关于Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料,有需要的朋友可以找我免费领取(领取方式看我个人介绍!)