他的状况介绍,双非一本,19年毕业,计算机专业,只过四级,刚刚一年经验,他把他的支付宝外派面试经验分享出来了,还有他的一些学习资料,也都整理出来发给我了,须要的朋友能够私信【电子书】便可!面试
跟HR沟通的时候我说算了算了,阿里的线上面试仍是有难度的,毕业一年以个人能力怕是外派去不了的。而后她就一直一直要我简历,我一想,反正不花钱,试一试嘛。redis
(当时我还在公司上班,我是骑驴找马型的,也没提早约时间,就跑到楼梯间里去)算法
一、分布式sql
问的仍是挺多的。SpringCloud 的框架都点了,还有阿里最新的一套,Nacos,Sentinel作服务熔断限流降级持久化到数据库,分布式事务(TC二阶段提交)。分布式事务的其余解决方案也没有问。数据库
二、JVM (问的最多)缓存
类加载机制,沙箱安全,这些都问。而后问运行时数据区,我答漏了一个程序计数器。安全
他就接着提问程序计数器,真被本身蠢到了。网络
而后问可达性分析,什么样的对象能够做为GcRoot、加载的时候把这些对象提早找好用的OopMap。数据结构
OOM,StackOverFlow,垃圾收集算法,垃圾收集器(G1),记忆集。多线程
新生代几回对象几回到老年代?(15)
有没有可能直接把刚new出来的对象放在老年代?(第一次遇到这个问题,我就说以为有可能,毕竟有些垃圾回收器会有一个空间分配担保策略。)
后面我去查了一下资料,直接把对象new 在老年代的状况仍是比较多的。我说的那个是其中一种。
三、多线程(问的也超级多)
volatile,CAS,总线嗅探,CPU缓存一致性协议
ReentrantLock、ThreadLocal、Lock和Synchronized的区别,CountDownLatch,ABC三个线程怎么去保证顺序执行?
(多线程我就是那种理论还行,实操渣渣的那种,毕竟业务系统,阿西吧,都是泪啊)
四、数据库优化
刚巧就是前一天写的博客,全问了。真就超级巧。B+树,Hash索引,最左前缀,索引优化分析,一条龙服务,都问了一下。
五、Redis
一来就是分布式锁,不逼逼的那种。而后别的就没问了,可能也是以为我回答的还行就跳过了。
六、基础
没想到我上面的回答的还能够,可是在基础题上却回答个稀烂
HashMap:我直接答错了,他问扩容的触发条件是什么,我说只是一个达到负载就扩容了。他告诉我是:负载和Hash冲突同时发生。这个我真不知道。
final 修饰一个变量String 怎么去改,我说改不了,他说用反射。我也不知道。
final 修饰一个对象Person,能不能去改对象的属性 (问到这里我就猜到 final是仅仅不能改引用的地址,至于引用里面是什么,就能够随便改了)而后他给我讲了一下。
上面两个基础题答的稀烂,另外有几个问了是真不知道:
死锁怎么排查?
JVM调优什么作?
explain + sql 后面的列表都表示什么含义?(我是真的忘了,只记得文件内排序和临时表了)
面试官通常nice,不会的会给你提示(好比我答漏了一个程序计数器),也会给你讲清楚。
电话面试,整个过程接近一个小时。
整个过程40分钟。
场景题偏多。
一、自我介绍,直接技术栈
自我介绍很重要,围绕四个点去说。(自报家门,项目经验,技术栈,求职愿望)
由于你不知道此次面的是技术仍是HR,因此多带一句相似这样的话:
我一直在对照行业内广泛的招聘要求去学习,对分布式,jvm,redis.....比较了解
也一直很想去像大家XXX这样的互联网公司历练本身,但愿能加入大家的项目组。
(也很少,就10几秒钟就说完,不耽误其余的表达)
二、HashMap & ConcurrentHashMap
这能够说是面试必问啦。抓住机会,把知道的多说一点,哈哈哈。
三、数据库链接池
我真就只知道一点点皮毛,链接复用,用durid(阿里的 Druid 数据库链接)却是用的多。可是生成上参数怎么配的不知道,链接数不够了怎么办不知道......
四、Spring和SpringBoot的区别
基础题。也是抓住机会,好不容易一个知道的,赶忙多说一点。
五、输入一个网址以后发生了什么?
对于我这个网络渣渣只知道域名要去DNS解析,找到ip,而后才进到后台端口服务。可是这个过程确定要经历各类代理和负载均衡的调度。以后就是查数据库返回。因此我答个稀烂。
六、数据库查询慢你怎么分析?
常规,把知道的说出来就行。慢查询日志,找到sql,用explain分析,对照索引看看建的怎么样。若是急用的话那就强制走一个,不急的话那就慢慢优化索引结构呗。
七、问了几个索引题。
字符串要写单引号,字符串查询怎么增长查询效率,字符串索引太大了那就截取几个作索引,叫前缀索引。怎么判断一个索引字段选的好很差,看不重复的和总数的比值,越大越好。
八、假如如今系统里面就是要模糊匹配怎么办?
就是要作字符串的搜索,怎么办?我只想到一个ElasticSearch。
而后说了说ES可能不实时,由于要借助其余工具进行同步(logstash),而后问了几个概念。
唉,也忘记掉了,没答好。
九、大数据了解吗?
只看过一点Handoop,把HDFS文件系统作存储,MapReduce作计算说了一下。
后面那些就真不知道了。hasdoop的都快忘没了,不必不懂装懂。
阿里的面试,场景题不少,考察的也是知识的广度,面对问题的解决方案和思路。可是只要问到一些点上面,面试官就知道你是什么水平了。回答的很差也会说不要紧的下一个。面完个人感受就是没了。而后打算好好补充一下基础知识。
直接就说阿里那边的面试经过了。我也知道那确定是有了,外包只要面过了就只但愿你去就行了。
问我指望薪资,我就说16K。很爽快的就赞成了。而后问我有什么想问的。
其实没什么了啊,我以为我这样的状况,毕业一年,16K,差很少可能已经到头了吧。不比如今拿6K多点好么?
当时其实不是很激动,楞了一下。她说:别的不了解一下么?
......
其实你们都懂的,外派大厂,吃住自理,五险一金交的也不是很高,年终可能就看心情给,晋升那就看本身表现了,或者就没有晋升好吧。大多数状况下,外包去大厂那就是就是做为一个跳板吧。环境氛围会驱使本身学更多的东西,那下一次跳槽,就比较理想了吧。
乙方......
实习的时候在银行的时候是乙方,毕业了去烟草行业也是去作烟草的乙方......
那去吗?
大几率是会去。看看我这1年经验的条件,再看看18年后毕业勿扰的岗位要求,去!
这是我本身整理的一些技术板块在面试中常问的面试题,如今把本身的经验分享给你们,须要的可点击这份《Java面试BAT通关手册》便可!
本身这几个月面了好多家吧,整理下来最容易问的知识点:
1、Java基础
面向对象,final,HashCode,HashMap,ConcurrentHashMap,集合框架。
2、Spring社区
IOC思想,建立过程,Bean生命周期,三级缓存搞定循环依赖,AOP却是问的少
SpringMVC流程(经典面试题了)
3、分布式微服务
路由,网关,调用,负载,配置,熔断限流降级
阿里最新的组件也常问,Nacos,Sentinel,Seata
(Seata是一种二阶段提交解分布式事务的办法,还有不少,经常使用的还有补偿,尽最大努力通知)
那么分布式锁也要准备一下了(Redis,Zookeeper)
雪花算法 分布式惟一ID 生成器
4、Redis
我以为它就是一个万金油,使用场景也是常问的。
缓存,分布式锁,缓存雪崩击穿穿透这三兄弟,以及对于的解决办法,数据类型,持久化策略,高可用策略,主从,哨兵
再深刻的话就把数据结构看了
5、数据库
Mysql高可用,索引,B+树,哈希索引,汇集索引,联合索引,前缀索引,三星索引,索引失效
数据表水平垂直拆分,拆分以后怎么作查询,慢查询分析,索引失效的状况,回表是什么意思,随机IO和顺序IO,explain的输出列是什么意思
6、多线程
volatile问的最多,synchronized反而不是不少
AQS和聚合了这个同步器的锁。
公平锁,非公平锁,偏向锁,分段锁,可重入锁......
7、JVM
推荐看两遍《深刻理解Java虚拟机》周志明的最新版,看完就基本能回答面试的提问了
8、网络
我这个计算机网络渣渣只能提及码 三次握手和四次挥手要知道吧
还有就是一些场景题,多去看b站上面的面经,看看别人是怎么问这些问题的,该怎么回答。
数据结构和算法,多练。
贪多嚼不烂,慢慢积累消化。