- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 Unsatisfied dependency expressed through field ‘baseMapper‘
如果你使用的springboot 3.0.x 版本 一定更改 maven啊,前提你的配置没问题哦。
2023-05-18 17:16:56 235
原创 nacos 2.1.0集群生产环境多节点部署
nacos 2.1.0集群生产环境多节点部署JAVA 开发版本版本说明适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本如下:1.8.52.1.04.9.41.5.21)环境准备。
2023-01-12 16:16:29 1665
原创 线性查找算法
线性查找算法线性查找算法JAVA代码实现线性查找算法JAVA代码实现线性查找算法(初始版本)JAVA代码实现线性查找算法(对象版本)线性查找算法生活中的例子:你有很多照片都放在了一块,你找到自己想要的一张照片,你会从第一张开始找,第一张不是,第二张不是,第三张不是。。。。以此类推,找到自己想要的,若找不到,你会感觉为什么没有,是不是丢了,心情很是低落,我草丢了!!!!!!!程序中的例子:一个数组存储了很多数字,例如 1,2,3,4,9,5,7 这样的数据 你想查找某个数字,而你并不知道他的下标,
2022-02-11 15:42:43 353
原创 抽象队列同步器AQS应用Lock详解
多线程系列文章目录Java并发编程核心在于java.util.concurrent包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer简称AQS,AQS定义了一套多线程访问共享资源的同步器框架,是一个依赖状态(state)的同步器。文章目录多线程系列文章目录一、ReentrantLock二、AQS具备特性三丶同步等待队列四丶条件等待队列五丶AQS源码分析一、Reentr
2021-04-29 17:24:08 103
原创 synchronized详解
多线程系列文章目录多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。 可变:资源可以在其生命周期内被修改引出的问题:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问!文章目录多线程系列文章目录一、如何解决线程并发安全问题?二、synchronized原理详解三丶synchronized底层原理Monitor监视器锁什么是monitor?对象的内存布局
2021-04-29 16:51:52 382
原创 CPU缓存一致性协议MESI
文章目录一、CPU高速缓存(Cache Memory)CPU为何要有高速缓存带有高速缓存的CPU执行计算的流程多核CPU多级缓存一致性协议MESIMESI优化和他们引入的问题一、CPU高速缓存(Cache Memory)CPU为何要有高速缓存CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决I\O速度和CPU运
2021-04-27 13:24:48 75
原创 JMM&synchronized&volatile详解
系列文章目录Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变量都存储在主内存,主内存是共享内存区域,所有线程都可以访问,但线程对变量的操作(读取赋值等)必须在工作内存中进行,首先要将变量从主内存
2021-04-27 13:05:44 126
原创 Mysql理解MVCC与BufferPool缓存机制
Mysql系列文章目录文章目录Mysql系列文章目录一、MVCC多版本并发控制机制undo日志版本链与read view机制详解Innodb引擎SQL执行的BufferPool缓存机制一、MVCC多版本并发控制机制Mysql在可重复读隔离级别下如何保证事务较高的隔离性,我们上节课给大家演示过,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这个隔离性就是靠MVCC(Multi-Version Concurrency Contr
2021-04-27 12:15:02 161
原创 操作系统底层工作认识
多线程系列文章目录提示:计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作模型。这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提出来的,故称为冯.诺依曼计算机模型。提示:写完文章后,目录可以自动生成
2021-04-27 12:09:09 270
原创 Mysql锁机制与事务隔离
Mysql系列文章目录我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。接下来,我们会深入讲解这些机制,让大家彻底理解数据库内部的执行原理。文章目录Mysql系列文章目录前言一、事务及其ACID1.并发事务处理带来的问题更新丢失(Lost
2021-04-22 16:39:51 150
原创 Mysql索引优化二
Mysql系列文章目录文章目录Mysql系列文章目录一、分页查询优化1、根据自增且连续的主键排序的分页查询2、根据非主键字段排序的分页查询Join关联查询优化1、 嵌套循环连接 Nested-Loop Join(NLJ) 算法2、 基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法count(*)查询优化一、分页查询优化示例表:CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
2021-04-22 13:25:09 846 4
原创 Mysql索引优化一
Mysql系列文章目录我们常常写的sql语句不知道为什么不走索引,接下来咱们谈谈Sql索引优化文章目录Mysql系列文章目录一、Mysql如何选择合适的索引?1.联合索引示例Mysql如何选择合适的索引常见sql深入优化案例1:案例2:案例3:案例4:案例5:案例6:案例7:案例8:优化总结:Using filesort文件排序原理详解索引设计原则一、Mysql如何选择合适的索引?1.联合索引示例建表CREATE TABLE `employees` ( `id` int(11) NOT
2021-04-21 15:17:05 420 3
原创 Mysql删库恢复数据
Mysql系列文章目录我们常常说的一句话,删库跑路,删库是不需要跑路的文章目录Mysql系列文章目录一、bin-log归档一、bin-log归档删库是不需要跑路的,因为我们的SQL执行时,会将sql语句的执行逻辑记录在我们的bin-log当中,什么是bin-log呢?binlog是Server层实现的二进制日志,他会记录我们的cud操作。Binlog有以下几个特点:1、Binlog在MySQL的Server层实现(引擎共用)2、Binlog为逻辑日志,记录的是一条语句的原始逻辑3、Bi
2021-04-20 16:40:29 138
原创 SQL在MySQL中是如何执行的
Mysql系列文章目录我们通常执行一条sql,他的底层是如何执行的?执行的顺序文章目录Mysql系列文章目录一、MySQL的内部组件结构Server层Store层连接器查询缓存分析器词法分析器原理优化器执行器提示:下面咱们讲一下SQL在Mysql中如何执行的一、MySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、
2021-04-20 14:52:18 359
原创 Mysql-Explain与索引详解
Mysql系列文章目录提示:使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中文章目录Mysql系列文章目录前言一、Explain分析explain中的列二、索引实践1.全值匹配2.最左前缀法则3.不在索引列上做任何操作(计算、函数、(自动or手动)
2021-04-20 13:23:45 136
原创 Mysql索引底层数据结构
Mysql系列文章目录提示:mysql是关系型数据库,被好多公司广泛使用提示:索引是帮助MySQL高效获取数据的排好序的数据结构,接下来跟我学习mysql数据库索引吧文章目录Mysql系列文章目录前言一、数据的存储IO Buffer二、MYSQL索引2.1 索引数据结构前言提示:如果有说的不对的地方请批评指正一、数据的存储IO Buffer首先我们想读取文件,是不是需要IO流?Buffer存在一个成本问题,磁盘有磁道和扇区,每个扇区有多少字节?每次扇区有512个字节,如果我们想访问
2021-04-19 13:56:42 201 2
原创 Linux下mysql的彻底卸载
Mysql系列文章目录文章目录Mysql系列文章目录一、查看mysql的安装情况一、查看mysql的安装情况1.查看mysql的安装情况rpm -qa | grep -i mysql2.删除上图安装的软件rpm -ev mysql-community-libs-5.7.27-1.el6.x86_64 --nodeps3.都删除成功之后,查找相关的mysql的文件find / -name mysql4.删除全部文件rm -rf /var/lib/mysqlrm -rf /v
2021-04-13 16:48:10 107
原创 MYSQL5.7详细安装步骤
Mysql系列文章目录提示:这里是Mysql的安装文章目录Mysql系列文章目录一、更换yum源(可做可不做)二、安装一、更换yum源(可做可不做)1、打开 mirrors.aliyun.com,选择centos的系统,点击帮助2、执行命令:yum install wget -y3、改变某些文件的名称mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup4、执行更换yum源的命令wg
2021-04-13 16:40:06 133
原创 JVM常量池详解
JVM系列文章目录提示:这里咱们要说的常量池,常量池就是咱们面试中所说的常量池,谈谈你对常量池的认识?面试官一问咱们就懵逼了,你要记得你脑子中有一张图!!! 剩下的就好办了提示:请各位大佬批评指正!!文章目录JVM系列文章目录前言一、Class常量池与运行时常量池二、字符串常量池八种基本类型的包装类和对象池前言提示:学习的时候会有点头疼哦一、Class常量池与运行时常量池Class常量池可以理解为是Class文件中的资源仓库。 Class文件中除了包含类的版本、字段、方法、接口等描述
2021-04-13 14:44:45 1481 4
原创 GC垃圾收集器G1
JVM系列文章目录提示:强大的垃圾回收器文章目录JVM系列文章目录前言一、G1收集器(-XX:+UseG1GC)被视为JDK1.7以上版本Java虚拟机的一个重要进化特征。它具备以下特点:前言提示:G1(Garbadge First Collector)作为一款JVM最新的垃圾收集器,可以解决CMS中Concurrent Mode Failed问题,尽量缩短处理超大堆的停顿,在G1进行垃圾回收的时候完成内存压缩,降低内存碎片的生成。G1在堆内存比较大的时候表现出比较高吞吐量和短暂的停顿时间,而
2021-04-08 12:35:55 469
原创 GC垃圾回收ZGC
ZGC收集器(-XX:+UseZGC)ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器,ZGC可以说源自于是Azul System公司开发的C4(Concurrent Continuously Compacting Collector) 收集器。ZGC目标,如下图所说,未来10年的发展趋势,ZGC的优点大内存很大很大如下图所示,ZGC的目标主要有4个:支持TB量级的堆。 我们生产环境的硬盘还没有上TB呢,这应该可以满足未来十年内,所有JAVA应用的需求了吧。最大GC停顿时
2021-04-08 12:12:30 682
原创 GC垃圾收集器ParNew&CMS与底层三色标记详解
JVM系列文章目录提示:前面我们说了Minor GC与Full GC 但是GC垃圾收集器又很多种,咱们GC并没有细说 这里咱们细说一下GC垃圾回收器的机制算法在什么时候回收提示:GC没有大家想想的那么复杂神圣,请看我一一的道来,如果我哪里说的不对,清批评指正文章目录JVM系列文章目录前言一、垃圾收集算法二、垃圾收集器1.Serial收集器(-XX:+UseSerialGC -XX:+UseSerialOldGC)2.Parallel Scavenge收集器(-XX:+UseParallelGC(年
2021-04-07 17:36:52 555 3
原创 JVM对象创建与对象内存分配
JVM系列文章JVM对象创建的步骤和对象在堆内存的分配提示:看完记得点赞收藏哦!请多多指教JVM对象创建与对象内存分配JVM系列文章前言一、JVM对象创建?二、对象内存分配2.读入数据总结前言这里要说一下,这块我理解的没有那么透彻,请各位大佬批评指正一、JVM对象创建?前面咱们说过对象的,就绪,检查,准备,解析,初始化但是没有细说1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载
2021-04-06 17:44:20 374 1
原创 JVM指令手册
JVM指令JVM指令手册文章目录JVM指令前言一、JVM汇编指令是什么?二、JVM汇编指令代码前言JVM汇编指令 一、JVM汇编指令是什么?答:JVM也是操作系统他自己的语言,最后都是二进制字节码,计算机只认识010101,他不认识你写的那些代码,我只认识0101,我理解的是JVM自己的语言方便分析程序的执行步骤。网上说的都比较官方二、JVM汇编指令代码栈和局部变量操作 将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型
2021-04-02 12:59:18 387
原创 JVM结构与内存模型
JVM结构与内存模型 众所周知JAVA是跨平台的语言咱们通过JAVA C命令编译成的.class文件,一次编译导出运行,首先运行需要什么,我们的JAVA环境,JAVA虚拟机中(JVM),因为JVM调用底层C或者C++进行运行,不同的操作系统有不同的虚拟机,Windows系统有windows版本的,Linux有Linux的版本的底层实现不同,所以依赖不同的版本的虚拟机,.class一次编译到处运行提示:下面的环节可能有点绕我尽可能的说清楚先不细说 后面慢慢补充文章目录JVM结构与内存模型前言一、为什么
2021-04-02 12:43:33 801 6
原创 JDK源码JVM类加载机制
JVM类加载机制 首先我们的java小程序demo,经过编译后变成.class文件,他是如何加载到内存的将.class文件内存中有两大对象:1.类的字节码对象,只有一份在内存。2.类对象会有多份文章目录JVM类加载机制前言一、类加载运行全过程1.咱们先看图:2.其中loadClass的类加载过程有如下几步:加载:验证:准备:解析:初始化:二、类加载器和双亲委派机制1.Java里有如下几种类加载器看一个类加载器示例:类加载器初始化过程:如下源码:2.双亲委派机制为什么要设计双亲委派机制?沙箱安全机制:
2021-03-31 17:53:49 1499 13
原创 Linux安装单台Redis 6.2
文章目录前言一、Redis是什么?二、安装步骤 第一种1.安装2.使用Install_server.sh(可以执行多次) 第二种安装方式bind 127.0.0.1运行客户端前言Redis 6.2包括许多新命令和改进功能,但没有重大功能。它主要是使Redis更加完整,并解决许多用户经常或长时间要求的问题。提示:以下是本篇文章正文内容,下面案例可供参考一、Redis是什么?Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络..
2021-03-30 10:31:34 4688 15
原创 Redis原理介绍
文章目录前言:Redis原理介绍一、Redis是什么?二、Redis和Memcach对比1.为什么说Redis比Memcach要好?2.安装前言:Redis原理介绍首先我们想象一个场景,服务器里有一个文件,这个文件我想快速的查找出某个我想要的数据,Linux中有grep,awk等命令,我还可以用C,C++等各种语言,读取这个文件的IO流读取查找,这里会有一些什么问题?提示:一丶有一些大家都知道的常识,在计算机中,数据在磁盘的,磁盘的维度有两个指标,第一个是寻址,寻址的速度是毫秒级的,第二个..
2021-03-23 12:14:20 485 2
原创 Elastic-job三种模式(SPRING-实现)
什么是任务调度我们可以先思考一下下面业务场景的解决方案:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行系统需要在信用卡到期还款日的前三天进行短信提醒。某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。12306会根据车次的不同,而设置某几个时间点进行分批放票。某网站为了实现天气实时展示,每隔5分钟就去天气服务器获取最新的实时天气信息。以上场景就是任务调度所需要解决的问题。任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任
2021-01-28 15:38:11 1245
原创 Elastic-job三种模式(JAVA-API实现)
Elastic-Job java-api方式实现为什么要用定时任务?1.数据备份每天凌晨 每天凌晨2点,因为凌晨的时候系统不是繁忙,不使用定时任务,就是用人工操作2.心跳的监控,每隔10分钟去监听接口,是否正常,没有定时任务需要人工去查一下3.每隔5分钟去淘宝京东抓取订单,有些卖家在不同的平台上架,总不能商家去每隔平台定时自己拉取一下吧4.订单的支付,由于用户30分钟没有付款,自动取消该订单 是企业应用系统中必要的,是必须要的 解决掉了,大量的人力和物力 ,SpringTask 支持单点
2020-12-29 15:23:17 1049
原创 23种设计模式(九)桥接模式
桥接模式一般问题:一个类需要在两个以上维度扩展,采用继承方式会导致子类数量过多核心方案:将抽象部分与实现部分分离,使其都可以独立变化银行,我有活期账户,定期账户,不同的银行,打开账户public interface Account { Account openAccount(); void showAccountType();}public abstract class Bank { protected Account account; public Ba
2020-12-29 10:52:08 346 1
原创 23种设计模式(八)组合模式
组合模式树形结构,组合对象,单个对象,符合开闭原则,可以增加叶子节点根据课程举例子:课程与目录类组合 叶子节点public abstract class CatalogComponent { public void add(CatalogComponent catalogComponent){ throw new UnsupportedOperationException("不支持添加操作"); } public void remove(CatalogCo
2020-12-24 15:14:40 332
原创 23种设计模式(七)享元模式
享元模式享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。相似对象,对象的复用生活中的例子:年底了,部门领导要做汇报,有很多部门,但是汇报内容,今天给王总汇报,明天李总,正好是轮休,但是这个稿子,一份就行了实现了复用性部门接口public interface Employee { void report();}public class Manag
2020-12-24 11:50:43 330 1
原创 23种设计模式(六)适配器模式
适配器模式优点:1、可以让任何两个没有关联的类一起运行。2、提高了类的复用。3、增加了类的透明度。4、灵活性好。缺点:1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。2.由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。接下来我拿充电器举例子,我们平时用的家用
2020-12-24 10:01:02 326
原创 23种设计模式(五)装饰者模式
装饰者模式扩展原有对象的功能:我买个房子(对象),我装修(不在原有的对象上进行操作),就是装饰者,动态添加,动态撤销接下来我用代码举例子:早晨我要买早餐,买的煎饼(对象),(装饰者)我有点饿加一个鸡蛋,再加一个香肠,在加一包辣条,我感觉吃不饱,我又加了一个鸡蛋在原有的基础上进行扩展抽象煎饼类煎饼的描述,价格public abstract class ABattercake { protected abstract String getDesc(); protected abst
2020-12-24 09:46:40 375
原创 23种设计模式(四)外观模式
外观模式通过父系统调用子系统,也就是父系统是入口,调用不同的子系统,遵守迪米特法则,最少知道原则优点:简化调用过程,无需了解子系统,防止带来风险减少系统依赖,减少系统耦合性生活中的例子:例如我在CF官网,我用积分兑换,装备,我只需要知道我能兑换装备,我不需要他具体执行的什么,具体能不能到我的账号,内部验证积分是否充足,然后减抠积分,然后通过虚拟装备系统发放到某个人的账户装备public class Equipment { private String name; publi
2020-12-23 14:46:02 319 1
原创 23种设计模式(三)原型模式
原型模式原型模式的适用场景:1.类初始化消耗资源较多2.new一个对象需要非常繁琐的过程(数据准备,访问权限等)3.构造函数比较复杂4.循环产生大量对象时优点:1.原型模式比new一个对象性能要高2.简化创建过程缺点:1.必须配备克隆方法(必须重写object的克隆方法)2.对克隆对象,进行复杂改造的时候,容易引入风险重要的是克隆常用的场景:积分抽奖,邮箱,短信ctl +t 点击 那个箭头 进行搜索...
2020-12-23 12:18:22 359
原创 Spring security Oauth2+JWT
企业级认证授权技术一丶用户认证与授权每个项目最基本的也是最重要的是安全,用户认证与授权,是最重要的,用户认证身份。1.1什么是用户身份认证?用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认证表现形式有:用户名密码登录,指纹打卡等方式。1.2什么是用户授权?用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没有权限的资源将无法访问,这个过程叫用户授权。二丶SSO单点登录单点登录(S
2020-12-22 14:24:53 1206
原创 23种设计模式(二)单例模式
单例模式优点:在内存中只有一个实例,减少了内存的开销可以避免对资源的多重占用缺点:没有接口,无法扩展必须点私有构造器,线程安全的,序列化与反序列化对单利的破坏,反射攻击懒汉式单例模式public class LazySingleton { private static LazySingleton lazySingleton=null; private LazySingleton(){ } public static LazySingleton getInst
2020-12-18 19:29:51 422
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人