2018 Java线程热门面试题,你知道多少?

面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。
在典型的Java面试中, 面试官会从线程的基本概念问起

如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用的设计模式,经典多线程问题如生产者消费者,哲学家就餐,读写器或者简单的有界缓冲区问题。仅仅知道线程的基本概念是远远不够的, 你必须知道如何处理死锁,竞态条件,内存冲突和线程安全等并发问题。掌握了这些技巧,你就可以轻松应对多线程和并发面试了。
许多Java程序员在面试前才会去看面试题,这很正常。

因为收集面试题和练习很花时间,所以我从许多面试者那里收集了Java多线程和并发相关的50个热门问题。

1、什么是线程?

2、什么是线程安全和线程不安全?

3、什么是自旋锁?

4、什么是Java内存模型?

5、什么是CAS?

6、什么是乐观锁和悲观锁?

7、什么是AQS?

8、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?

9、什么是Executors框架?

10、什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?

11、什么是Callable和Future?

12、什么是FutureTask?

13、什么是同步容器和并发容器的实现?

14、什么是多线程?优缺点?

15、什么是多线程的上下文切换?

16、ThreadLocal的设计理念与作用?

17、ThreadPool(线程池)用法与优势?

18、Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。

19、synchronized和ReentrantLock的区别?

20、Semaphore有什么作用?

21、Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?

22、Hashtable的size()方法中明明只有一条语句”return count”,为什么还要做同步?

23、ConcurrentHashMap的并发度是什么?

24、ReentrantReadWriteLock读写锁的使用?

25、CyclicBarrier和CountDownLatch的用法及区别?

26、LockSupport工具?

27、Condition接口及其实现原理?

28、Fork/Join框架的理解?

29、wait()和sleep()的区别?

30、线程的五个状态(五种状态,创建、就绪、运行、阻塞和死亡)?

31、start()方法和run()方法的区别?

32、Runnable接口和Callable接口的区别?

33、volatile关键字的作用?

34、Java中如何获取到线程dump文件?

35、线程和进程有什么区别?

36、线程实现的方式有几种(四种)?

37、高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?

38、如果你提交任务时,线程池队列已满,这时会发生什么?

39、锁的等级:方法锁、对象锁、类锁?

40、如果同步块内的线程抛出异常会发生什么?

41、并发编程(concurrency)并行编程(parallellism)有什么区别?

42、如何保证多线程下 i++ 结果正确?

43、一个线程如果出现了运行时异常会怎么样?

44、如何在两个线程之间共享数据?

45、生产者消费者模型的作用是什么?

46、怎么唤醒一个阻塞的线程?

47、Java中用到的线程调度算法是什么?

48、单例模式的线程安全性?

49、线程类的构造方法、静态块是被哪个线程调用的?

50、同步方法和同步块,哪个是更好的选择?

51、如何检测死锁?怎么预防死锁?

需要以上面试题答案的,关注我短消息回复Java线程面试免费获取。

原文地址:https://www.cnblogs.com/lfs2640666960/p/8639719.html

时间: 2024-10-12 03:44:21

2018 Java线程热门面试题,你知道多少?的相关文章

Java线程经典面试题

53道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒.Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点. 2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并

消息中间件消费到的消息处理失败怎么办?热门面试题的满分答案!

1.日趋流行的面试问法 现在网上很多面试题,主要是针对技术本身的提问,比如:你聊聊对Dubbo的理解?你说说分布式事务是什么? 这些问题就好比中学考试的送分题,比如默写古诗,你只要准备了,下点功夫,都没啥问题. 所以这里对技术本身的提问,其实就相当于送分题,主要是做一个基本的区分.你能回答出来,说明你至少平时还注意积累知识,不是一个混日子的工程师. 但是现在出去面试,尤其是一些大厂的面试越来越难了,从以前普通的技术知识本身,现在到了会考察你很多生产环境中的一些特殊状况. 也就是说从以前的知识积累

Java线程面试题 Top 50

原文链接: javarevisited 翻译: ImportNew.com- 李 广译文链接: http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程相关的问题在面试中经常会被提到. 在典型的Java面试中, 面试官会从线程

【转】Java线程面试题Top50

目录(?)[-] 50道Java线程面试题 1 什么是线程 2 线程和进程有什么区别 3 如何在Java中实现线程 4 用Runnable还是Thread 6 Thread 类中的start 和 run 方法有什么区别 7 Java中Runnable和Callable有什么不同 8 Java中CyclicBarrier 和 CountDownLatch有什么不同 9 Java内存模型是什么 10 Java中的volatile 变量是什么 11 什么是线程安全Vector是一个线程安全类吗 详见这

疯狂Java学习笔记(59)-----------50道Java线程面试题

50道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒.Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点.欲了解更多详细信息请点击这里. 2) 线程和进程有什么区别? 线程是进程的子集,一个

Java线程面试题 Top 50(转)

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程相关的问题在面试中经常会被提到. 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在J

【转】Java线程面试题 Top 50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程相关的问题在面试中经常会被提到. 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在J

Java 线程面试题 Top 50

--> html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.ric

Java线程面试题Top50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎.大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发.调试.优化经验,所以线程相关的问题在面试中经常会被提到. 在典型的 Java 面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承 thread 类还是调用 Runnable 接口),