这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上我学到了特别多东西,把这次面试分享出来,也是希望可以帮助到更多的人。
小编面试前的复习资料和这些面试题的答案,都会分享一份给大家
一面
==
-
自我介绍
-
项目介绍
-
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高频面试题(附答案)
===============