自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL8.0新特性详解及全局优化

目前MySQL8.0及以上版本在我们日常工作中已经比较常见了,MySQL8.0版本增加了很多新特性,比如开窗函数降序索引函数索引隐藏索引等。了解并会使用这些新特性,无论是在面试还是工作中都是非常加分的。

2024-04-09 11:28:59 590

原创 mysql性能索引调优易混点总结

近几年看了很多和mysql相关的书,文章或视频,但仍然有一些点,看过之后又忘记了,这里做一些笔记来总结一下。

2024-04-08 14:49:32 1190

原创 JWT概念、结构、应用场景详解

JSON Web Token(JWT)是一个开放的行业标准(RFC 7519),他定义了一种简介的,自包含的协议格式,用于在通信双方传递json对象时的安全。

2022-09-05 17:12:12 707 1

原创 Java内存模型详解带完整例子

通俗易懂自顶向下讲解Java内存模型,小白也能看懂,帮助你快速理解Java内存模型,轻松搞定面试官

2022-08-07 14:48:57 762

原创 Java中用户、角色、权限的关系详解

用户、角色、权限权限赋予角色,角色又赋予用户。角色相当于身份。表结构设计角色与权限关联,用户通过扮演相应的角色,能够得到相应的权限。用户管理用户基本信息维护查询用户增加用户删除用户(记得把用户角色表,以用户为主,把用户对应的角色也删除掉)角色分配点击添加角色数据会回显更新角色需要判断:添加新的角色记录 已有的角色不添加,添加没有的角色记录清空所有的角色记录 删除用户绑定的用户信息移除部分角色信息 删除不存在的记录信息,存在的记录保存移除部分

2022-07-18 16:22:37 2840

原创 CAP原理详解

这篇文章主要讲解,分布式系统中的CAP原理。在分布式系统中,我们经常听到CAP原理这个词,它是什么意思呢?其实和C、A、P这3个字母有关,C、A、P分别是这3个词的首字母。下面我们就看一下这3个词分别是什么意思?C-Consistent,一致性。具体是指,操作成功以后,所有的节点,在同一时间,看到的数据都是完全一致的。所以,一致性,说的就是数据一致性。A-Availability,可用性。指服务一致可用,在规定的时间内完成响应。...

2022-07-18 16:06:31 623

原创 数据结构算法错误记录

二叉树翻转的时候不能用中序遍历。前序遍历,后序遍历都行,翻转后不用返回值接。层序遍历两个都是while,小list里只加list.add(cur.val);就可以。对称二叉树的判断,要在传的参数是root.left和root.right,只传一个root解决不了。求二叉树的最小深度,和最大深度不一样,最小深度需要注意叶子节点的定义,叶子节点是左右子树全不为空。可以用后序遍历。.........

2022-07-18 15:47:16 339

原创 Java【NIO详解】

以前使用过NIO,但对NIO还是有些疑惑,因此写了这篇文章,来记录NIO。程序执行效率的快慢是由I/O效率决定的,需要等待数据传输,是因为在JVM方面效率不足,导致程序效率低。在操作系统上,可以直接从磁盘读取大量数据,但在JVM方面,是小数据的读取在JDK1.4之后引入了NIO,可以最大限度的满足Java程序的I/O需求,java.nio包下有很多和io相关的类,在NIO中有3大核心组件,Channel、Buffer、Selector,下面开始一一讲解。...

2022-07-18 15:44:13 376

原创 并发集合详解concurrentHashMap、CopyOnWriteArrayList、阻塞队列

文章目录前言常用map的关系图hashmap线程不安全的体现?死循环问题分析红黑树hashmap特点jdk1.7的concurrenthashmapjdk1.8的concurrenthashmap实现为什么超过8要转为红黑树?为什么使用concurrentHashmap,copyonwriteArraylistcopyonwriteArrayList使用场景ArrayList迭代修改报错原因?copyonwriteArrayList缺点copyonwriteArrayList源码从以下几点讲队列什么是阻塞队

2022-05-30 11:35:36 316

原创 【并发编程】Java线程池面试题及带具体例子详解

Java并发编程线程池详解,相信看完就能够应付面试和工作中的问题。

2022-05-15 10:32:01 1392

原创 【SpringBoot】实例化注入及配置详解

在我们项目中,肯定是springFramework和SpringBoot用的最多,比如我们也都了解了,@Component把类加入到容器,使用的时候用@Autowired就可以了。大多数人可能只了解到这个程度,因为到这个程度基本上就能够使用了,项目中基本上也是这个最多。但是在面试中或者一些场景却远远不够,这篇文章会更加深入的讲解底层的一些东西,相信对大家学习和面试都会有很大的帮助。

2022-04-05 13:33:46 2563 2

原创 【数组&双指针】leedcode 4. 寻找两个正序数组的中位数详解

从今天开始,正式开始新的专栏,数据结构算法刷题相关。先从数组双指针开始,因为程序员的人数越来越多,很多题,背一背就可以了,想要变得更好,只有从基础出发,下面开始一起学习吧。

2022-04-02 10:54:01 204 4

原创 【springboot框架增强】优雅的自定义参数校验详解 全网最新

在上一篇文章中,已经详细的讲解了自定义全局异常捕获,今天接着写参数校验相关的。在日常的项目中,我们可能忽略了参数校验的重要性,参数校验可以限制用户的输入,提高系统的安全性,使程序更加的健壮。在日常的项目中,我们可能直接在controller层做参数校验,比如发现某个必传参数前端没有传过来,然后后端判断一下,发现为空,直接返回给前端参数缺失。在我们日常开发中,数据校验的实现是一件比较痛苦的事情,繁琐且无趣,对于一般的业务而言,极少出现一些过于复杂的校验,常常都是非空,长度......

2022-03-30 19:39:06 1435 2

原创 【springboot框架增强】优雅的自定义异常捕获 全网最新

在日常项目开发中,异常是常见的,但是如何更高效的处理好异常信息,让我们能快速定位到BUG,是很重要的,不仅能够提高我们的开发效率,还能让你代码看上去更舒服,SpringBoot的项目已经对有一定的异常处理了,但是对于我们开发者而言可能就不太合适了,因此我们需要对这些异常进行统一的捕获并处理。......

2022-03-28 13:25:24 1213 4

原创 基于redis和数据库悲观锁的分布式锁的应用详解及springboot代码

文章目录一、 单体应用锁的局限性二、分布式的解决办法1、 基于数据库悲观锁的分布式锁2、 基于redis的setnx的分布式锁三、基于redis分布式锁的代码实现一、 单体应用锁的局限性不能跨JVM,不能跨进程。比如在集群或分布式的情况下,可重入锁或者synchronized锁不生效。二、分布式的解决办法1、 基于数据库悲观锁的分布式锁通过selct … for update访问同一条数据,锁定了当前数据,其他线程只能等待。新建表:mycat演示之前要关掉事务的自动提交。项目中要加上

2022-01-27 16:09:59 765 24

原创 超卖现象的解决办法及单体应用锁详解

本文详细讲解了并发情况下,可能会出现的问题及解决方法。

2022-01-23 14:47:06 2257 7

原创 Java使用pb【protobuf】压缩解决二维码内容过多导致二维码太密的问题

文章目录一、前言二、pb简介三、pb简单使用方法四、例子五、pb工具和模型免费下载地址一、前言在我们开发的过程中,可能会遇到这个问题,要展示一个二维码,二维码里有很多数据,但是数据太多了,导致二维码过密,识别费劲,同时还存在安全问题,比如通过草料等软件解析,就能够知道二维码里的数据,这样也不安全。这个时候就可以试试pb来进行加密压缩了。pb工具的百度网盘链接在最下方。二、pb简介pb全称protobuf,proto协议的生成和解析是开源代码,在github上搜com.google.protobuf

2021-12-21 17:41:12 3483 34

原创 MySQL索引分析与优化详解

该篇文章将会详细讲解MySQL的索引分析与优化,对我们工作和面试都有很大的帮助。

2021-12-10 17:09:07 332 17

原创 MySQL索引原理及类型详解

文章目录一、前言二、索引类型1.普通索引1.1 简介1.2 创建普通索引的方法2.唯一索引2.1 简介2.2创建唯一索引的方法3.主键索引3.1 简介3.2 创建主键索引的方法4.复合索引4.1 简介4.2 创建组合索引的方法4.3 复合索引使用注意事项5.全文索引5.1 简介5.2 创建全文索引的方法5.3 全文索引使用注意事项三、索引原理1. 二分查找法1.1 简介1.2算法思路1.3 算法图解1.4 算法递归和非递归的实现2. hash结构2.1 简介3. B+ Tree结构3.1 B+Tree和B

2021-10-22 17:15:40 848 43

原创 MySQL架构原理详解

文章目录一、前言二、 MySQL应用架构1. 应用架构总体介绍1).网络连接层2).服务层(1). 系统管理和控制工具(2). 连接池(3). SQL接口(4). 解析器(5). 查询优化器(6). 缓存3).存储引擎层4).系统文件层三、 MySQL运行机制1. 建立连接2. 查询缓存一、前言本篇文章是MySQL详细的架构原理及优化的讲解,建议对MySQL有一定的基础再学习。用户请求-》应用层-》服务层-》存储层MySQL属于存储层。二、 MySQL应用架构1. 应用架构总体介绍上图是My

2021-10-21 08:39:16 1494 18

原创 【linux】性能优化之CPU优化一

文章目录一、前言二、性能统计信息1. 平均负载率。2. 平均负载率命令 uptime3. 平均负载和CPU使用的关系4. 如何定位哪个进程出现问题一、前言因为以前只是了解了linux的常用命令和vim的使用,但是这对于我们来说还远远不够,在接下来我将会持续学习更新linux优化相关的内容。首先是CPU优化。二、性能统计信息1. 平均负载率。平均负载率是指单位时间内,可运行进程(CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnab

2021-10-09 13:04:35 12339 26

原创 【集群分布式问题】session共享问题及解决方案

文章目录一、session共享问题还原二、解决方案1.Nginx的 IP_Hash 策略(可以使⽤)2. Session复制(不推荐)3. Session共享,Session集中存储(推荐)一、session共享问题还原以登录为例,比如输入用户名和密码,然后会重定向到另一个界面,刚开始登录请求在节点1上,然后第二次业务请求会跑到节点2上,因为节点2上没有节点1上的session信息,所以会登录失败。Http协议是⽆状态的协议。客户端和服务端在某次会话中产⽣的数据不会被保留下来,所以第⼆次请求服务端

2021-10-06 10:53:34 13043 21

原创 【集群分布式问题】分布式集群时钟同步问题及解决方案

文章目录一、 时钟不同步导致的问题二、集群时钟同步配置1. 分布式集群中各个服务器节点都可以连接互联⽹2. 分布式集群中一个节点或每个节点都不能访问互联网一、 时钟不同步导致的问题时钟此处指服务器时间,如果集群中各个服务器时钟不⼀致势必导致⼀系列问题,试想 “集群是各个服务器⼀起团队化作战,⼤家⼯作都不在⼀个点上,岂不乱了套!”举⼀个例⼦,电商⽹站业务中,新增⼀条订单,那么势必会在订单表中增加了⼀条记录,该条记录中会有“下单时间”这样的字段,往往我们会在程序中获取当前系统时间插⼊到数据库或者直接

2021-10-06 10:36:19 12499 13

原创 Java如何把一个CSV文件拆分成指定个CSV文件【带源码,完美运行带截图】

一、前言前段时间有个需求,因为一个CSV文件太大了,程序跑不了,需要把一个CSV文件转成任意多个CSV文件,同时把文件的头也要带上。二、实现1. 首先进行CSV文件读取,并且把文件组成list,把list拆分 /** * 读取并拆分文件 * * @param originalFileName 原始文件的名字 eg: data.scv * @param len 每个文件包含的记录数 eg: 10000 * @return

2021-09-30 15:15:24 2047 15

原创 全网最详细的红黑树的基本性质详解及原因和时间复杂度解析

红黑树的基本性质节点要么是红色,要么是黑色。根节点是黑色每一个叶子节点(最后的空节点) 是黑色的每个红节点的两个孩子节点都是黑的从任意节点到叶子节点 ,结果的黑色节点是一样多的根节点为什么是黑色?根据前个文章,红黑树是由2-3树衍生而来的,根据图示,根节点只能是黑色。为什么每一个叶子节点(最后的空节点) 是黑色的?这个相当于一个定义为什么从任意节点到叶子节点,结果的黑色节点是一样多的呢?因为2-3树是完全平衡的二叉树,所以深度是一样的,红黑树是由2-3树演变而来,每经过一个黑色

2021-08-29 12:37:53 1270 15

原创 全网最详细的红黑树和2-3树对比

为什么说2-3树和红黑树等价呢?2-3树中一个节点可以存放1个元素,也可能存放2个元素。但红黑树一个节点只能存放一个元素。但是也可以换种形式表示。上面的两张图其实是等价的,为了看的更清晰,所以把bc平行了,b是c的左孩子。如下图因为树对边没有标识,但可以对节点进行标识,如下图。这就代表了b和他的父亲c,本质上是并列的(2-3树),所以这就衍生出了红黑树。根据上篇文章和以上图解,我们可以知道,红黑树的红色节点都是向左倾斜的。看图写2-3对应的红黑树,下图中对应的红黑树是什么样子呢?下

2021-08-29 11:57:52 814 6

原创 全网最详细的2-3树图解

2-3树定义: 2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,所有的叶子都在同一级别。另一方面,2-3树的一个内部节点确实有3个孩子,故比相同高度的满二叉树的节点更多。高为h的2-3树包含的节点数大于等于高度为h的满二叉树的节点数,即至少有2^h-1个节点。换一个角度分析,包含n的节点的2-3树的高度不大

2021-08-29 11:26:47 8296 11

原创 【Eureka】全网最形象生动的服务治理简介,5分钟带你入门eureka

什么是服务治理?服务治理就像是白羊座宫殿,它是通向微服务架构圣殿的第一关,是所有微服务应用要考虑的第一个问题。本节将带大家深入浅出,从“提出问题-解决问题”的思路出发,让大家对服务治理领域的核心功能有个直观的感受。这就像相亲见姑娘的第一面,不求深入了解,但求心中有数,为后面的章节开一个好头。Let’s Go!服务治理的伟大目标服务治理这个名字乍一听很唬人,其实他很低调,能做的事情无非就是专治分布式系统各种不服。呦,你看这口气还挺大,既然牛已经吹出来了,那就先给自己定几个小目标吧!高可用性 换成通俗

2021-07-14 13:50:56 258 4

原创 Java解析Auth2请求详解及代码实现

发送请求获取数据及解析代码工具类public class HttpClientUtils { @Autowired private static IndustryMapper industryMapper; private static final String clientId = "xxxxx"; private static final String clientSecret = "xxxxx"; private static final String g

2021-07-06 13:28:38 848 1

原创 分布式事务系列之事务补偿机制

1.什么是事务补偿机制例子:A的补偿就相当于+200元。

2021-07-02 10:50:47 1013

原创 垃圾回收详解

1. 什么场景下该使用什么垃圾回收策略主要回收堆和方法区线程共享的部份。2. 对象什么时候被回收1. 引用计数法通过对象的引用计数器来判断对象是否被引用A引用B,B的程序计数+1,B引用C,C的程序计数+1.循环引用就不行了。2. 可达性分析图表表示如下根对象包括哪些呢什么是 强引用什么是软引用什么是弱引用什么是虚引用一个对象不可达,也不一定被回收...

2021-06-25 17:26:43 94

原创 索引树详解

b-treeB+Treememory支持hash索引最左匹配原则索引失效的场景

2021-06-25 17:00:41 1374 1

原创 编译器优化

一、方法内联把目标方法的代码复制到发起调用的方法当中,避免真实的方法调用。二、方法内联的条件三、方法内联的注意点四、方法内联的相关参数

2021-06-20 16:51:16 107 1

原创 编译器优化详解

文章目录一、解释vs编译二、c1编译器三、c2编译器四、分层编译五、如何找到热点代码一、解释vs编译Java是混合模式执行的二、c1编译器三、c2编译器c1编译器比较适合客户端带图形界面。c2编译器比较适合服务端四、分层编译默认情况下jdk8是开启了分层编译jvm可以设置开启什么模式编译如果上图的数字是3,那么只使用0 1 2 3级别的进行编译。五、如何找到热点代码基于采样的热点检测,当发现某一个方法总是出现在栈顶,就是热点代码了。基于计数器的热点检测。

2021-06-20 10:29:11 611

原创 sql调优之join优化

1.join种类?彼此的区别?还有一种是cross join,使用笛卡尔进行连接,不需要进行连接,如果 带有on进行连接,相当于inner join2. join算法1. Nested-Loop Join 嵌套循环1. Block Nested-Loop Join 块嵌套循环使用条件...

2021-06-09 09:47:38 665 4

原创 sql优化详解(长字段sql优化,前缀索引,单索引,组合索引,覆盖索引....)

文章目录一、长字段的sql优化1. 新增加一个字段作为长字段的hash,用`CRC32()`来解决问题。2. 前缀索引(长字段的调优)二、单列索引vs组合索引三、覆盖索引四、重复索引1. 重复索引2. 冗余索引3. 未使用索引一、长字段的sql优化1. 新增加一个字段作为长字段的hash,用CRC32()来解决问题。为什么要带上and first_name=“Facello”,这就保证了在hash冲突的时候也能够正确的返回结果。2. 前缀索引(长字段的调优)上图表示了只对first_name的

2021-06-09 09:06:43 485

原创 【Java】系列之线程池 ThreadPoolExecutor

概述线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Executor框架虽然提供了如newFixedThreadPool()、newSingleThreadExecutor()、newCachedThreadPool()等创建线程池的方法,但都有其局限性,不够灵活;另外由于前面几种方法内部也是通过ThreadPoolExecutor方式实现,使用ThreadPoolExecutor有助于大家明确线程池的运行规则,创建符合自己的业务场景需要的

2021-04-29 10:25:23 162 1

原创 【mysql】之主从配置详解

文章目录一、MySQL主从1. 进入etc/my.cnf,修改如下配置2. 备份账户并授权3. 主进行锁表4. 主 找到 bin-log的位置 show master status5. 主备份数据6. 从配置一、MySQL主从1. 进入etc/my.cnf,修改如下配置配置如下主配置:从配置2. 备份账户并授权命令详解 链接命令:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;说明:username:你

2021-04-23 11:00:22 1102 1

原创 【mycat】系列 之 简介

文章目录一、分库分表概述1. 数据切分方式1.1 垂直切分1.2 水平切分二、mycat配置1. server.xml配置2. schema.xml配置一、分库分表概述1. 数据切分方式1.1 垂直切分按照业务切分,比如把订单、商品进行切分。每种业务一个数据库不同业务之间,禁止跨库联查,非常消耗性能优点缺点1.2 水平切分同一的数据,切分到不同的数据库。例如订单为奇数的存到1库,为偶数的存到2库。需要确定分片的规则使用分片字段查询时,可确定实体库,其

2021-04-23 09:13:17 138 1

原创 【RabbitMQ】系列之整合Springboot

文章目录一、整合SpringBoot1. 发送消息2.监听消费消息二、保证消息可靠性一、整合SpringBoot1. 发送消息操作非常简单添加队列添加交换机把交换机和队列进行绑定其中order.#代表可以匹配多个词,比如order.a.border.*代表匹配一个词,比如order.a新建测试类2.监听消费消息手工签收,最后一定要调用channel.basicAck,告诉mq以收到消息,可以把消息清空了二、保证消息可靠性消息确认模式,当消息发出去后,异步等待

2021-04-14 15:53:26 97 1

pb工具和模型.rar

主要进行数据加密和传输,可以配合压缩解压缩一起使用附demo

2021-12-21

小豆包高清ps图片素材

免费的小豆包的高清图片

2020-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除