![新老客户大回馈,云服务器低至5折](https://www.west.cn/info/templets/default/images/760x90_D.jpg)
/br>
img src="https://www.west.cn/info/upload/20200428/ktava5dkzxj.jpg" alt="">
strong>1、在 java 中守护线程和本地线程区别?
/strong>
strong>两者的区别
/strong>:
strong>扩展
/strong>:Thread Dump 打印出来的线程信息,含有 daemon 字样的线程即为守护
strong>2、线程与进程的区别?
/strong>
strong>3、什么是多线程中的上下文切换?
/strong>
strong>4、死锁与活锁的区别,死锁与饥饿的区别?
/strong>
strong>产生死锁的必要条件
/strong>:
strong>活锁
/strong>:任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,
strong>饥饿
/strong>:一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执
strong>Java 中导致饥饿的原因
/strong>:
strong>5、Java 中用到的线程调度算法是什么?
/strong>
strong>6、什么是线程组,为什么在 Java 中不推荐使用?
/strong>
strong>7、为什么使用 Executor 框架?
/strong>
strong>8、在 Java 中 Executor 和 Executors 的区别?
/strong>
strong>9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时
/strong>
strong>间最长?
/strong>
strong>10、什么是原子操作?在 Java Concurrency API 中有哪些原
/strong>
strong>子类(atomic classes)?
/strong>
strong>11、Java Concurrency API 中的 Lock 接口(Lock interface)
/strong>
strong>是什么?对比同步它有什么优势?
/strong>
strong>它的优势有
/strong>:
strong>12、什么是 Executors 框架?
/strong>
strong>13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用
/strong>
strong>阻塞队列来实现生产者-消费者模型?
/strong>
strong>JDK7 提供了 7 个阻塞队列。分别是
/strong>:
strong>14、什么是 Callable 和 Future?
/strong>
strong>15、什么是 FutureTask?使用 ExecutorService 启动任务。
/strong>
strong>16、什么是并发容器的实现?
/strong>
strong>17、多线程同步和互斥有几种实现方法,都是什么?
/strong>
strong>18、什么是竞争条件?你怎样发现和解决竞争?
/strong>
strong>19、你将如何使用 thread dump?你将如何分析 Thread
/strong>
strong>dump?
/strong>
strong>新建状态(New)
/strong>
strong>就绪状态(Runnable)
/strong>
strong>运行状态(Running)
/strong>
strong>阻塞状态(Blocked)
/strong>
strong>阻塞状态可分为以下 3 种:
/strong>
strong>位于对象等待池中的阻塞状态(Blocked in object’s wait pool)
/strong>:
strong>位于对象锁池中的阻塞状态(Blocked in object’s lock pool)
/strong>:
strong>其他阻塞状态(Otherwise Blocked)
/strong>:
strong>20、为什么我们调用 start()方法时会执行 run()方法,为什么
/strong>
strong>我们不能直接调用 run()方法?
/strong>
strong>21、Java 中你怎样唤醒一个阻塞的线程?
/strong>
strong>22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区
/strong>
strong>别?
/strong>
strong>23、什么是不可变对象,它对写并发应用有什么帮助?
/strong>
strong>24、什么是多线程中的上下文切换?
/strong>
strong>25、Java 中用到的线程调度算法是什么?
/strong>
strong>有两种调度模型
/strong>:分时调度模型和抢占式调度模型。
strong>26、什么是线程组,为什么在 Java 中不推荐使用?
/strong>
strong>27、为什么使用 Executor 框架比使用应用创建和管理线程好?
/strong>
strong>使用 Executor 线程池框架的优点
/strong>
strong>28、java 中有几种方法可以实现一个线程?
/strong>
strong>29、如何停止一个正在运行的线程?
/strong>
strong>使用 interrupt 方法终止线程
/strong>
strong>30、notify()和 notifyAll()有什么区别?
/strong>
strong>31、什么是 Daemon 线程?它有什么意义?
/strong>
strong>32、java 如何实现多线程之间的通讯和协作?
/strong>
strong>33、什么是可重入锁(ReentrantLock)?
/strong>
strong>34、当一个线程进入某个对象的一个 synchronized 的实例方
/strong>
strong>法后,其它线程是否可进入此对象的其它方法?
/strong>
strong>35、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
/strong>
strong>悲观锁
/strong>:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每
strong>乐观锁
/strong>:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所
strong>乐观锁的实现方式
/strong>:
strong>CAS 缺点
/strong>:
strong>ABA 问题
/strong>:
strong>循环时间长开销大
/strong>:
strong>只能保证一个共享变量的原子操作
/strong>:
strong>36、SynchronizedMap 和 ConcurrentHashMap 有什么区
/strong>
strong>别?
/strong>
strong>37、CopyOnWriteArrayList 可以用于什么应用场景?
/strong>
strong>CopyOnWriteArrayList 透露的思想
/strong>
strong>38、什么叫线程安全?servlet 是线程安全吗?
/strong>
strong>39、volatile 有什么用?能否用一句话说明下 volatile 的应用
/strong>
strong>场景?
/strong>
strong>40、为什么代码会重排序?
/strong>
strong>41、在 java 中 wait 和 sleep 方法的不同?
/strong>
strong>在 Java 中线程的状态一共被分成 6 种
/strong>:
strong>初始态
/strong>:NEW
strong>阻塞态
/strong>
strong>等待态
/strong>
strong>超时等待态
/strong>
strong>终止态
/strong>
strong>注意
/strong>:
strong>42、用 Java 实现阻塞队列
/strong>
strong>43、一个线程运行时发生异常会怎样?
/strong>
strong>44、如何在两个线程间共享数据?
/strong>
strong>45、Java 中 notify 和 notifyAll 有什么区别?
/strong>
strong>46、为什么 wait, notify 和 notifyAll 这些方法不在 thread
/strong>
strong>类里面?
/strong>
strong>47、什么是 ThreadLocal 变量?
/strong>
strong>48、Java 中 interrupted 和 isInterrupted 方法的区别?
/strong>
strong>interrupt
/strong>
strong>interrupted
/strong>
strong>isInterrupted
/strong>
strong>49、为什么 wait 和 notify 方法要在同步块中调用?
/strong>
strong>50、为什么你应该在循环中检查等待条件?
/strong>
strong>51、Java 中的同步集合与并发集合有什么区别?
/strong>
strong>52、什么是线程池? 为什么要使用它?
/strong>
strong>53、怎么检测一个线程是否拥有锁?
/strong>
strong>54、你如何在 Java 中获取线程堆栈?
/strong>
strong>56、Thread 类中的 yield 方法有什么作用?
/strong>
strong>57、Java 中 ConcurrentHashMap 的并发度是什么?
/strong>
strong>58、Java 中 Semaphore 是什么?
/strong>
strong>59、Java 线程池中 submit() 和 execute()方法有什么区别?
/strong>
strong>60、什么是阻塞式方法?
/strong>
strong>61、Java 中的 ReadWriteLock 是什么?
/strong>
strong>62、volatile 变量和 atomic 变量有什么不同?
/strong>
strong>63、可以直接调用 Thread 类的 run ()方法么?
/strong>
strong>64、如何让正在运行的线程暂停一段时间?
/strong>
strong>65、你对线程优先级的理解是什么?
/strong>
strong>66、什么是线程调度器(Thread Scheduler)和时间分片(Time
/strong>
strong>Slicing )?
/strong>
strong>67、你如何确保 main()方法所在的线程是 Java 程序最后结束
/strong>
strong>的线程?
/strong>
strong>68、线程之间是如何通信的?
/strong>
strong>69、为什么线程通信的方法 wait(), notify()和 notifyAll()被定
/strong>
strong>义在 Object 类里?
/strong>
strong>70、为什么 wait(), notify()和 notifyAll ()必须在同步方法或
/strong>
strong>者同步块中被调用?
/strong>
strong>71、为什么 Thread 类的 sleep()和 yield ()方法是静态的?
/strong>
strong>72、如何确保线程安全?
/strong>
strong>73、同步方法和同步块,哪个是更好的选择?
/strong>
strong>74、如何创建守护线程?
/strong>
strong>75、什么是 Java Timer 类?如何创建一个有特定时间间隔的
/strong>
strong>任务?
/strong>
strong>上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习并找到一个好的工作,相对来说也节省了你在网上搜索资料的时间来学习!!!
/strong>
strong>附欢迎关注我的公种号:it资源之家?,扫描下面二维码即可领取更多一线大厂Java面试题资料!
/strong>
img src="https://www.west.cn/info/upload/20200428/1h4kvsycjhf.png" alt="">
strong>欢迎大家评论区一起交流,相互提升;整理资料不易,如果喜欢文章记得点个赞哈,感谢大家支持!!!
/strong>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/7055.html