面试,难还是不难?最终结果好还是不好?取决于面试者的底蕴(气场+技能)、心态和认知以及沟通技巧。而一些主流的大型互联网公司面试更是需要你在面试时展现出自己的能力,从而获得面试官的欣赏和肯定。

而程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大家更好的应对面试官的问题以及面试中的突发情况。

 

一面

  • 简短自我介绍
  • 事务的ACID,其中把事务的隔离性详细解释一遍
  • 红黑树、二叉树的算法
  • 平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁?
  • jdk1.8中,对hashMap和concurrentHashMap做了哪些优化
  • 如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值
  • synchronized 和 ReentranLock的区别?
  • ThreadLocal?应用场景?
  • Java GC机制?GC Roots有哪些?
  • MySQL行锁是否会有死锁的情况?

二面

  • 乐观锁和悲观锁了解吗?JDK中涉及到乐观锁和悲观锁的内容?
  • Nginx负载均衡策略?
  • Nginx和其他负载均衡框架对比过吗?
  • Redis是单线程?
  • Redis高并发快的原因?
  • 如何利用Redis处理热点数据
  • 谈谈Redis哨兵、复制、集群
  • 工作中技术优化过哪些?JVM、MySQL、代码等都谈谈

三面

  • Spring Cloud用到什么东西?如何实现负载均衡?服务挂了注册中心怎么判断?
  • 网络编程nio和netty相关,netty的线程模型,零拷贝实现
  • 分布式锁的实现你知道的有哪些?具体详细谈一种实现方式
  • 高并发的应用场景,技术需要涉及到哪些?怎样来架构设计?
  • 接着高并发的问题,谈到了秒杀等的技术应用:kafka、redis、mycat等
  • 最后谈谈你参与过的项目,技术含量比较高的,相关的架构设计以及你负责哪些核心编码
  • Java程序员项目介绍注意点
  • 问及项目经验的时候,考察的并不是技术,而是你的项目概述能力。可按照下面的步骤进行:
  • 1.从一个项目的生命周期为基准线展开讲,这样介绍更有层次感。接下来要将你在项目中的比重,你负责主要点有哪些。
  • 2.在项目概述之后,就要讨论每个项目过程中遇到的困难部分,因为大部分项目都会遇到这个问题,所以尽量真实地描述你是如何解决问题的,这也将体现你解决问题的思想。
  • 3.有礼貌的询问面试官对于项目还有哪些疑问或者不清楚的地方。
  • offer = 心态 * (硬实力 + 软实力) + 缘分运气,每一个人都是经历不断面试失败再总结,再优化面试经验,再提升技术深度,从而找到一份自己心仪的工作,希望对你的BAT面试之旅有所帮助!

【文章彩蛋】

为了解决小伙伴们的燃眉之急,小编特地为大家整理了一些Java相关的面试题,可以点赞+关注我后扫描小编的二维码即可获取!后期也会不断更新添加新的面试题,希望可以帮助到大家。