![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 92
xunznux
这个作者很懒,什么都没留下…
展开
-
Java 面试题:事务隔离级别以及并行事务会出现什么问题&&怎么解决脏读、不可重复读和幻读问题 --xunznux
Read View 是 InnoDB 实现 MVCC 的核心,它确保了在事务执行过程中快照读操作的一致性。通过维护一个活跃事务的列表和相关的事务 ID 边界,Read View 能够精确地判断哪些数据版本对当前事务可见,哪些不可见,从而避免出现脏读、不可重复读等并发问题。原创 2024-09-02 21:57:16 · 742 阅读 · 0 评论 -
Java 面试题:TCP重传机制与拥塞控制 --xunznux
TCP 重传机制是保证数据传输可靠性的核心。通过超时重传、快速重传、快速恢复以及 SACK 机制,TCP 能够有效地处理网络中的数据包丢失、乱序等问题。不同的 TCP 实现和版本可能会在这些基础机制上进行优化,以适应不同的网络条件和应用场景。在现代网络环境中,这些重传机制共同作用,确保了 TCP 的可靠性和高效性。TCP 的拥塞控制机制通过多种算法的结合,确保在不同网络条件下都能有效地调节传输速率,减少拥塞发生的概率,保障数据传输的可靠性和效率。原创 2024-08-31 00:09:09 · 1261 阅读 · 0 评论 -
Java 面试题:TCP协议:三次握手与四次挥手详解--xunznux
半连接队列(SYN 队列)是用于存放已经发送了 SYN(同步)包但还未完成三次握手的连接。它在 TCP 协议中的作用是确保服务器能够正确处理和管理正在建立的连接。工作过程当服务器第一次收到客户端发送的 SYN 报文时,服务器会进入SYN-RECV状态。在这个状态下,服务器尚未与客户端完全建立连接,仅完成了三次握手中的第一步。服务器会将这个处于未完全建立的连接放入半连接队列中,等待客户端发送确认报文(第三次握手)。原创 2024-08-31 00:00:36 · 1267 阅读 · 0 评论 -
Java 面试题:HTTP缓存:强制缓存和协商缓存--xunznux
HTTP缓存通过强制缓存和协商缓存两种方式,显著提高了资源访问的效率,减少了不必要的网络传输。在实际开发中,合理配置ETag等缓存机制,可以极大提升用户体验和服务器性能。原创 2024-08-30 19:49:59 · 967 阅读 · 0 评论 -
Java 面试题:HTTP版本演变--xunznux
这样造成的问题是,如果最先收到的请求的处理时间长的话,响应生成也慢,就会阻塞已经生成了的响应的发送。基于 TCP 传输协议的 HTTP 协议,由于是通过四元组(源 IP、源端口、目的IP、目的端口)确定一条 TCP 连接,那么当移动设备的网络从 4G 切换到 WIFI 时,意味着 IP 地址变化了,那么就必须要断开连接,然后重新建立连接,而建立连接的过程包含 TCP 三次握手和 TLS 四次握手的时延,以及 TCP 慢启动的减速过程,给用户的感觉就是网络突然卡顿了一下,因此连接的迁移成本是很高的。原创 2024-08-29 22:36:47 · 1501 阅读 · 0 评论 -
Java 面试题:HTTPS与HTTP区别以及HTTPS如何建立连接保证安全性--xunznux
对称加密也称为私钥加密,使用相同的密钥来进行加密和解密。在加密过程中,明文数据通过应用特定的算法和密钥进行加密,生成密文数据。解密过程则是将密文数据应用 同样的算法和密钥进行解密,恢复为明文数据。由于加密和解密都使用相同的密钥,因此对称加密算法的速度通常较快,但密钥的安全性很重要。如果密钥泄 漏,攻击者可以轻易地解密数据。公钥加密,私钥解密。这个目的是为了保证内容传输的安全,因为被公钥加密的内容,其他人是无法解密的,只有持有私钥的人,才能解密出实际的内容;私钥加密,公钥解密。原创 2024-08-28 14:42:26 · 1130 阅读 · 0 评论 -
Java 面试题:在浏览里输入URL后回车会发生什么--xunznux
3. 在浏览里输入URL后回车会发生什么。地址解析协议(Address Resolution Protocol,ARP):ARP协议可以将IPv4地址(逻辑地址)转换为各种网络所需的硬件地址(物理地址)。地址解析的目标就是发现逻辑地址与物理地址的映射关系。ARP仅用于IPv4协议,IPv6使用邻居发现协议(NDP)替代。ARP协议目前最广泛应用于寻找32位IPv4地址与以太网的48位MAC地址之间的映射。ARP协议是网络层协议。原创 2024-08-27 21:03:14 · 889 阅读 · 0 评论 -
Java HashMap 源码解读笔记(二)--xunznux
*这样做的主要原因是尾插法对于后续元素的查找和删除操作更加高效,因为新插入的元素在链表的尾部,因此只需要遍历链表一次就可以找到链表的尾部。在插入过程中,它会根据哈希值和键的比较结果来确定插入的方向,并在插入后对红黑树进行必要的平衡操作。这段代码实现的是将红黑树转换回链表的功能。它的主要作用是根据当前的容量和负载因子,计算出新的容量和阈值,并创建一个新的存储桶数组,将原有的键值对重新散列到新的数组中。3. 将原有的键值对重新散列到新的数组中,利用了 2 的幂次方扩容的特性,可以避免大量的节点位置重新计算。原创 2024-08-02 21:28:21 · 910 阅读 · 0 评论 -
Java HashMap 源码解读笔记(一)--xunznux
基于哈希 table 实现的 Map 接口。此实现提供所有可选的映射操作,并允许 null 值和 null 键(因为key不允许重复,因此只能有一个键为null)。(HashMap 类大致相当于 Hashtable,但它是非同步(unsynchronized) 的并且允许空值。)此类不保证映射的顺序;特别是,它不保证顺序会随时间保持不变。假设哈希函数能将元素适当地分散到各个桶中,此实现为基本操作(get 和 put)提供常数时间性能。原创 2024-07-31 22:49:44 · 972 阅读 · 0 评论 -
面试场景题系列--(3)如何避免超预期的高并发压力压垮系统?限流算法--xunznux
每种限流算法都有其优缺点,具体选择取决于系统的具体需求和特点。计数器法:实现简单,但容易在时间窗口边界出现突刺流量。滑动窗口法:平滑限流,但实现复杂,开销大。漏桶算法:平滑流量,适合流量整形,但无法处理突发流量。令牌桶算法:能处理突发流量,适合流量控制,但实现复杂。分布式令牌桶算法:适合分布式限流场景,但实现复杂。原创 2024-07-26 22:00:01 · 826 阅读 · 0 评论 -
面试场景题系列--(2)短 URL 生成器设计:百亿短 URL 怎样做到无冲突?--xunznux
短 URL 生成器,就是将一个比较长的 URL 生成一个比较短的 URL,当浏览器通过短 URL 生成器访问这个短 URL 的时候,重定向访问到原始的长 URL 目标服务器。对于需要展示短 URL 的应用程序,由该应用调用短 URL 生成器生成短 URL,并将该短URL 展示给用户,用户在浏览器中点击该短 URL 的时候,请求发送到短 URL 生成器(短URL 生成器以 HTTP 服务器的方式对外提供服务,短 URL 域名指向短 URL 生成器),短 URL 生成器返回 HTTP 重定向进行访问。原创 2024-07-25 22:27:08 · 939 阅读 · 0 评论 -
面试场景题系列--(1)如果系统的 QPS 突然提升 10 倍该怎么设计?--xunznux
设计高并发系统,需要从物理硬件层面到软件的架构、代码层面的优化,使用什么中间件来不断提高系统的抗压能力。原创 2024-07-23 22:52:45 · 1089 阅读 · 0 评论 -
实现一个自己的OpenFeign 远程调用验证协议--Springboot 自定义拦截器验证请求合法性--xunznux
至此,一个简单的用于 OpenFeign 远程调用的验证协议就完成了,可以将其作为一个项目打包为jar包,然后引入其他项目中使用,这里将不做介绍。当然,拦截器的使用也不仅仅是可以只用于 OpenFeign 的远程调用验证,可以用于任何 HTTP 请求的拦截与验证。Springboot 启动时Bean的创建与注入(一)-源码解读-xunznuxSpringboot 启动时Bean的创建与注入(二)-源码解读-xunznuxSpringboot 的Bean生命周期五步、七步、十步详解以及框架源码解读。原创 2024-07-22 22:45:24 · 1373 阅读 · 0 评论 -
Springboot 的Bean生命周期五步、七步、十步详解以及框架源码解读生命周期-面试热点-xunznux
Bean 生命周期的本质是:在哪个时间节点上调用了哪个类的哪个方法。我们需要充分的了解在这个生命线上,都有哪些特殊的时间节点。只有我们知道了特殊的时间节点都在哪,到时我们才可以确定代码写到哪。我们可能需要在某个特殊的时间点上执行一段特定的代码,这段代码就可以放到这个节点上。当生命线走到这里的时候,自然会被调用。原创 2024-07-21 10:49:56 · 1575 阅读 · 0 评论 -
Springboot 启动时Bean的创建与注入(二)-面试热点-springboot源码解读-xunznux
Springboot bean的创建与注入过程,源码解读,三级缓存,面试常问。原创 2024-07-20 14:54:37 · 1377 阅读 · 0 评论 -
Springboot 启动时Bean的创建与注入(一)-面试热点-springboot源码解读-xunznux
快速搭建一个springboot web项目。通过调试堆栈信息展示 Spring Boot 在启动过程中如何创建和注入 bean 的详细过程。springboot底层源码阅读解释。原创 2024-07-19 00:06:46 · 1459 阅读 · 0 评论