一直忍着准备放个大招,没想到还是被刷了...

前阵子,在准备拼多多的面试,好不容易挺近了三面,没想到被一波完虐,最终面试官请我回家等候通知了。

在等候面试过程中,跟周围的程序员同僚聊了起来,顺便加了一手联系方式。

嘿嘿,虽然没有过面试,但是东拼西凑,加上自己记下的面试题,把面试内容基本都统计了下来。

 

拼多多一面

1、项目中遇到的问题,及解决方案?

基本上都问到了这个问题,还好早有准备。之前看过介绍项目的star法则,我就跟面试官一唱一喝,把项目介绍介绍完了。(没有自己一个人长篇大论的说,稍加引导似的让面试官问我相关技术问题,回答起来当然就得心应手啦)

2、项目中用到的一些技术?

整个一面基本上都是围绕我之前做过的项目来讲的,也没什么好说的。面完之后,从面试官的表情看似乎对我挺满意的,自然就顺利进入二面了。(可见之前做了充足的准备,还是有好处的)

二面、三面

据说的电商部的一个主管和部门负责人,有点紧张,没有注意,稍微问了一下项目,就开始技术碾压了。

注意:我已经将这些面试题和答案汇总成了文档,需要的程序员朋友帮忙转发一下文章,----【免费java文档下载】

        
  • 并发编程三要素?     
  • 实现可见性的方法有哪些?     
  • 多线程的价值?     
  • 创建线程的有哪些方式?     
  • 创建线程的三种方式的对比?     
  • 线程的状态流转图     
  • Java 线程具有五种基本状态     
  • 什么是线程池?有哪几种创建方式?     
  • 四种线程池的创建     
  • 线程池的优点?     
  • 常用的并发工具类有哪些?     
  • CyclicBarrier 和 CountDownLatch 的区别     
  • synchronized 的作用?     
  • volatile 关键字的作用     
  • sleep 方法和 wait 方法有什么区别?     
  • 什么是 CAS     
  • CAS 的问题     
  • 什么是 Future?     
  • 什么是 AQS     
  • AQS 支持两种同步方式     
  • ReadWriteLock 是什么     
  • FutureTask 是什么     
  • synchronized 和 ReentrantLock 的区别     
  • 什么是乐观锁和悲观锁     
  • 线程 B 怎么知道线程 A 修改了变量     
  • synchronized、volatile、CAS 比较     
  • 为什么 wait()方法和 notify()/notifyAll()方法要在同步块中被调用     
  • 多线程同步有哪几种方法?     
  • 线程的调度策略     
  • ConcurrentHashMap 的并发度是什么?     
  • Linux 环境下如何查找哪个线程使用 CPU 最长     
  • 死锁的原因?     
  • Java 死锁以及如何避免?     
  • 怎么唤醒一个阻塞的线程?     
  • 不可变对象对多线程有什么帮助?     
  • 什么是多线程的上下文切换?     
  • 如果你提交任务时,线程池队列已满,这时会发生什么?     
  • Java 中用到的线程调度算法是什么?     
  • 什么是线程调度器(Thread Scheduler)和时间分片(TimeSlicing)?     
  • 什么是自旋?     
  • Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?     
  • 等等等等...

 

还有一堆就不列出来了,这些面试题都是我整理融合在一起的,有些重复的都去掉了。

相信大家都看出来了,逮着多线程和并发往死里虐啊这是!

自认为在多线程并发这方面做了一些功课,也扛不住360度无死角扫射袭击啊!

于是,通过网上四处找答案,找博客,把问题重新整理了一遍

另外还收罗了一套大厂面试真题

 

 

注意:我已经将这些面试题和答案汇总成了文档,需要的程序员朋友帮忙转发一下文章,----【免费java文档下载】