复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
-
跳表的原理和插入过程
-
场景题:有很多数据,各自具有依赖关系,采用什么数据结构存储
计网:
- 三次握手和四次挥手的过程
设计模式:
- 工厂模式的设计思路,优缺点
JVM:
-
四种引用
-
场景题:如果是一个服务器用于存储数据,然后里面有一些数据是热点数组,需要缓存,用哪种引用
Java:
-
面向对象和面向过程的区别
-
接口和抽象类的区别
-
多态的分类
-
异常体系
-
finally 的作用
-
如果在 finally 块中有 return 语句,发生异常会执行吗?不发生呢?
-
ArrayList 的扩容过程
-
非线程安全的集合怎么改为线程安全
算法:
- 分析最差最好时间复杂度
10.8 17:30 二面
=============
实习:
-
实习做了什么
-
介绍实习的项目
项目:
-
介绍项目
-
怎么实现 IOC 的
-
怎么管理 Bean 的
-
一个请求进入,是怎么运作的
-
Shiro 怎么集成的
-
怎么解决循环依赖的情况
-
做了这个
项目的收获
Redis:
-
Redis 的数据结构有哪些?使用场景?(尬住了,只知道 sorted set 的场景)
-
场景题:记录活跃用户
Spring Cloud:
- 核心组件有哪些以及对应的功能
Netty:
- Netty 的线程模型
算法:
在上面题目基础上,修改条件(奇数最大,偶数最小)(也是尴尬现场,定义了 flag 变量,忘记更新了)
public List largestValues(TreeNode root){
List res = new ArrayList<>();
Queue queue = new LinkedList<>();
if (root != null){
queue.offer(root);
}
boolean flag = false;
while (!queue.isEmpty()){
int cur = 0;
if (flag){
int cur_size = queue.size();
cur = Integer.MIN_VALUE;
for (int i = 0;i < cur_size;i++){
TreeNode x = queue.poll();
cur = Math.max(cur,x.value);
if (x.left != null){
queue.offer(x.left);
}
if (x.right!= null){
queue.offer(x.right);
}
}
}else {
int cur_size = queue.size();
cur = Integer.MAX_VALUE;
for (int i = 0;i < cur_size;i++){
TreeNode x = queue.poll();
cur = Math.min(cur,x.value);
if (x.left != null){
queue.offer(x.left);
}
if (x.right!= null){
queue.offer(x.right);
}
}
}
res.add(cur);
flag = !flag;
}
return res;
}
10.20 17:30 三面
==============
实习:
-
介绍实习的项目
-
实习做了什么
-
实习遇到的困难,怎么解决的
-
实习的收获
算法:
-
动态规划
-
二分递归
在上面题目基础上,修改条件(输出子数组,不单单是最大值)
public static void main(String[] args) {
int[] nums = {0,2,3,4,-2,-3,9,11};
System.out.println(maxSubArr(nums));
}
public static List maxSubArr(int[] nums){
if (nums == null || nums.length == 0){
总结
其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。
这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来
目录:
部分内容截图:
这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来
目录:
[外链图片转存中…(img-m1xB9LYT-1714962852040)]
部分内容截图:
[外链图片转存中…(img-FPukV8sW-1714962852040)]
[外链图片转存中…(img-B8NExCrQ-1714962852040)]