喜欢的朋友可以关注下专栏: Java 架构技术进阶. 里面有大量 batj 面试题集锦, 还有各种技术分享, 如有好文章也欢迎投稿哦.
金三银四已经告一段落了, 你是否还在寻找没有 "996" 的公司, 或者你在面试上面摘了跟头? 准备了体体面面的自我介绍, 败在了技术深度上; 又或者技术知识背得完完全全, 却输在了面试技巧.
小编周围有些做架构师和做 HR 的好友, 向他们了了解了一下一些近期面试的趣闻和规则, 以下整理出十条心得供大家参考.
1, 千万不要裸面
不做任何随便写份简历就出去面试, 挂的概率高达 90% 以上, 除非你特别牛.
2, 简历书写, 不要觉得简历描述清楚就行了
同样的一个人, 普通的简历和优化后的简历, 面试官对你的定位和问的问题也是不一样的.
这个是我亲身体验, 我之前拿着一份普通简历出去面试, 面试官就只能把你当成一个普通的 3 年经验的来面, 问一些特别基础的问题. 就算你知道很多东西, 但是面试官根本不问.
而优化后的简历, 面试官一看这简历写的这么牛逼, 先随便问几个问题, 你都能回答不错.
然后, 就直接开始问底层源码, 架构设计等比较 open 的问题, 这样对你的定位和档次一下就上去了.
3, 精心准备 2 个你做过的项目
对于你写在简历上的项目, 一定要反复的梳理. 对项目的业务边界, 技术架构必须了然于胸, 而且用到的技术都保证不能被问倒
4,Java 基础
基础的重要性我就不多说了, 但是我想说的是, 像集合, 线程, volatile, 锁, 网络 IO 等这些, 不要停留到网上博客的那种表面程度.
必须要深入到源码级别, 这样才能突出, 跟其他候选人拉开差距.
5, 数据库的各种机制
ACID, 事物隔离级别以及原理, 索引原理, 常见分库分表姿势等
6,JVM 里的各种东西
分代, 回收算法, 垃圾回收器搭配和对比优劣, 线上问题排查, 类加载等等.
这些东西, 最低要求都要流畅的说出来, 但是如果要和其他候选人拉开差距, 还要突出亮点.
比如, 我之前做过垃圾回收器的调优, 从 CMS 换到 G1.
我把 CMS 的分代, 垃圾回收算法过程这些基本东西说完之后, 然后说出 CMS 有两大缺点: 一个是会产生内存碎片, 另一个是会产生浮动垃圾.
然后就开始说为什么会产生这两大缺点? 因为这两大缺点会怎么样?(导致 RT 升高); 然后换成 G1 之后有啥优点?
接着再把那些原理喷一遍, 调优之后性能上有多少多少的提升, 这在面试官心中档次一下就上来了, 跟其他候选人拉开了差距.
7, 框架
你使用过的框架都要做到了然于胸吧, Spring 最基本的 IoC,AOP,Spring 事务一定得看过吧.
Mybatis,Tomcat 常用的姿势要知道, Redis 常见的部署方案, 集群原理, 持久化机制, 5 种数据类型对应的底层数据结构.
Reactor 模型运转机制, 常见的缓存问题解决方案.
Dubbo,ZooKeeper 的使用姿势和基本原理要知道吧. 如果你研究过这种 RPC 的源码, 无论是 Dubbo 还是 SpringCloud 全家桶, 那就更好了, 直接说出来, 碾压面试官, 让面试官听你聊.
8, 分布式相关的问题
如果研究过大数据相关的框架那就更好了, 绝对的加分项
比如, 我深入研究过 Kafka 的底层机制, 之前面试蚂蚁的时候, 直接就问我 Kafka 的底层:
如果让我来设计, 如何保证消息零丢失. 直接从三个可能丢消息的阶段说出如何设计来保证
还有分布式锁常见的方案要知道, 分布式事务常用的方案都要研究过吧.
比如: 面试蚂蚁的时候, 就问我 TCC 的机制, 直接说出使用姿势, 使用场景, 使用 TCC 的优缺点
9, 算法
这个字节跳动面试问的多一点, 不过这方面能多掌握点都是好的, 不怕一万就怕万一.
最后还有一点, 就是面试过程中一定一定要有自信, 给面试官一种特别有底气, 做什么事都没问题的感觉.
以上就是这段时间走来的一些经历感悟总结, 希望对大家有一些作用!
下面是一份高级 Java 研发岗面试真题, 可以参考下.
HashMap 为什么不是线程安全的?
ConcurrentHashmap 底层实现?
线程池 (包含什么, core,max 联系) 原理?
Synchronized 原理?
Volatile 原理?
JMM(主内存, 工作内存, happens-before)是什么?
有哪些无锁数据结构? 无锁实现的原理?
设计模式(装饰器设计模式, 代理模式, 单例模式, 工厂模式)
Dubbo 设计思路, netty 原理是什么?
说下一次 RPC 请求的过程
MySQL 怎么创建合理索引, 索引怎么优化?
B+tree 怎么分裂, 什么时候分裂, 为什么是平衡的?
MySQL 事务实现原理, ACID 实现原理
MySQL 怎么优化 table scan?
算法: 有 3n+1 个数字, 其中 3n 个中是重复的, 只有 1 个是不重复的, 怎么找出来?
Dubbo 的底层实现原理和机制?
分布式系统怎么做服务治理?
接口的幂等性的概念介绍下
喜欢的朋友可以关注下专栏: Java 架构技术进阶. 里面有大量 batj 面试题集锦, 还有各种技术分享, 如有好文章也欢迎投稿哦.
对于现目前我这边也整理了适合 1~5 年程序员进阶的一些面试真题 (含答案) 还有些 Java 进阶必备知识架构资源以及一些阿里大牛精讲的视频资源, 现免费分享给大家. 希望对你们有点帮助. 还有学习线路知识脑图. 需要的都可以加入合作 Q 群 Java 进阶之路: 908676731, 免费获取.
来源: http://www.jianshu.com/p/db412dbefbf5