其实两年前校招的时候就往阿里投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里
这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上我学到了特别多东西,把这次面试分享出来,也是希望可以帮助到更多的人。
一面(远程视频面)
- 自我介绍
- 项目介绍
- Redis介绍
- 了解redis源码吗
- 了解redis集群吗
- Hashmap的原理
- hashmap容量为什么是2的幂次
- hashset的源码
- object类你知道的方法
- hashcode和equals
- 你重写过hashcode和equals么,要注意什么
- 假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
- 往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
- Redis的持久化?有哪些方式,原理是什么?
- 讲一下稳定的排序算法和不稳定的排序算法
- 讲一下快速排序的思想
我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以整理成一份文档,用来回答这些面试题。很多问题其实答案很简单,但是背后的思考和逻辑不简单,
二面(现场)
- 自我介绍
- 讲一下数据的acid
- 什么是一致性
- 什么是隔离性
- Mysql的隔离级别
- 每个隔离级别是如何解决
- Mysql要加上nextkey锁,语句该怎么写
- Java的内存模型,垃圾回收
- 线程池的参数
- 每个参数解释一遍
- 然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
- Nio和IO有什么区别
- Nio和aio的区别
- Spring的aop怎么实现
- Spring的aop有哪些实现方式
- 动态代理的实现方式和区别
- Linux了解么
- 怎么查看系统负载
- Cpu load的参数如果为4,描述一下现在系统处于什么情况
- Linux,查找磁盘上最大的文件的命令
- Linux,如何查看系统日志文件
- 手撕算法:leeetcode原题 22,Generate Parentheses,给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。
三面
- 说一说Java内存区域。
- 什么是分布式系统?
- 分布式系统你会考虑哪些方面?
- 为什么说TCP/IP协议是不可靠的?
- OSI有哪七层模型?TCP/IP是哪四层模型。
- 讲一讲TCP协议的三次握手和四次挥手流程。
- 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?
- 为什么TCP TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
- 什么是DoS、DDoS、DRDoS攻击?如何防御?
- 描述一下Java异常层次结构。
- 什么是检查异常,不受检查异常,运行时异常?并分别举例说明。
- finally块一定会执行吗?
- 正常情况下,当在try块或catch块中遇到return语句时,finally语句块在方法返回之前还是之后被执行?
- try、catch、finally语句块的执行顺序。
- Java虚拟机中,数据类型可以分为哪几类?
- 怎么理解栈、堆?堆中存什么?栈中存什么?
- 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
- 在Java中,什么是是栈的起始点,同时也是程序的起始点?
- 为什么不把基本类型放堆中呢?
- Java中的参数传递时传值呢?还是传引用?
- Java中有没有指针的概念?
- Java中,栈的大小通过什么参数来设置?
- 一个空Object对象的占多大空间?
- 对象引用类型分为哪几类?
- 讲一讲垃圾回收算法。
- 如何解决内存碎片的问题?
大家在去面试自己中意的公司之前建议大家先去练练手,我首先去了美团和快手,每次都会带上录音笔,这样可以更快的发现自己的错误并改正,校招看重的是基础,社招也重基础但是更多的是考察项目,上面一些题可能有些很简单,但是某些点面试官会深挖
面试前小编也准备了挺久,前面主要是看电子书,学习笔记视频什么的,后面就是刷面试真题,这里小编可以跟大家分享一波
我的学习笔记(点击此处获取文档完整版)
redis高频面试题(附答案)
redis实战
Mysql高频面试题(附答案)
MySQL性能调优与架构设计解析
基础篇
性能优化篇
架构设计篇
springboot高频面试题(附答案)(点击此处获取文档完整版)
springboot开发指南
MyBatis 高频面试题(附答案)
MyBatis源码分析
并发编程高频面试题(附答案)
迅雷,百度,阿里,网易等大厂笔试真题
虽然只是p6但这是对我这两年努力的肯定,也是圆了自己一个梦想,以后也会继续努力