他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗

他的情况介绍,双非一本,19年毕业,计算机专业,只过四级,刚刚一年经验,他把他的支付宝外派面试经验分享出来了,还有他的一些学习资料,也都整理出来发给我了。
一面是软通技术面
跟HR沟通的时候我说算了算了,阿里的线上面试还是有难度的,毕业一年以我的能力怕是外派去不了的。然后她就一直一直要我简历,我一想,反正不花钱,试一试嘛。

(当时我还在公司上班,我是骑驴找马型的,也没提前约时间,就跑到楼梯间里去)

1、分布式

问的还是挺多的。SpringCloud 的框架都点了,还有阿里最新的一套,Nacos,Sentinel做服务熔断限流降级持久化到数据库,分布式事务(TC二阶段提交)。分布式事务的其他解决方案也没有问。

2、JVM (问的最多)

类加载机制,沙箱安全,这些都问。然后问运行时数据区,我答漏了一个程序计数器。

他就接着提问程序计数器,真被自己蠢到了。

然后问可达性分析,什么样的对象可以作为GcRoot、加载的时候把这些对象提前找好用的OopMap。

OOM,StackOverFlow,垃圾收集算法,垃圾收集器(G1),记忆集。

新生代几次对象几次到老年代?(15)

有没有可能直接把刚new出来的对象放在老年代?(第一次遇到这个问题,我就说觉得有可能,毕竟有些垃圾回收器会有一个空间分配担保策略。)

后面我去查了一下资料,直接把对象new 在老年代的情况还是比较多的。我说的那个是其中一种。

3、多线程(问的也超级多)

volatile,CAS,总线嗅探,CPU缓存一致性协议

ReentrantLock、ThreadLocal、Lock和Synchronized的区别,CountDownLatch,ABC三个线程怎么去保证顺序执行?

(多线程我就是那种理论还行,实操渣渣的那种,毕竟业务系统,阿西吧,都是泪啊)

4、数据库优化

刚巧就是前一天写的博客,全问了。真就超级巧。B+树,Hash索引,最左前缀,索引优化分析,一条龙服务,都问了一下。

5、Redis

一来就是分布式锁,不逼逼的那种。然后别的就没问了,可能也是觉得我回答的还行就跳过了。

6、基础

没想到我上面的回答的还可以,但是在基础题上却回答个稀烂

HashMap:我直接答错了,他问扩容的触发条件是什么,我说只是一个达到负载就扩容了。他告诉我是:负载和Hash冲突同时发生。这个我真不知道。

final 修饰一个变量String 怎么去改,我说改不了,他说用反射。我也不知道。

final 修饰一个对象Person,能不能去改对象的属性 (问到这里我就猜到 final是仅仅不能改引用的地址,至于引用里面是什么,就可以随便改了)然后他给我讲了一下。

上面两个基础题答的稀烂,另外有几个问了是真不知道:

死锁怎么排查?

JVM调优什么做?

explain + sql 后面的列表都表示什么含义?(我是真的忘了,只记得文件内排序和临时表了)

面试官一般nice,不会的会给你提示(比如我答漏了一个程序计数器),也会给你讲清楚。

电话面试,整个过程接近一个小时。

二面阿里技术官面
整个过程40分钟。

场景题偏多。

1、自我介绍,直接技术栈

自我介绍很重要,围绕四个点去说。(自报家门,项目经验,技术栈,求职愿望)

因为你不知道这次面的是技术还是HR,所以多带一句类似这样的话:

我一直在对照行业内普遍的招聘要求去学习,对分布式,jvm,redis…比较了解

也一直很想去像你们XXX这样的互联网公司历练自己,希望能加入你们的项目组。

(也不多,就10几秒钟就说完,不耽误其他的表达)

2、HashMap & ConcurrentHashMap

这可以说是面试必问啦。抓住机会,把知道的多说一点,哈哈哈。

3、数据库连接池

我真就只知道一点点皮毛,连接复用,用durid(阿里的 Druid 数据库连接)倒是用的多。但是生成上参数怎么配的不知道,连接数不够了怎么办不知道…

4、Spring和SpringBoot的区别

基础题。也是抓住机会,好不容易一个知道的,赶紧多说一点。

5、输入一个网址之后发生了什么?

对于我这个网络渣渣只知道域名要去DNS解析,找到ip,然后才进到后台端口服务。但是这个过程肯定要经历各种代理和负载均衡的调度。之后就是查数据库返回。所以我答个稀烂。

6、数据库查询慢你怎么分析?

常规,把知道的说出来就行。慢查询日志,找到sql,用explain分析,对照索引看看建的怎么样。如果急用的话那就强制走一个,不急的话那就慢慢优化索引结构呗。

7、问了几个索引题。

字符串要写单引号,字符串查询怎么增加查询效率,字符串索引太大了那就截取几个做索引,叫前缀索引。怎么判断一个索引字段选的好不好,看不重复的和总数的比值,越大越好。

8、假如现在系统里面就是要模糊匹配怎么办?

就是要做字符串的搜索,怎么办?我只想到一个ElasticSearch。

然后说了说ES可能不实时,因为要借助其他工具进行同步(logstash),然后问了几个概念。

唉,也忘记掉了,没答好。

9、大数据了解吗?
只看过一点Handoop,把HDFS文件系统做存储,MapReduce做计算说了一下。

后面那些就真不知道了。hasdoop的都快忘没了,没必要不懂装懂。
阿里的面试,场景题很多,考察的也是知识的广度,面对问题的解决方案和思路。但是只要问到一些点上面,面试官就知道你是什么水平了。回答的不好也会说没关系的下一个。面完我的感觉就是没了。然后打算好好补充一下基础知识。

HR面
直接就说阿里那边的面试通过了。我也知道那肯定是有了,外包只要面过了就只希望你去就好了。

问我期望薪资,我就说16K。很爽快的就同意了。然后问我有什么想问的。

其实没什么了啊,我觉得我这样的情况,毕业一年,16K,差不多可能已经到头了吧。不比现在拿6K多点好么?

当时其实不是很激动,楞了一下。她说:别的不了解一下么?

其实大家都懂的,外派大厂,吃住自理,五险一金交的也不是很高,年终可能就看心情给,晋升那就看自己表现了,或者就没有晋升好吧。大多数情况下,外包去大厂那就是就是作为一个跳板吧。环境氛围会驱使自己学更多的东西,那下一次跳槽,就比较理想了吧。

乙方…
实习的时候在银行的时候是乙方,毕业了去烟草行业也是去做烟草的乙方…
那去吗?
大概率是会去。看看我这1年经验的条件,再看看18年后毕业勿扰的岗位要求,去!

面试总结
这是我自己整理的一些技术板块在面试中常问的面试题,现在把自己的经验分享给大家,需要的可以点击这份《Java面试BAT通关手册》或者扫描二维码领取
他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第1张图片

自己这几个月面了好多家吧,整理下来最容易问的知识点:

一、Java基础

面向对象,final,HashCode,HashMap,ConcurrentHashMap,集合框架。

他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第2张图片

二、Spring社区

IOC思想,创建过程,Bean生命周期,三级缓存搞定循环依赖,AOP倒是问的少
SpringMVC流程(经典面试题了)

他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第3张图片

三、分布式微服务
路由,网关,调用,负载,配置,熔断限流降级
阿里最新的组件也常问,Nacos,Sentinel,Seata
(Seata是一种二阶段提交解分布式事务的办法,还有很多,常用的还有补偿,尽最大努力通知)
那么分布式锁也要准备一下了(Redis,Zookeeper)
雪花算法 分布式唯一ID 生成器
他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第4张图片

四、Redis

我觉得它就是一个万金油,使用场景也是常问的。

缓存,分布式锁,缓存雪崩击穿穿透这三兄弟,以及对于的解决办法,数据类型,持久化策略,高可用策略,主从,哨兵

再深入的话就把数据结构看了

五、数据库

Mysql高可用,索引,B+树,哈希索引,聚集索引,联合索引,前缀索引,三星索引,索引失效

数据表水平垂直拆分,拆分之后怎么做查询,慢查询分析,索引失效的情况,回表是什么意思,随机IO和顺序IO,explain的输出列是什么意思
他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第5张图片

六、多线程
volatile问的最多,synchronized反而不是很多
AQS和聚合了这个同步器的锁。
公平锁,非公平锁,偏向锁,分段锁,可重入锁…

七、JVM
推荐看两遍《深入理解Java虚拟机》周志明的最新版,看完就基本能回答面试的提问了
他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第6张图片

八、网络
我这个计算机网络渣渣只能说起码 三次握手和四次挥手要知道吧
还有就是一些场景题,多去看b站上面的面经,看看别人是怎么问这些问题的,该怎么回答。

数据结构和算法,多练。
贪多嚼不烂,慢慢积累消化。
他仅仅是个Java1年经验,面试16K的外派支付宝,你们说香吗_第7张图片

你可能感兴趣的:(Java,分布式,java,面试,编程语言,spring)