
Java面试知识点
文章平均质量分 73
Java面试知识点重点原理分析
聪明不喝牛奶
这个作者很懒,什么都没留下…
展开
-
【数据库】ACID底层实现原理
前言我们在学MySQL的时候事务是必须要知道的部分,也就是原子性(Atomic)、一致性(Consistency)、隔离性(isolation)和持久性(Persistence)。知道他的概念其实是远远不够的,现在越来越卷,那么就必须知道的他的原理什么?怎么是实现的。原理原子性:概念是指事物是一个不可分割的工作单位,事物中的操作要么都发生,要么都不发生。最经典的就是转账案例,我们把转入和转出当做一个事物的话,就需要在SQL中显式指定开启事务。实现原理:undo logundo log 是 回滚原创 2022-04-23 15:58:33 · 2263 阅读 · 0 评论 -
【RabbitMQ】如何保证消息队列的可靠性传输
RabbitMQ如何保证消息的可靠性传输!主要在生产者、MQ、消费者这三者进行下功夫即可解决!如本文所示:原创 2022-04-12 21:19:49 · 2472 阅读 · 0 评论 -
B-树和B+树的区别
首先B+树的应用最多的就是在MySQL中的索引,是InnoDB存储引擎的默认索引。那么这个在面试中也是经常被问到的。那么就做一个总结吧。概念要了解B+树那么就不得不提一下的是B-树,因为B+树和B-树是由很大的联系。B树(B-tree) 是一种平衡的多路查找树,那么我们从图中也可以看到2-3树的影子,其实2-3树、2-3-4树是B树的一个特例。结点最大的孩子数目称为B树的阶,因此,2-3树是3阶的B树,而2-3-4是4阶的B树。再者B树的每个结点都会存储数据。我们在来看B+树:我们首先先比较原创 2022-04-03 21:18:40 · 4351 阅读 · 0 评论 -
MVCC底层实现原理
首先MVCC(Multi-Viewsion Concurrency Control) 又叫多版本协议控制,主要是提高数据库的并发性能。这里注意一下MVCC的落地实现是快照读。MVCC是用来解决读-写冲突的无锁并发控制,就是为事务分配单向增长的时间戳。实现原理判断规则当执行查询sql时会生成一致性视图read-view,它由执行查询时所有未提交事务id数组(数组里面最小的id为min_id)和已创建的最大事务id(max_id)组成,查询的数据结果需要read-view做对比从而获得快照结果。版本链原创 2022-03-29 22:04:32 · 1295 阅读 · 0 评论 -
常用排序算法总结
排序算法首先排序算法虽然说是很基础的算法但是在找实习的时候经常被问,让你当场就要写出来。虽然简单但是还是很容易忘掉,现在就把这个常用到的排序算法做一个总结。冒泡排序思路小结:1、一共要进行 (nums.length - 1) 次2、每一趟排序的次数在逐渐减少3、如果我们发现在某趟排序中,没有发生一次交换那么就直接提前结束冒泡排序,这就是优化算法代码实现 public class Main{ public static void main(String[] args){ int原创 2022-03-14 20:24:35 · 1150 阅读 · 0 评论 -
红黑树【自平衡的二叉搜索树】
首先红黑树虽然本质上是一棵二叉查找树,但它在二叉查找树的基础上增加了着色和相关的性质使得红黑树相对平衡,从而保证了红黑树的查找、插入、删除的时间复杂度最坏为O(log n)。加快检索速率。AVL 数的平衡是指左右节点的高度的绝对值不能超过1,而红黑树的平衡界定是指左右节点的深度不超过1倍。红黑树的5个性质:节点的颜色只能是红色或者黑色;根节点是黑色的;(根性质)NIL 节点的颜色是黑色;如果节点的颜色是红色,则其子节点均为黑色;(红性质)从任一节点到其后代任一叶子节点的路径上的黑色节点的数原创 2022-03-14 20:43:10 · 629 阅读 · 0 评论 -
【计算机网络】TCP的三次握手和四次挥手
首先tcp的三次握手和四次挥手绝对是高频的面试题,因为他是网络建立可靠稳定连接的基础,那么我们可以知道的时候三次握手是建立连接,四次挥手是断开连接。那其中衍生出来的一些问题如为什么要建立三次连接?两次为什么不行?为什么要四次挥手?三次为什么不行?等等,所以就此问题我做了一个简单的可以应付面试的总结,当然你要是想深入了解那必须看书!!!TCP 三次握手tcp的三次握手是为了建立两个端点之间的通信的,所以说tcp是点与点之间的通信。先上图,根据上图我来讲一下大致的握手过程:第一次握手:客户端处于S原创 2022-03-18 10:46:31 · 3002 阅读 · 0 评论 -
AQS(AbstractQueuedSynchronizer)抽象队列同步器
前言AQS 绝对是JUC的重要基石,也是面试中经常被问到的,所以我们要搞清楚这个AQS到底是什么?骑工作原理是什么?AQS是什么?是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态。CLH队列:CLH(Craig, Landin, and Hagersten)队列是一个虚拟的双向队列(虚拟的双向队列即不存在队列实例,仅存在结点之间的关联关系)。AQS 是将每条请求共享资源的线程封装成一个原创 2022-03-24 19:51:11 · 417 阅读 · 0 评论