面试题总结
文章平均质量分 95
夏日 の blog
去更远的地方,见更亮的光。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式常见面试题总结
在分库之后,数据遍布在不同服务器上的数据库,数据库的自增主键已经没办法满足生成的主键唯一了。就要用到分布式 ID 保证全局唯一性。UUID 是 Universally Unique Identifier(通用唯一标识符) 的缩写。UUID 包含 32 个 16 进制数字(8-4-4-4-12)。//输出示例:cb4a9ede-fa5e-4585-b9bb-d60bce986eaa虽然,UUID 可以做到全局唯一性,但是,我们一般很少会使用它。原创 2024-10-10 17:28:14 · 2570 阅读 · 0 评论 -
消息队列常见面试题总结
镜像队列结构是一主多从,所有操作都是主节点完成,然后同步给镜像节点,如果主节点宕机后,镜像节点会替代成新的主节点,不过在主从同步完成前,主节点如果宕机,可能出现数据丢失。Kafka 使用了操作系统的内存映射文件技术(mmap),将磁盘文件直接映射到内存中,这样在读取消息时,不需要频繁从磁盘读取数据,提升了性能。,消费者监听死信队列中的消息,一旦收到消息,执行相应的业务逻辑,比如取消订单操作。消费者监听目标队列中的消息,一旦收到消息,执行相应的业务逻辑,比如取消订单操作。中,并设定消息的过期时间。原创 2024-09-26 18:24:39 · 1146 阅读 · 0 评论 -
微服务常见面试题总结
在微服务中,假如一个或者多个服务出现故障,如果这时候,依赖的服务还在不断发起请求,或者重试,那么这些请求的压力会不断在下游堆积,导致下游服务的负载急剧增加。不断累计之下,可能会导致故障的进一步加剧,可能会导致整个系统崩溃,这就叫服务雪崩。服务高可用部署:确保各个服务都具备高可用性,通过冗余部署、故障转移等方式来减少单点故障的影响。限流和熔断:对服务之间的请求进行限流和熔断,以防止过多的请求涌入导致后端服务不可用。原创 2024-09-22 14:24:24 · 2346 阅读 · 0 评论 -
Spring和MyBatis常见面试题总结
Before(前置通知):目标对象的方法调用之前触发After(后置通知):目标对象的方法调用之后触发(返回通知):目标对象的方法调用完成,在返回结果值之后触发(异常通知):目标对象的方法运行中抛出 / 触发异常后触发。AfterReturning 和 AfterThrowing 两者互斥。如果方法调用成功无异常,则会有返回值;如果方法抛出了异常,则不会有返回值。Around(环绕通知):编程式控制目标对象的方法调用。原创 2024-09-10 16:19:49 · 2872 阅读 · 0 评论 -
经典排序算法总结
内部排序:数据记录在内存中进行排序。外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。插入排序希尔排序选择排序冒泡排序归并排序快速排序堆排序基数排序等,本文只讲解内部排序算法。用一张图概括:稳定性助记:希尔 快速 选择 堆-不稳,猫插龟 鸡捅基-很稳图片名词解释:n:数据规模k:“桶” 的个数In-place:占用常数内存,不占用额外内存Out-place:占用额外内存冒泡排序:1号与2号比较然后2号与3号比较…,可确定最大的元素放在最后。原创 2024-09-07 22:44:28 · 1260 阅读 · 0 评论 -
Linux 基础知识总结
分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。示例:修改/test 下的 aaa.txt 的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限。:可以列出打开的文件和关联的进程,网络端口也被视为文件,所以可以用来查看占用端口的进程。原创 2024-09-04 11:01:02 · 1693 阅读 · 0 评论 -
LeetCode HOT 100刷题总结
文章目录1 哈希1.1 1-1.两数之和🟢1.2 2-49.字母异位词分组🟡1.3 3-128.最长连续序列🟡2 双指针2.1 4-283.移动零🟢2.2 6-15.三数之和🟡2.3 7-11.盛最多水的容器🟡2.4 8-42.接雨水🔴3 滑动窗口3.1 9-3.无重复字符的最长子串🟡3.2 10-438.找到字符串中所有字母异位词🟡4 子串4.1 11-560.和为 K 的子数组🟡5 矩阵5.1 73.矩阵置零🟡6 链表6.1 23-160.相交链表🟢6.2 24-206.反转链表🟢🔥6.3 92.反转链原创 2024-05-09 13:33:42 · 1741 阅读 · 0 评论 -
Redis常见面试题总结
listpack 中每个节点不再像压缩列表一样包含前一个节点的长度,但还是用一块连续的内存空间来紧凑地保存数据,并且为了节省内存的开销,listpack 节点会采用不同的编码方式保存不同大小的数据。当我们向 listpack 加入一个新元素的时候,不会影响其他节点的长度字段的变化,从而避免了压缩列表的连锁更新问题。避免额外的检查开销,AOF 记录日志不会对命令进行语法检查;在命令执行完之后再记录,不会阻塞当前命令的执行。这样也带来了风险如果刚执行完命令 Redis 就宕机会导致对应的修改丢失;原创 2024-08-31 10:27:44 · 2804 阅读 · 0 评论 -
MySQL常见面试题总结
ER 图全称是 Entity Relationship Diagram(实体联系图),提供了表示实体类型、属性和联系的方法。实体:通常是现实世界的业务对象,当然使用一些逻辑对象也可以,实体使用矩形框表示。属性:即某个实体拥有的属性,可以理解为字段,属性使用椭圆形表示。联系:即实体与实体之间的关系,用菱形表示,这个关系不仅有业务关联关系,还能通过数字表示实体之间的数量对照关系。下图是一个学生选课的 ER 图,每个学生可以选若干门课程,同一门课程也可以被若干人选择,所以它们之间的关系是多对多(M: N)原创 2024-08-28 12:19:08 · 1551 阅读 · 0 评论 -
操作系统常见面试题总结
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统的内核(Kernel)属于操作系统层面,而 CPU 属于硬件。CPU 主要提供运算,处理各种指令的能力。内核(Kernel)主要负责系统管理比如内存管理,它屏蔽了对硬件的操作。下图清晰说明了应用程序、内核、CPU 这三者的关系。用户态(User Mode): 用户态运行的进程可以直接读取用户程序的数据,拥有较低的权限。原创 2024-08-27 10:50:28 · 1607 阅读 · 0 评论 -
计算机网络常见面试题总结
半连接队列(也称 SYN Queue):当服务端收到客户端的 SYN 请求时,此时双方还没有完全建立连接,它会把半连接状态的连接放在半连接队列。全连接队列(也称 Accept Queue):当服务端收到客户端的 ACK 响应时,意味着三次握手成功完成,服务端会将该连接从半连接队列移动到全连接队列。如果未收到客户端的 ACK 响应,会进行重传,重传的等待时间通常是指数增长的。如果重传次数超过系统规定的最大重传次数,系统将从半连接队列中删除该连接信息。原创 2024-08-24 10:53:25 · 1812 阅读 · 0 评论 -
Java基础常见面试题总结
JVM 可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。可变长参数就是允许在调用方法时传入不定长度的参数。比如下面的这个method1方法就可以接受 0 个或者多个参数。原创 2024-08-14 16:24:37 · 1185 阅读 · 0 评论 -
Java集合常见面试题总结
Java 集合,也叫作容器,主要是由两大接口派生而来:一个是Collection接口,主要用于存放单一元素;另一个是Map接口,主要用于存放键值对。对于CollectionListSet和Queue。List:存储的元素是有序的、可重复的。常用的实现List的类有LinkedList,ArrayListSet:存储的元素不可重复的。常用的实现有HashSet,LinkedHashSet和TreeSet。Queue:按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。原创 2024-08-17 15:11:06 · 1043 阅读 · 0 评论 -
Java并发常见面试题总结
线程在执行过程中会有自己的运行条件和状态(也称上下文),比如上文所说到过的程序计数器,栈信息等。当出现如下情况的时候,线程会从占用 CPU 状态中退出。主动让出 CPU,比如调用了sleep()wait()等。时间片用完,因为操作系统要防止一个线程或者进程长时间占用 CPU 导致其他线程或者进程饿死。调用了阻塞类型的系统中断,比如请求 IO,线程被阻塞。被终止或结束运行这其中前三种都会发生线程切换,线程切换意味着需要保存当前线程的上下文,留待线程下次占用 CPU 的时候恢复现场。原创 2024-08-20 20:48:30 · 1022 阅读 · 0 评论 -
JVM常见面试题总结
Java 中的堆属于线程共享的区域,主要用来保存对象实例,数组。新生代(Young Generation):新生代分为Eden 区和Survivor 区(8:1:1在 Survivor 区中,分为两个大小相等的区域,称为 S0 和 S1。大多数新创建的对象首先存放在 Eden 区。当 Eden 区满时,会触发一次 Minor GC(新生代垃圾回收)。在每次 Minor GC 后,存活下来的对象会被移动到其中一个 Survivor 区。原创 2024-08-22 10:19:41 · 915 阅读 · 0 评论
分享