前言
春招来了,面对自己心心念念的阿里,即使秋招被毒打,也还是忍不住再次投递了简历。其实这一次的面试更加的凶险,感觉全程都很有压力,不像春招的时候感觉还是比较舒服的。
直到前天本来以为自己二面挂了,想确认一下,没想到是意外收获,二面居然过了,最近安排终面和交叉面,讲真的突然就泪崩了。
lz自己也很菜,算法上真的很弱鸡,一直是自己最大的痛点。唉。笔试题第一题ac了0.6,第二天过了测试的例子,但是不知道为啥跑题目的时候说数组越界,0ac。还算有惊无险的拿了offer!
以下是正文,都是回忆起的
另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点这里备注csdn,自行下载!希望大家都能找到心仪的工作!
阿里一面
-
hashmap1.8和以前遇到hash冲突的不同
-
Hashmap如何扩容,如何解决冲突
-
创建线程的方法
-
数据库的隔离级别
-
索引失效情况
-
b+树
-
聚簇索引
-
知道有哪几种Lock
-
synchronized与lock的区别
-
进程与线程
-
多线程的意义
-
多路复用,BIO NIO
-
死锁问题,怎么解决死锁
-
线程池ThreadPoolExecutor的参数
-
链表反转
-
有哪几种设计模式
-
Java或者spring中用到的设计模式
-
单例模式的几种实现
-
内存溢出是什么导致的
-
对象在年轻代到老年代的过程
-
几种垃圾收集器说一下
-
垃圾回收算法
-
Set的底层是什么实现的
-
如果重写了equals和hashcode,两个equals的对象放到set里,最终set的长度是多少。
-
手写链表反转.
阿里二面
-
首先是自我介绍。个人情况,个人的擅长的地方,这里主要考察你的表达能力和语言精简能力。
-
介绍自己的项目经验,项目中做了什么,难点在哪里?主要是想了解参与过技术难度最大的项目难点,技术难点在哪里,你是怎么来解决的?
-
Java的线程池说一下,各个参数的作用,如何进行的?
-
同步与异步区别?
-
同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。
-
异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。
-
反射的作用是什么?
-
反射的主要作用是用来扩展系统和动态调用程序集。
-
所谓扩展系统就是先把系统写好,系统里面定义接口,后面开发的人去写接口的代码。
-
动态调用程序集就是利用反射去调用编译好的dll,当然此时的dll没有被引用到你所建的工程里面。
-
数据仓库,多线程和并发工具等?
-
私有云,docker和k8s等?
-
了解哪些中间件,dubbo,rocketmq,mycat等?
-
dubbo中的rpc如何实现?
-
自己实现rpc应该怎么做?
-
dubbo的服务注册与发现?
-
HashMap的实现原理,HashMap是如何解决hash冲突的问题?
-
Redis讲一下,项目使用场景,以及对应的算法?
-
分布式系统的全局id如何实现?用zookeeper如何实现的呢,机器号+时间戳即可?
-
分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好?
-
kafka了解么,了解哪些消息队列?
-
乐观锁和悲观锁
-
IO和NIO的却别,以及NIO的原理,有了解过mina?
-
JVM内存模型,JVM加载原理,回收算法了解?
-
最后问了些排序算法
阿里三面
-
自我介绍
-
项目的一些介绍
-
jvm说说1.8以后的内存空间是啥样子的,主要是元空间
-
mysql说说聚集索引和非聚集索引,以及优点和缺点,还有创建以后的文件大小
-
redis的五种数据结构,重点是跳跃表,解释完以后,面试官害假设一些尝尽,让我分析跳跃表
-
假设catch,final,catch中有return,那么final还会不会执行
-
springmvc的运行流程
-
假设1亿的11位的手机号,运行空间128M,如果要进行排序,那么要怎么设计
-
技术选型是怎么确定的
-
假如给我更好的人才力量我会怎么确定技术栈
-
分布式锁,让我说说看(凭借自己的理解去说了,顺带把一些集群的异常也说了)
-
分布式锁的具体算法,我把redlock的过程说了一下
-
之后是servlet的具体实现(没回答上来)
-
servlet在tomcat中的生命周期(没回答上来)
-
mysql中涉及的算法(b,b+,最左原则啥的)
-
反问,跟一面一样了
-
面试官建议超级好,也明确突出了我应该向哪方面继续努力啥的,还有不足的地方
-
servelt这个我确实我没见过问的,突然被问傻了,我自己都以为自己凉了,但是问我的内推人确认的时候,发现自己过了,真的我第一次眼眶红了。
四面
基本就是跟聊天差不多了其实
总结
最后我为大家准备了Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。点这里备注csdn,自行下载!
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!