前言
在互联网行业面试中,大家都知道,一般大公司才会在应聘中重点要求学历这一条的, 那么非985、211毕业的我们,想去大公司,该怎么办呢?
其实不然,HR看简历一般看两点,学历和经历,也就是说当你的工作经历足够吸引到他们,那么也是可以得到一个面试机会的,那接到面试后,我们需要做些什么呢?
那我这边分享一下我最近的一次余额宝的面试经历:
面试过的同学都知道,在面试中面试官经常会东一个框架,西一个源码,想到什么问什么,完全不按套路出牌。
面试的目的是找到合适的候选人,所以都会偏向于公司的业务方向进行提问,但即使是这样,也依然是在一定范围内的。
根据这次的面试经历,我整理了几个面试的主要方向,供大家参考:
1、JVM参数配置、常用调试工具分区、类加载,还会问你有需要线上的调试问题吗?遇到死循环CPU飙升怎么解决?
2、Java发包常用工具用法和原理、会配合集合类-起考,对了还会有volatile、 CAS 原理等。
3、MySQL也算是必备了,索引存储结构、薪|搜索原理、务的隔离级别和原理,这些真的是逢考必问。
当然除了MySQL,Redis 和ES也是面试长文的,大多都是集中到原理。比如ES倒排索引、分片原理,Redis 的zset原理和使用场景、多路复用、 穿透、熔断等等。
4、框架也是必备的知识点。最常见的就是AOP原理,自己怎么实现? Spring Boot啥原理?框架通常会配合设计模式-起考,比如你最熟悉的设计模式是啥? Spring MVC里面用了什么设计模式?解决了什么问题?
5、接下来最重要的就是服务治理了,这里面内容就太多了,Dubbo、Spring Cloud等。总之这个地方最能看得出你真实的工作经验和问题的考虑深度,毕竟没有真正在庞大的系统里面锻炼过真的很难应付这个地方。
6、最后就是算法了,这就需要长期练习,LeetCode刷起来!
当然,面试方向只是给了个大方向,还需要落实到具体的技术点中。
余额宝二面经历
一面
- 自我介绍
- 项目中的监控:那个监控指标常见的有哪些?
- 微服务涉及到的技术以及需要注意的问题有哪些?
- 注册中心你了解了哪些?
- consul的可靠性你了解吗?
- consul的机制你有没有具体深入过?有没有和其他的注册中心对比过?
- 项目用Spring比较多,有没有了解Spring的原理? AOP和I0C的原理
- Spring Boot除了自动配置,相比传统的 Spring有什么其他的区别? .
- Spring Cloud有了解多少?
- Spring Bean的生命周期
- HashMap和hashTable区别?
- Object的hashcode方法重写了,equals 方法要不要改?
- Hashmap线程不安全的出现场景
- 线上服务CPU很高该怎么做?有哪些措施可以找到问题
- JDK中有哪几个线程池?顺带把线程池讲了个遍
- 应尽量避免在where子句中使用!=或< >操作符,否则将引擎放弃使用索弓|而进行全表扫描
- SQL索引的顺序,字段的顺序
- 查看SQL是不是使用了索引? (有什么工具)
- TCP和UDP的区别? TCP数据传输过程中怎么做到可靠的?
- 说下你知道的排序算法吧
- 查找一个数组的中位数?
二面
你有什么问题想问我的吗? (常规问询)
- 自我介绍、工作经历、技术栈
- 项目中你学到了什么技术?
- 微服务划分的力度?
- 微服务的高可用怎么保证的?
- 负载均衡与反向代理,隔离,限流,降级,超时与重试,回滚,压力测试与应急预案.
- 常用的负载均衡,该怎么用,你能说下吗?
(技术问)
- http重定向
- DNS负载均衡
- 反向代理负载均衡
- I负载均衡(LVS-NAT)
- 直接路由(LVS-DR)
- IP隧道(LVS-TUN)
- 网关能够为后端服务带来哪些好处?
- Spring Bean的生命周期
- xml中配置的init、destroy 方法怎么可以做到调用具体的方法?反射的机制
- Object类中的方法
- 对象比较是否相同
- hashmap put方法存放的时候怎么判断是否是重复的
- Object toString方法常用的地方,为什么要重写该方法
- Set和List区别?
- ArrayList和LinkedList区别
- 如果存取相同的数据,ArrayList 和LinkedList 谁占用空间更大?
- Set存的顺序是有序的吗?
- 常见Set的实现有哪些?
- TreeSet对存入对数据有什么要求呢?
- HashSet的底层实现呢?
- TreeSet底层源码有看过吗?
- HashSet是不是线程安全的?为什么不是线程安全的?
- Java中有哪些线程安全的Map?
- HashTable你了解过吗?
- 如何保证线程安全问题?
- synchronized、lock
- volatile的原子性问题?为什么i++这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因happens before原理
- cas操作
- lock和synchronized的区别?
- 公平锁和非公平锁
- Java读写锁
- 读写锁设计主要解决什么问题?
- 你项目除了写Java代码,还有前端代码,那你知道前端有哪些框架吗?
- MySQL分页查询语句
- MySQL事务特性和隔离级别
事务的并发问题
- 不可重复读会出现在什么场景?
- sql having的使用场景
- 前端浏览器地址的一个http请求到后端整个流程是怎么样?
- http默认端口,https 默认端口
- DNS你知道是干嘛的吗?
- 你们开发用的ide是啥?你能说下idea的常用几个快捷键吧?
- 代码版本管理你们用的是啥?
- git rebase和merge有什么区别?
AOP使用场景
- Authentication权限检查
- Caching缓存
- Context passing内容传递
- Error handling错误处理
- Lazy loading延迟加载
- Debugging调试
- logging, tracing, profiling and monitoring日志记录,跟踪,优化,校准
- Performance optimization性能优化,效率检查
- Persistence持久化
- Resource pooling资源池
- Synchronization同步
- Transactions事务管理
另外Filter的实现和struts2的拦截器的实现都是AOP思想的体现。
余额宝面试场景以及面试答案(文档总结)
Java面试核心知识点
本人也是收藏了一份Java面试核心知识点来应付面试,借着这次机会可以免费送给我的读者朋友们:
目录:
JVM
并发编程
并发编程——基础篇
并发编程——模式篇
并发编程——原理篇
并发编程——应用篇
分享方式:转发+收藏后私信“面试”
MySQL
第1部分:基础篇
第2部分:开发篇
第3部分:优化篇
第4部分:管理维护篇
框架
spring
spring boot
内容太多了,无法再次一一展示
一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!
分享方式:转发+收藏后私信“面试”
面试总结:
面试尽量提前到,能早点面试,面试官也更愿意给你通过(就像中国好声音一样,一开始都是疯狂转身)。面试时调动你的幽默细胞,尽量把面试气氛调得愉快一点,这样面试官能更深的记住你。
说自己优点的时候一定辅以证据, 不然面试官只会当作耳边风
不会的问题不要强答,小心有坑,可以这样说:“不好意思这个问题我不会,但是如果让我来设计我会...... "
面试其实是一个双向选择,面试官在评估你的表现,同时由于面试官也代表公司,他的素质及提的问题也是你应该评估的方面,所以不要紧张。
使用幕布,在每次面试前将自己总结的知识过一遍。我幕布上写了几万字的笔记,每次面试都拿出来看一遍 ,所以面试问到的基础我基本都能应答如流。
上面都是我面试时候经常会用到的一些小技巧, 大家觉得对自己有用的话,可以学以致用,最后就是我备战面试自己整理也收集了很多面试中经常会问到的面试真题
由于文章的篇幅有限,面试真题的答案和解析,我会整理在一起,大家有需要可以转发+收藏后私信“面试”来得到免费获取方式。并附上java面试核心知识点
转发!转发!转发!