- 博客(29)
- 收藏
- 关注

原创 这次,彻底搞清楚MySQL索引
从索引的基本概述,索引的分类以及索引的具体使用,到索引的底层原理B+树的解析,最后讲清楚聚簇索引和非聚簇索引,层层递进,讲透MySQL索引
2022-05-28 17:37:42
4307
1
原创 MySQL锁总结(全面简洁 + 图文详解)
目录锁的分类一,全局锁二,表级锁1.表锁1.1表共享读锁1.2表独占写锁2.元数据锁3.意向锁3.1意向共享锁3.2意向排他锁三,行级锁1.行锁1.1共享锁1.2排他锁2.间隙锁3.临键锁锁的分类根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行级锁三类,如图所示:表级锁的具体细分:行级锁的具体细分:一,全局锁二,表级锁1.表锁1.1表共享读锁1.2表独占写锁2.元数据锁3.
2022-05-31 15:00:40
3020
1
原创 优先队列PriorityQueue (大根堆/小根堆/TopK问题)
PriorityQueue是从JDK1.5开始提供的新的数据结构接口,它是一种基于优先级堆的极大优先级队列。优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。默认情况下,PriorityQueue是小顶堆,如代码所示public static void main(String[] args) { PriorityQueue<Integer> queue = new PriorityQueue<&g...
2022-05-27 15:32:52
4480
原创 Leetcode.3 无重复字符的最长子串——超过100%的解法
题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1 代码如下: public int lengthOfLongestSubstring(String s) ...
2022-05-27 13:21:36
192
原创 RPC项目一致性Hash算法负载均衡策略实现(Java代码)
RPC 框架的负载均衡与 Web 服务的负载均衡的不同之处在于:RPC 框架并不是依赖一个负载均衡设备或者负载均衡服务器来实现负载均衡的,而是由 RPC 框架本身实现的,服务调用者可以自主选择服务节点,发起服务调用。RPC 框架不再需要依赖专门的负载均衡设备,可以节约成本;还减少了与负载均衡设备间额外的网络传输,提升了传输效率;并且均衡策略可配,便于服务治理。...
2022-05-27 00:19:46
1400
7
原创 [面试时]——我如何讲清楚TCP实现可靠传输的机制
一.概述 所谓可靠传输是指信息在发送方和接收方准确、精确的传输。TCP主要提供了检验和、序列号/确认应答、超时重传、滑动窗口、拥塞控制和 流量控制等方法实现了可 靠性传输。检验和:通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢 弃TCP段,重新发送。 序列号/确认应答: 序列号的作用不仅仅是应答的作用,有了序列号能够将接收到的数据根据序列号排序,并且去掉重 复序列号的数据。 TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认...
2022-05-25 16:36:02
405
原创 透彻理解LRU算法——详解力扣146题及Redis中LRU缓存淘汰
LRU(Least Recently Used,最近最久未使用)是一种常见的页面置换算法,其思想很朴素:它认为刚刚被访问的数据,肯定还会被再次访问,而长久未背访问的数据,肯定就不会再被访问了,在缓存满时,就优先删除它。图解原理:力扣146: 代码实现:...
2022-05-24 14:58:09
1042
1
原创 计算机网络——HTTP和HTTPS
Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP)它是Web的核心,其传输层是基于TCP(而不是在UDP上运行)。HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数...
2022-05-23 16:47:07
330
原创 自定义RPC项目——常见问题及详解(注册中心)
书接上回,自定义RPC项目——常见问题及详解(Netty篇)_李孛欢的博客-CSDN博客,我们接着来谈,这个RPC项目的常见问题:项目地址:https://blog.csdn.net/qq_40856284/category_10138756.html 四、注册中心1.为什么要用注册中心? 在进行注册中心使用和学习之前,我们首先就要明确一点,为什么要用注册中心呢?随着互联网架构发展(单一应用架构==>垂直应用架构==&g......
2022-05-21 14:22:30
995
原创 redis的压缩列表和跳表,看这一篇文章就够了
说到redis,大家的第一印象就是它快,它接收到一个键值对操作后,能以微秒级别的速度找到数据,并快速完成操作。我们知道redis是内存数据库,所有的操作都是在内存上实现的,这是它快的一个重要原因,那么,它另外一个重要原因就是redis高效的数据结构设计,下面我们一起来学习一下。简单来说,底层数据结构一共有 6 种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。它们和数据类型的对应关系如下图所示:...
2022-05-19 14:03:57
4136
原创 自定义RPC项目——常见问题及详解(Netty篇)
书接上回,自定义RPC项目——常见问题及详解(1)_李孛欢的博客-CSDN博客,我们接着来谈,这个RPC项目的常见问题:项目地址:https://blog.csdn.net/qq_40856284/category_10138756.html 三,有关Netty本篇文章主要介绍有关Netty相关的知识以及项目对Netty的使用,在这之前读者还需要了解基本的IO模型、JDK中NIO基本组件等知识。如果你的简历在项目介绍中写到用Ne...
2022-05-17 14:26:15
923
原创 自定义RPC项目——常见问题及详解(1)
作为Java后端选手,项目是必不可少的,目前主流做的就是各种管理系统和商城项目,同质化严重,那么怎么可以找到一个更加出彩的、与众不同的项目呢,我想下面这个自定义的RPC框架项目是一个不错的选择项目地址:https://blog.csdn.net/qq_40856284/category_10138756.html众所周知,用框架和写框架所需要的对框架的熟悉程度显然不在一个级别。为了更好的去理解这个项目,我会把这个项目的常见问题及解答做一个整理(个人见解),让我们开始吧...
2022-05-13 23:47:33
1425
1
原创 一篇文章带你搞透redis高性能IO模型
Redis作为K-V数据库,应用非常广泛,在各大厂的面试中,redis也是绕不开的一个话题。我们说redis快,常规的解释是redis是基于内存实现的以及它的高效的数据结构,其实redis快的原因还有一个是因为使用了合适的IO模型,下面带大家分析一下。 一.redis为什么要使用单线程在多线程并发大行其道的今天,为什么redis要另辟蹊径选择单线程,要理解这一点我们就要先了解多线程的开销。 首先我们先明确两个概念,并行与并发:并发...
2022-05-10 21:32:17
1382
5
原创 如何理解RPC?
一.RPC是什么? 近几年,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。RPC(Remote Procedure Call),即远程过程调用,是分布式系统中常见的一种通信方法。它允许程序调用另一个地址空间(通常是共享网络的另一台物理机)的过程或函数,而且程序的调用代码与本地过程调用一致。简单来说,RPC就是要达到像调用本地方法一样调用远程(跨主机)方法。......
2022-05-09 16:35:09
1545
1
原创 Java动态代理的理解
1.什么是动态代理 在去深入理解动态代理之前,先来看看它的基本概念,简单来说,动态代理就是在程序运行期,创建目标对象的代理对象,对目标对象中的方法进行功能性增强的一种技术。可以看到,概念种出现了这么几种角色:①.真实角色,②.代理角色,③.方法,④.客户(访问角色)。那么访问角色本可以直接访问真实角色的某个方法,为什么在开发的过程种需要一个代理角色呢?也就说动态代理解决了什么问题。在这里我们明确一个核心概念:动态代理能够让真实对象专注于自己的核心功能,让代理对象拦截客户对真实对象的访问,...
2022-05-09 00:23:06
1763
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人