“金九银十”这个字眼对于程序员应该是再熟悉不过的了,每年的金三银四都会有很多程序员找工作、跳槽等一系列的安排。说实话,面试中 7 分靠能力,3 分靠技能;在刚开始的时候介绍项目都是技能中的重中之重,它也是可以决定一次面试的成败的,那么在面试的时候你会如何介绍自己、熟练回答面试官的问题以及有条理的介绍项目呢?
程序员在面试之前要将简历完善,将最重要的技能以及吸引面试官眼球的技术展示出来;面试时,一定要有一个好的心态,做到有条理、回答清晰;面试完,要有礼貌以及正确看待面试结果,总结其中的不足,发挥更好的优势。
注意:下文内容中会提到一些简历模板、学习笔记、学习脑图、Java电子书籍和视频等,需要的文末右获取方式
One:三顾茅庐,七面阿里,拿下25K*16offer
——一顾阿里一面被怼(未知部门)
阿里巴巴未知部门一面(问的问题让我感觉是偏金融的部门,面试官很严肃,现在想想都有些后怕)
- 自我介绍
- 开源项目贡献过代码么?(回答没有,很尴尬)
- 之前在部门做什么?简单介绍一下业务吧,内部有哪些系统,作何交互过程说一下
- Dubbo踩过哪些坑?分别是怎么解决的?(我答了异常处理时业务异常捕获的问题,自定义了一个异常拦截器)
- 说下你对线程安全的理解
- 事务有哪些特性?
- 怎么理解原子性?
- 讲一下乐观锁和悲观锁的区别,这两种锁在Java和MySQL分别是怎么实现的?
- HashMap为什么不是线程安全的?怎么让HashMap变得线程安全?两者的区别是什么?
- jdk1.8对ConcurrentHashMap做了哪些优化?为什么这样优化?
- redis主从机制了解么?怎么实现的?
- 有过GC调优的经历么?(有点虚,答得不是很好)
- List,Map,Set三个接口存取元素时,各有什么特点?
- TreeMap和TreeSet在排序时如何比较元素?Collection工具类中的sort()方法如何比较元素?
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行 它们有什么区别?
- 线程的sleep()方法和yield()方法有什么区别?
- 当一个线程进入一个对象的synchronized方法A之后 其他线程是否可进入此对象的synchronized方法b?
- 请说出与线程同步以及线程调度相关的方法
- synchroized关键字的用法?
- 启动一个线程是调用run()还是start()方法?
- 有什么想问的么?
——二顾阿里二面惨败(菜鸟网络)
阿里巴巴菜鸟网络一面:
- 先来了个自我介绍
- 然后介绍了自己简历里写到的一个比较熟悉的项目(询问了项目的细节及具体的实现)
- 接着面试官开始针对项目进行提问:(1)高并发的情况下,Kafka消费到第一条记录,在下沉服务处理好,但由于网络抖动没有正确返回给上层,上层服务再次调用服务,怎么样保证只处理一次请求?(我答了分布式锁,介绍实现)