标签:servlet 不同 let ice container ble 不可变对象 run window
前言
并发编程几乎是所有互联网公司面试必问的问题,并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。
关于Java并发编程的知识总结了个思维导图,分享给大家
整理了网络上热门的123道Java并发面试题,看看你都遇到过哪些?
Java 并发编程(一)
6、什么是线程组,为什么在 Java 中不推荐使用?
8、在 Java 中 Executor 和 Executors 的区别?
9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?
10、什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?
11、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
14、什么是 Callable 和 Future?
15、什么是 FutureTask?使用 ExecutorService 启动任务。
19、你将如何使用 thread dump?你将如何分析 Thread dump?
20、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
23、什么是不可变对象,它对写并发应用有什么帮助?
26、什么是线程组,为什么在 Java 中不推荐使用?
27、为什么使用 Executor 框架比使用应用创建和管理线程好?
30、notify()和 notifyAll()有什么区别?
33、什么是可重入锁(ReentrantLock)?
34、当一个线程进入某个对象的一个 synchronized 的实例方法后,其它线程是否可进入此对象的其它方法?
35、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
36、SynchronizedMap 和 ConcurrentHashMap 有什么区别?
37、CopyOnWriteArrayList 可以用于什么应用场景?
38、什么叫线程安全?servlet 是线程安全吗?
39、volatile 有什么用?能否用一句话说明下 volatile 的应用场景?
41、在 java 中 wait 和 sleep 方法的不同?
45、Java 中 notify 和 notifyAll 有什么区别?
46、为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
48、Java 中 interrupted 和 isInterrupted 方法的区别?
49、为什么 wait 和 notify 方法要在同步块中调用?
51、Java 中的同步集合与并发集合有什么区别?
56、Thread 类中的 yield 方法有什么作用?
57、Java 中 ConcurrentHashMap 的并发度是什么?
59、Java 线程池中 submit() 和 execute()方法有什么区别?
61、Java 中的 ReadWriteLock 是什么?
62、volatile 变量和 atomic 变量有什么不同?
63、可以直接调用 Thread 类的 run ()方法么?
66 、 什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (TimeSlicing )?
67、你如何确保 main()方法所在的线程是 Java 程序最后结束的线程?
69、为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在Object 类里?
70、为什么 wait(), notify()和 notifyAll ()必须在同步方法或者同步块中被调用?
71、为什么 Thread 类的 sleep()和 yield ()方法是静态的?
75、什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?
Java 并发编程(二)
12、CyclicBarrier 和 CountDownLatch 的区别
22、synchronized 和 ReentrantLock 的区别
25、synchronized、volatile、CAS 比较
26、sleep 方法和 wait 方法有什么区别?
28、为什么 wait()方法和 notify()/notifyAll()方法要在同步块中被调用
31、ConcurrentHashMap 的并发度是什么
32、Linux 环境下如何查找哪个线程使用 CPU 最长
38、如果你提交任务时,线程池队列已满,这时会发生什么
40 、 什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (TimeSlicing)?
42、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
上面的这些问题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
关于这123个热门的Java并发面试题总结了50多页pdf文档
关注我的公种浩:程序员追风,回复 0111 即可领取!
希望能帮助到你面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
最后
欢迎大家一起交流,喜欢文章记得关注我点赞转发哟,感谢支持!
2019年全网最热门的123个Java并发面试题总结
标签:servlet 不同 let ice container ble 不可变对象 run window
原文地址:https://www.cnblogs.com/zhuifeng523/p/12183129.html