一直忍着准备放个大招,没想到还是被刷了...
前阵子,在准备拼多多的面试,好不容易挺近了三面,没想到被一波完虐,最终面试官请我回家等候通知了。
在等候面试过程中,跟周围的程序员同僚聊了起来,顺便加了一手联系方式。
嘿嘿,虽然没有过面试,但是东拼西凑,加上自己记下的面试题,把面试内容基本都统计了下来。
拼多多一面
1、项目中遇到的问题,及解决方案?
基本上都问到了这个问题,还好早有准备。之前看过介绍项目的star法则,我就跟面试官一唱一喝,把项目介绍介绍完了。(没有自己一个人长篇大论的说,稍加引导似的让面试官问我相关技术问题,回答起来当然就得心应手啦)
2、项目中用到的一些技术?
整个一面基本上都是围绕我之前做过的项目来讲的,也没什么好说的。面完之后,从面试官的表情看似乎对我挺满意的,自然就顺利进入二面了。(可见之前做了充足的准备,还是有好处的)
二面、三面
据说的电商部的一个主管和部门负责人,有点紧张,没有注意,稍微问了一下项目,就开始技术碾压了。
注意:我已经将这些面试题和答案汇总成了文档,需要的程序员朋友多多点赞支持一下。
- 并发编程三要素?
- 实现可见性的方法有哪些?
- 多线程的价值?
- 创建线程的有哪些方式?
- 创建线程的三种方式的对比?
- 线程的状态流转图
- 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度无死角扫射袭击啊!
于是,通过网上四处找答案,找博客,把问题重新整理了一遍
另外还收罗了一套大厂面试真题
这些真题内容小编这里已经整理好了,需要领取的朋友点赞支持一下。