多线程和并发问题已成为各种 Java 面试中必不可少的一部分。如果你准备参加投行的 Java 开发岗位面试,比如巴克莱银行(Barclays)、花旗银行(Citibank)、摩根史坦利投资公司(Morgan Stanley),你会遇到很多有关多线程的面试题。多线程和并发是投行面试的热门知识点,尤其是在面试有关电子交易开发工作时,他们喜欢用棘手的 Java 线程面试题轰炸面试者。今天小编给大家准备了一些Java面试题,欢迎阅读:
1. 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
2. Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
3. Java 中 wait 和 sleep 方法有什么区别?
4. 如何在 Java 中实现一个阻塞队列?
5. 如何在 Java 中编写代码解决生产者消费者问题?
6. 写一段死锁代码。你在 Java 中如何解决死锁?
7. 什么是原子操作?Java 中有哪些原子操作?
8. Java 中 volatile 关键字是什么?你如何使用它?它和 Java 中的同步方法有什么区别?
9. 什么是竞态条件?你如何发现并解决竞态条件?
相关推荐: