面试突击问题
1.缓存击穿问题怎么解决
- 设置缓存永远不过期
- 分布式锁:MySQL、Redis、Zookeeper
2.java线程有哪些状态,以及状态之间怎么进行切换
3.sleep函数和wait函数的区别
4.String是基本数据类型吗,它具有什么样的特点
- 不是基本数据类型
- 特点:字符串不可变,他们的值在创建后不能被更改。虽然String的值是不可变的,但是他们可以被共享。字符串效果上相当于字符数组(char[] jdk8),但是底层原理是字节数组(byte[]jdk9)。
5.String为什么设计成不可不变的
6.MySQL执行一个SQL语句的具体过程
7.MySQL事务的特性以及实现原理
特性以及原理 特性以及原理 河北王校长,俯瞰MySQL时间线
8.MySQL的锁
9.RabbitMQ、Kafka、RocketMQ对比
10.介绍一下两级缓存
11.Redis为什么可以作为分布式锁
12.流量削峰
13.介绍一下java的垃圾回收
14.说一下一个对象从创建到被回收的过程
15.进程的通信方式以及特点
16.拥塞控制的过程以及作用
17.介绍一下排序算法一级实现思路(快速排序的优缺点以及改进,稳定性,时间复杂度,空间复杂度,包括并查集、克鲁斯卡尔、普里姆、狄杰斯特拉、佛洛依德、拓扑排序等)
18.select、poll、epoll
19.get和post方法的区别以及使用场景
20.从输入一个URL到返回结果
21.HTTP缓存
22.HTTP状态码以及断点续传
23.进程线程
24.Linux惊群效应
25.跳表和红黑树区别,redis为什么选择跳表而不是红黑树
26.MySQl索引类型,以及B+树索引
27.TCP保证传输成功的机制
28.路由中存储url的数据结构
29.linux进行用户态与内核态切换,上下文保存在哪里
30.docker指令有哪些
31.三次握手四次挥手
32.操作系统中断和并发
33.虚拟内存
34.设计模式
35.java的中断,一些系统调用是否可以中断
36.线程池如何取消任务
37.HTTPS
38.tcp长连接和短连接对应的场景
39.udp如何做到可靠传输
- 最简单的方式是在应用层模仿传输层TCP的可靠性传输。下面不考虑拥塞处理, 可靠UDP的简单设计。1、添加seqlack机制,确保数据发送到对端2、添加发送和接收缓冲区,主要是用户超时重传3、添加超时重传机制。