一面:
-
离职原因;
-
Zookeeper 在项目中的使用及原理;
-
Springcloud 的一些组件介绍;
-
分布式锁:
Redis 实现方式:
redis:为什么使用 setnx,或者说 set 和 setNx 有什么区别;
setNx:系统在 10:05 设置一个值,并给出 5 分钟的过期时间,系统刚刚 set 完之后 redis 集群崩溃,10:11 分系统重启成功,那么 redis 中 set 的值是否还存在?
考察点:
1、redis 的持久化:刚 set 完是否能够被持久化到快照或者 binlog 日志中;
2、假设 redis 被持久化,且系统重启时间超过了 redis 设置的过期时间,那么 key 是否会被清理;
zookeeper 实现方式:
-
多线程的创建方式:
1、继承 thread 类;
2、实现 runnable 接口;
3、实现 callable 接口;
4、线程池方式进行创建及每个参数之间的逻辑关系;
-
服务器 CPU 数量及线程池数量的关系;
1、服务器 cpu 数量(n);
2、是 IO 密集型(2n 个线程)应用还是计算密集型(n+1 个线程)应用;
-
Mysql 的 sql 优化
优化方向:
1、 Mysql 使用过程中走索引的语句:
2、 索引的优化:
3、 亿级的数据必须使用 like 进行查询,如何优化?
-
如何做一个秒杀系统;
1、MQ 做限流:保证只有 1000 个人可以访问系统;
2、使用 redis 做缓存;
3、redis 往 mysql 中进行持久化
-
自己认为自己的技术怎么样?
二面:
-
Mysql 是集群还是单节点;最大的表中数据量大约是多少?3000w-4000w;
-
Mysql 主从配置是 DBA 去做还是自己去做?mysql 主从同步的机制的原理?mysql 主从复制主要有几种模式?
-
Redis 持久化方式:rdb、aof;redis 中哪个版本开始可以对分布式使用;
-
Nginx 的使用场景;
1、请求转发;
2、负载均衡;
-
Spark 主要用来做什么的?
第三面至第八面所有面试题
1.ConcurrentHashMap 底层原理
2.手写一个 LRU
用 LinkedHashMap
3.HashMap 底层数据结构
4.为什么用红黑树不用普通的 AVL 树
5.为什么在 8 的时候链表变成树
6.为什么在 6 的时候从树退回链表
7.线程池 7 个参数,该怎么配置最好
8.说一下 volatile
9.volatile 的可见性和禁止指令重排序怎么实现的
可见性:缓存一致性协议
禁止指令重排序:JMM 模型里有 8 个指令完成数据的读写,通过其中 load 和 store 指令相互组合成的 4 个内存屏障实现禁止指令重排序
10.CAS 是什么
11.PriorityQueue 底层是什么,初始容量是多少,扩容方式呢
最小堆,
11&#xff0c;若原始大小<64&#xff0c;则扩容为原来的 2 倍&#43;2&#xff0c;不然就扩容为原来的 1.5 倍
12.HashMap 的容量为什么要设置为 2 的次幂
13.你知道跳表吗&#xff0c;什么场景会用到
ConcurrentSkipListMap&#xff0c;用在多线程下需要自定义排序顺序时
14.CopyOnWriteArrayList 知道吗&#xff0c;迭代器支持 fail-fast 吗
线程安全 ArrayList&#xff0c;写时复制&#xff0c;迭代器是采用快照风格&#xff0c;不支持 fail-fast
15.innodb 的底层数据结构
16.为什么用 B&#43;树不用 B 树
17.为什么用 B&#43;树不用红黑树
18.coding&#xff1a;无序数组怎么寻找第 k 大的数&#xff0c;写一个二叉树层次遍历
19.不知道大小的数据流取其中 100 个数&#xff0c;怎样的取法能最随机
20.n 个物品每个物品都有一定价值&#xff0c;分给 2 个人&#xff0c;怎么分两个人的价值差最小
21.假设百度每个页面能放 100 个网页&#xff0c;每个页面都有一个评分&#xff0c;怎样快速找到第 8 页的所有网页
第九面
面试他的是一位阿里 P9&#xff0c;这位大佬只问了一道题是&#xff1a;LINUX 的内核是什么&#xff1f;
这大佬最后定级的是阿里 P6&#43;&#xff0c;拿的是 P7 的工资&#xff0c;60W 的年薪&#xff0c;这就是真实的 P6&#43;的年薪&#xff0c;这位大佬 23 岁&#xff0c;注意年龄是 23 岁&#xff01;拿到了阿里 60W 的年薪&#xff0c;他是天津理工大学计算机系年级第一的毕业生&#xff0c;叫黄俊&#xff08;支持背调&#xff09;&#xff01;
这位大佬最近分享了一份 Java 全栈知识点的面试题涉及&#xff1a;Java 基础题、Java 集合、异常 &反射、IO&NIO、多线程、JVM、Linux、Mysql、Spring、Mybatis、Nginx、Redis、Dubbo、SpringBoot、Kafka 、SpringCloud、简历这些模板。
Java 基础题&#xff08;32 道题&#xff09;
17.Locale 类是什么?
18Java 中 final. finally. finalize 的区别与用法
19.hashCode0 和 equals0 的区别
20.深拷贝和浅拷贝的区别是什么?
21Java 中操作字符串都有哪些类?它们之间有什么区别?
22.String str&#61; "a"与 String str&#61;new String("a")- 样吗?
23.抽象类能使用 final 修饰吗?
24.static 关键字 5 连问
25.重载(Overload) 和重写(Override) 的区别。重载的方法能否根据返回类型进行区分?
26Java 的四种引用
27.Java 中 Comparator 与 Comparable 有什么不同?
-
Java 序列化&#xff0c;反序列化?
29.什么情况需要 Java 序列化?
30.序列化的实现?
31.如果某些数据不想序列化&#xff0c;如何处理?
32.Java 泛型和类型擦除?
java 集合&#xff08;19 道题&#xff09;
面试指导脑图
1.Java 集合框架的基础接口有哪些?
2.Collection 和 Collections 有什么区别?
3.List. Set. Map 是否继承自 Collection 接口?
4.Collections.sort 排序内部原理
5.List. Set. Map 之间的区别是什么?
6.HashMap 和 Hashtable 有什么区别?
7.如何决定使用 HashMap 还是 TreeMap?
8.说一下 HashMap 的实现原理?
9.说一下 HashSet 的实现原理?
10.ArrayList 和 LinkedList 的区别是什么?
11.为何 Map 接口不继承 Collection 接口?
12.ArrayList 和 Vector 有何异同点?
13.Array 和 ArrayList 有何区别?
14.在 Queue 中 poll0 和 remove0 有什么区别?
15.LinkedHashMap 有什么特点?
16.HashMap 的底层实现原理? (高频问题)
17.HashMap 并发安全的问题
18JDK1.8 与 JDK1.7 的性能对比
19HashMap 操作注意事项以及优化?
异常 &反射&#xff08;12 道&#xff09;
1.error 和 exception 有什么区别?
2.说出 5 个常见的 RuntimeException?
3.throw 和 throws 的区别?
4.Java 中异常分类
5.如何自定义异常
6Java 中异常处理
7.什么是 Java 反射机制?
8.举例什么地方用到反射机制?
9.java 反射机制的作用
10.Java 反射机制类
11 .反射机制优缺点?
12.利用反射创建对象?
IO&NIO&#xff08;22 道&#xff09;
6.阻塞 10 (blocking 10)
7.非阻塞 I/O (nonblocking 10)
8.I/O 多路复用模型(10 multiplexing)
9.信号驱动 I/O 模型
10.异步/O(asynchronous 10)
11.NIO 与 10 的区别?
12.NIO 和 I0 适用场景
13.NIO 核心组件
14.什么是 channel
15.Java NIO 中最常用的通道实现?
16.Buffer 是什么?
17.核心 Buffer 实现有哪些?
18.buffen 读写数据基本操作
19.Selector 是什么?
20.通道可以监听哪几个事件?
21.为什么要用 Selector?
22 Selector 处理多 Channe|图文说明
多线程&#xff08;100 道题&#xff09;
1.什么是进程?
2.什么是线程?
3.线程的实现方式?
4.Theaed 类中的 start0 和 run0 方法有什么区别?
5.线程 NEW 状态
6.线程 RUNNABLE 状态
7.线程的 RUNNING 状态
8.线程的 BLOCKED 状态
9.线程的 TERMINATED 状态
10.线程状态转化图
........................................ 90.为什么使用线程池
91.线程池工作流程
92.创建线程池参数有哪些&#xff0c;作用?
93.向线程池提交任务
94.关闭线程池
95.线程池如何合理设置
96.Executor
97.Executor 框架的主要成员
98.FixedThreadPool
99.SingleThreadExecutor
100.CachedThreadPool
JVM&#xff08;50 道题&#xff09;
1JDK、JRE、 JVM 关系?
2.启动程序如何查看加载了哪些类&#xff0c;以及加载顺序?
-
class 字节码文件 10 个主要组成部分?
4.画一下 jvm 内存结构图?
5.程序计数器
6Java 虚拟机栈
7.本地方法栈
8Java 堆
9.方法区
10.运行时常量池?
11.什么时候抛出 StackOverflowError?
12.Java7 和 Java8 在内存模型上有什么区别?
13.程序员最关注的两个内存区域?
14.直接内存是什么?
15.除了哪个区域外&#xff0c;虚拟机内存其他运行时区域都会发生 OutOfMemoryError?
16.什么情况下会出现堆内存溢出?
18.空间什么情况下会抛出 OutOfMemoryError?
19.如何实现 StrackOverflowError?
20.如何设置直接内存容量?
21.Java 堆内存组成?
22.Edem : from : to 默认比例是?
23.垃圾标记阶段?
24.引用计数法?
25.根搜索算法?
26JVM 中三种常见的垃圾收集算法?
27 标记-清除算法?
28.复制算法?
29.标记-整理算法?
30.分代收集算法?
31.垃圾收集器?
32.Stop The World? 34.PartNew 收集器?
36.Parallel Scavenge?
37.Parallel Old 收集器?
38.CMS 收集器?
39.CMS 垃圾回收的步骤?
41.CMS 收集器优点?缺点?
42.G1 收集器?
-
G1 收集器是如何改进收集方式的?
43.虚拟机进程状况工具?
44.虚拟机统计信息工具?
45.jstat 工具主要选项?
45.配置信息工具?
46.内存映像工具?
47 虚拟机堆转存储快照分析工具?
48.堆栈跟踪工具?
49.除了命令行&#xff0c;还有什么可视化工具?
50.类加裁过程?
Linux&#xff08;50 道题&#xff09;
...............................
34.源码安装通常的路子?
35.vim 编辑器几种操作模式?基本操作?
36.查看设备还有多少磁盘空间?
37.默认进程信息显示?
38.实时监测进程
39.如何中断一个进程?
40.如何把一个进程放到后台运行?
41 如何停止一个进程?
42.验证网络可连接命令是什么?什么原理?
43.查看某端口是否被占用?
44 如何查找匹配的文件?基于文件属性?
45.如何查看当前主机名?如何修改?如何重启后生效?
46.如何写一条规则&#xff0c; 拒绝某个 ip 访问本机 8080 端口?
47.哪个文件包含了主机名和 ip 的映射关系?
48.如何用 sed 只打印第 5 行?删除第一行? 替换字符串?
49.打印文件第一行到第三行?
50.如何用 awk 查看第 2 行倒数第 3 个字段?
Mysql&#xff08;50 道题&#xff09;
...............................
35.视图的优缺点?
36.主键和唯一索引区别?
37.如何随机获取一条记录?
38.Mysql 中的数值类型?
39.查看当前表有哪些索引?
40.索引不生效的情况?
41.MWC?
42.sq|语句的执行流程?
43.如何获取 select 语句执行计划?
44.explain 列有哪些?含义?
45.MySql 最多创建多少列索引?
46.为什么最好建立一个主键?
47.字段为什么要求建议为 not nul?
48.varchar(10)和 int(10)代表什么含义
49.视图是什么?对比普通表优势?
50.count(* )在不同引擎的实现方式?
需要这套 600&#43;道面试题的朋友麻烦帮忙三连一下这篇文章&#43;关注我&#xff0c;无偿拿走方式在文末&#xff01;&#xff01;
Spring&#xff08;50 道题&#xff09;
Mybatis&#xff08;28 道题&#xff09;
Nginx&#xff08;16 道题&#xff09;
1.什么是 nginx?
2.nginx 主要特征?
3.nginx 常用命令?
4.工作模式及连接数上限?
5.nginx 负载均衡几种算法?
6.nginx 有几种进程模型?
7.如何定义错误提示页面?
8.如何精准匹配路径?
9.路径匹配优先级?
10.如何把请求转发给后端应用服务器?
11.如何根据文件类型设置过期时间?
12.禁止访问某个目录?
13.nginx 负载均衡实现过程?
14.负载均衡配置?
15.设置超时时间?
16.开启压缩功能好处?坏处?
Redis&#xff08;50 道题&#xff09;
34.Redis 的 Java 客户端官方推荐?实际选择? ;
35.Redis 事务?
36.Redis 事务开始到结束的几个阶段?
37.Redis 中 key 的过期操作?
38.Redis 过期键删除策略?
39.Pipeline 是什么?为什么要它?
40.如何获取当前最大内存?如何动态设置?
41.Redis 内存溢出控制?
42.Redis 内存溢出策略?
43.Redis 高可用方案?
44.Redis 集群方案?
45.Redis Cluster 槽范围?
46.Redis 锁实现思路?
47.什么是布隆过滤器?
48.什么是缓存穿透?处理问题?
49.什么是缓存预热?
50.什么是缓存雪崩?处理问题?
Dubbo&#xff08;36 道题&#xff09;
SpringBoot&#xff08;30 道题&#xff09;
Kafka&#xff08;25 道题&#xff09;
SpringCloud&#xff08;35 道题&#xff09;
简历指导
需要这套 600&#43;道面试题的朋友麻烦帮忙三连一下这篇文章&#43;关注我&#xff0c;无偿拿走方式在-----私信【面试】即可&#xff01;&#xff01;----