首先香格里拉
1.Lock和synchronized区别
2.用lock的好处是什么,怎么变成公平锁。
3.说一下volatile。
4.负载因子是什么,扩容的阀值是什么?
5.乐观锁和悲观锁什么场景下使用,都是怎么实现的?
6.怎么看sql用到了索引。
7.开发分业务性和非业务性,非业务性中经常碰到容量,并发,安全,性能等等,你是怎么解决的。
8.说一下学习jvm后对自己写代码上有什么提高和帮助。
9.说一个你认为你因为钻研技术而成功解决的棘手问题。
10.你期望的team和platform是什么样的。
11.抗压能力怎么样?
12.你认为什么场景下使用线程池。
13.mysql复制原理。
14.简单说一下创建索引。
15.引申一下like什么时候能用到索引。
16.利用索引怎么对sql进行优化。
17.说一下你认为什么是高效,可读性强的代码和这方面对书。
18.你用对jdk什么版本,用过stream吗?
19.怎么保证你对消息发送是一致性的。
20.mysql配置主从优点是什么。
总结:
1.除互联网公司或面高级以上的开发,JVM相关的东西不需要了解很深,笔者把复习的重点就放在这里了,是走错了方向,我曾经多次引导每位面试官,考我JVM原理,随便考,他们都回避这个问题,不是说jvm不重要,而是笔者没有能力去面试高级开发。
2.互联网公司面试一定会考你大量数据的处理,数据库及sql的优化以及高并发,安全相关的问题。
3.基本上大公司包括很多互联网大公司用SpringCloud的并不多,他们基本上在5,6年前或者国内刚刚兴起微服务的时候就开始做,所以都用的Dubbo,能用到springcloud项目的都是近两年的新项目。
4.简历上写什么精通就考你哪个,所以精通不要乱写。
5.简历上最能突出你的优势就是类似于你凭自己的经验解决了很棘手的问题,或让系统性能有很大的提成,比如你用什么方式让你们系统从TPS 50上升到1000甚至更高。
6.有博客和自己开源项目会大大加分。
7.不要跟面试官说我很会用什么很多开源框架、中间件什么的,他们其实最关注的是你懂,懂和会用完全两码事。
8.要从话语里突出和说明你学习能力强,善于知识总结和分享。
9.大公司对务实很重要,对精通很重要,好比中间件,哪怕你只会rabbitmq,但是你能说做到完全精通,比你会所有中间件都强的多,简历里不要写很多技术,拿出几个拿手的,上面写上精通,并处理什么什么问题更好。
10.能有带队,独立解决团队所有问题,在team中属于leader的角色一定要写,会加分。
11.我认为除应届生,java基础并不用过于放太多精力,主要了解一些关键性的底层原理就行,例如cas、volatile、hashmap等。
12.有大型互联网方面的经验要有很大的优势,做一年互联网项目比你做三四年传统项目学到的东西要多得多,并且每位面试官都会跟你提到,传统行业和互联网行业区别很大。
13.再次强调一点,知识储备固然重要,但是精通才是更重要的,东西不再多在于精。相信看我博客的大多都是3年及3年以上的兄台,根据发展方向每个人擅长的领域会不同,比如有些人就擅长数据库性能调优,有些人最擅长非业务性的开发,比如安全,并发处理,容量等,所以,把自己擅长的东西拿出来。
14.还有跟人事聊天警惕性要增加,他们会面带微笑,给你造成轻松的气氛,但是句句话都有坑,可以说杀人于无形,说不定哪句话你就说错了,所以一定要过滤一遍大脑想想他为什么这么问,你该怎么回答。
15.没有一个人是完全做技术的,技术是为业务服务的,真正的能力体现在分析不同的业务用适合他的技术去处理。
16.奉劝许多在选择公司方面纠结的人,一定要选择互联网方面的公司,对做技术而言传统的公司是一个敬老院,如果你年龄到一定程度了,对事业没追求了这是一个不错的选择,否则还有一丝拼搏的精神那么就不要在该奋斗的年纪选择安逸。
去哪网
1.自我介绍,项目介绍。
2.mysql数据库调优。
3.sql优化。
4.like能用索引吗?
5.java对象四种引用。
6.GC原理。
7.jvm内存结构。
8.说一下你学过jvm 在书写代码上对你有什么帮助和提高。
9.千万数据量的查询你会怎么做?
10.HashMap在jdk1.7和1.8的区别,为什么引入这个概念?hash碰撞怎么解决,为什么1.8要比1.7更好,好在哪?
11.关于你的项目,如果并发很大,你会怎么改造。
12.方法区里什么样的对象有可能被回收。
13.线上cpu飙升100%你怎么处理。
14.频繁FullGC怎么处理。
15.线程池创建有几种,为什么创建定长的线程池个数最好是5,10,15这样的数字。
16.linux命令。
17.伊甸区和幸存区可动态变化吗?
18.redis和memcached区别。
19.说几个jdk命令,jmap是什么意思。
20.如果并发很大,你对数据的正确性怎么保证。
总结:
1.除互联网公司或面高级以上的开发,JVM相关的东西不需要了解很深,笔者把复习的重点就放在这里了,是走错了方向,我曾经多次引导每位面试官,考我JVM原理,随便考,他们都回避这个问题,不是说jvm不重要,而是笔者没有能力去面试高级开发。
2.互联网公司面试一定会考你大量数据的处理,数据库及sql的优化以及高并发,安全相关的问题。
3.基本上大公司包括很多互联网大公司用SpringCloud的并不多,他们基本上在5,6年前或者国内刚刚兴起微服务的时候就开始做,所以都用的Dubbo,能用到springcloud项目的都是近两年的新项目。
4.简历上写什么精通就考你哪个,所以精通不要乱写。
5.简历上最能突出你的优势就是类似于你凭自己的经验解决了很棘手的问题,或让系统性能有很大的提成,比如你用什么方式让你们系统从TPS 50上升到1000甚至更高。
6.有博客和自己开源项目会大大加分。
7.不要跟面试官说我很会用什么很多开源框架、中间件什么的,他们其实最关注的是你懂,懂和会用完全两码事。
8.要从话语里突出和说明你学习能力强,善于知识总结和分享。
9.大公司对务实很重要,对精通很重要,好比中间件,哪怕你只会rabbitmq,但是你能说做到完全精通,比你会所有中间件都强的多,简历里不要写很多技术,拿出几个拿手的,上面写上精通,并处理什么什么问题更好。
10.能有带队,独立解决团队所有问题,在team中属于leader的角色一定要写,会加分。
11.我认为除应届生,java基础并不用过于放太多精力,主要了解一些关键性的底层原理就行,例如cas、volatile、hashmap等。
12.有大型互联网方面的经验要有很大的优势,做一年互联网项目比你做三四年传统项目学到的东西要多得多,并且每位面试官都会跟你提到,传统行业和互联网行业区别很大。
13.再次强调一点,知识储备固然重要,但是精通才是更重要的,东西不再多在于精。相信看我博客的大多都是3年及3年以上的兄台,根据发展方向每个人擅长的领域会不同,比如有些人就擅长数据库性能调优,有些人最擅长非业务性的开发,比如安全,并发处理,容量等,所以,把自己擅长的东西拿出来。
14.还有跟人事聊天警惕性要增加,他们会面带微笑,给你造成轻松的气氛,但是句句话都有坑,可以说杀人于无形,说不定哪句话你就说错了,所以一定要过滤一遍大脑想想他为什么这么问,你该怎么回答。
15.没有一个人是完全做技术的,技术是为业务服务的,真正的能力体现在分析不同的业务用适合他的技术去处理。
16.奉劝许多在选择公司方面纠结的人,一定要选择互联网方面的公司,对做技术而言传统的公司是一个敬老院,如果你年龄到一定程度了,对事业没追求了这是一个不错的选择,否则还有一丝拼搏的精神那么就不要在该奋斗的年纪选择安逸。
再送大家一套思维导图:
架构师筑基
开源框架
微服务
高性能架构
团队开发
最后当然是B2C,没有实战,还算什么架构师
现在加群即可获取更加详细的Java架构脑图,还有Java工程化、高性能及分布式、高性能、高架构、zookeeper、性能调优、Spring、MyBatis、Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及相关视频资料,群号:923116658
点击链接加入群聊【Java架构解析】:https://jq.qq.com/?_wv=1027&k=5e1QsXb