自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 AOP+责任链

自定义注解进行安全检查import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * @description: 安全检查 */@Target(ElementType.METHOD)@Retention(RetentionPo.

2022-03-22 14:17:22 254 1

原创 SpringBoot 集成 ShedLock (基于mysql)

目录ShedLock 简介代码数据库mavenyaml配置/任务SchedulerLock注解说明ShedLock 简介Shedlock从严格意义上来说,并不是一个分布式任务调度框架,设计的初衷也不是作为一个调度框架,而是一种分布式锁。所谓的分布式锁,解决的核心问题就是各个节点中无法通信的痛点。 各个节点并不知道这个定时任务有没有被其他节点的定时器执行,所以理论上只需要有一个各个节点都能够访问到的资源,用这个资源去标记这个定时任务有没有执行就可以了。ShedLock是一个在分布式环境中使用的定时任务框架

2022-02-09 17:09:46 695 1

原创 etcd中Raft协议

文章目录前言Raft协议Leader选举日志复制前言文章内容来自:《etcd技术内幕》 — 百里燊,感兴趣的读者可以去读一下。Paxos 算法和 Raft 算法:Paxos 算法诞生于 1990 年,这是一种解决分布式系统一致性的经典算法 。但是,由于 Paxos 算法非常难以理解和实现,不断有人尝试简化这一算法。到了2013 年才诞生了一个比 Paxos 算法更易理解和实现的分布式一致性算法—Raft 算法。Raft协议在正式开始介绍 Raft 协议之间,我们有必要简单介绍一下其相关概念。在分

2022-01-24 16:43:56 2593

转载 硬连接和软连接

硬连接和软连接参考博客链接文件系统简述硬连接软连接二者区别参考博客(整合)关于硬链接和软连接的区别(java)软连接_软连接与硬链接区别链接链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。文件系统简述文件系统简述:linux的哲学就是一切皆文件。为了方便人们的使用,我们可以通过看文件名来区分不同的文件。但作为只识别0 1 的机器,让它

2021-12-29 11:10:26 774

原创 mybatis源码分析

这里写目录标题一级目录一、ORM 框架简介二、Mybatis三、分析事例四、分析mybatis的运行过程一级目录一、ORM 框架简介对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在

2021-02-04 23:56:54 426

原创 java静态代理模式和动态代理模式(深入源码)

目录标题代理模式介绍定义为什么使用代理模式代理模式实现原理代理模式应用场景代理模式创建的方式静态代理基于接口实现接口继承方式实现动态代理JDK动态代理CGLIB动态代理代理模式介绍定义代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个生活中的例子: 比如我是一家火锅店的老板,为了提高火锅店的知名度,我想找个明星给我代言,宣传一下我的火锅店,可是我没有办法直接接触到明星,这时候就需要一个中介来协调这件事,我们知道明星都

2021-01-30 20:07:04 192

原创 五种基本单例模式

目录标题模式简介饿汉式懒汉式懒汉式(双重检验锁)静态内部类枚举类型模式简介单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。许多时候整个系统只需要拥有一个的全

2021-01-29 16:14:28 1027 1

原创 三种工厂模式详述

目录标题工厂模式概述简单工厂模式工厂方法模式抽象工厂模式工厂模式概述工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。何时使用:工厂模式将创建和使用分离,使用者不需要知道具体的创建过程,只需要使用

2021-01-29 15:14:53 476

原创 java实现红黑树(左旋,右旋,修复)

目录标题1. 红黑树的介绍2. 红黑树的变换规则3. 红黑树的Java实现(代码说明)1. 红黑树的介绍红黑树(Red-Black Tree 简称 R-B Tree),它是一种它一种特殊的二叉查找树。红黑树是一种特殊的二叉搜索树,意味着它满足二叉查找树的特征(简书):若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节点的左、右子树也分别为二叉查找树;没有键值相等的节点除了具备该特性之外,红黑树还包

2021-01-26 17:13:05 680

原创 ArrayList与LinkedList集合实现简单HashMap

目录equals和hashCode()ArrayListLinkedListequals和hashCode()在介绍ArrayList和LinkedList来实现基本的HashMap中的存储,我们有必要介绍一下equals()和hashCode()之间的区别1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。我们来看一个简单的例子:

2021-01-23 00:14:35 192 2

原创 Java的深拷贝与浅拷贝的几种方式

文章目录1、介绍2、浅拷贝3、深拷贝4、深拷贝和浅拷贝的区别5、浅拷贝的实现6、深拷贝的实现1、介绍关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象。可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解。2、浅拷贝浅拷贝就是获得拷贝对象的引用,而不是正真意义上的拷贝一个对象,例如 A a = new A(); A b = a;此时引用变量a和b 同时指向了同一个堆

2021-01-21 16:38:32 992 5

原创 HTTP中的重定向和请求转发的区别

一、调用方式我们知道,在servlet中调用转发、重定向的语句如下://请求转发1:request.getRequestDispatcher("a.jsp").forward(request,response);2:public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ //获取上下文对象 Servl

2021-01-13 18:18:10 533

原创 Jvm------内存结构之类加载

首先我们先大概的认识一下java虚拟机的基本内存结构,大概分为四个大的部分,类加载系统,运行时数据区(Runtime Data Area),执行引擎,本地方法接口,这里有一张图,可以参考一下本篇博客主要是从类的加载过程进行讲述,首先java虚拟机是运行在操作系统之上的,并没有直接的与硬件进行直接的交互,所以在不同的操作系统之上有不同的虚拟机,目前市面上比较的主流的虚拟机有多种,本文主要以HotSpot虚拟机来讲解,同样Hotspot虚拟机也是jdk8中默认使用的虚拟机。Java代码的执行流程我们运

2020-12-14 20:35:03 101

原创 源码分析HashMap

二:源码说明HashMap大家可以看一下: 图解说明HashMap有助理解。文章有点长,希望读者可以耐心读下去,一定会有收获!一、构造函数让我们先从构造函数说起,HashMap有四个构造方法1.1、HashMap() // 1.无参构造方法、 static final float DEFAULT_LOAD_FACTOR = 0.75f; // 构造一个空的HashMap,初始容量为16,负载因子为0.75 public HashMap() { th

2020-10-21 21:27:13 107

原创 剖析HashMap

一: 图解说明HashMapHashMap最擅长的事情就是快速索引,那么它到底是如何组织数据来达到这一目的的呢? 我们先抛出这个问题,往下看。在介绍HashMap之前 我们先来看一看基础的数据结构,如果比较了解可以直接跳过数组提起数组,相信大多数人都不陌生,那么数组到底是什么,数组的本质是一块连续的内存空间,存放着具有共同特性的内容,因为是一块连续的内存,我们就可以快速的定位,我们可以通过数组的下标直接对其进行操作。数组的缺点让我们看下面这张图我们定义了一个长度为7的数组,里面存放着4个数据,现在

2020-10-21 13:24:30 153

转载 Codeforces Round #554 (Div. 2)C. Neko does Maths

C. Neko does Mathstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputNeko loves divisors. During the latest number theory lesson, he got an inter...

2019-08-12 16:19:41 100

原创 简单的搜索题目整合

八月五号开始接触了搜索,常见的搜索目前接触到的也就是dfs 个人感觉dfs很不好理解,不好写 ,难点在于深搜,标记,回溯吧。这几天做了一些dfs,bfs的题目,多多少少十多道吧,dfs有数独,找数,棋盘等,bfs就比较多了,大概有最普通的二维,三位迷宫问题,同时对于一些求最短的路径的保存,以及一些特殊问题求最少次数等等这些应该是bfs的题眼了吧,目前接触的bfs中,碰到了个人觉得很恶心的题目,还没...

2019-08-09 16:51:25 1226

原创 POJ1061 青蛙的约会 扩展欧几里得

贴一篇关于解ax+by=c方程最小整数解的题解吧;题目连接:http://poj.org/problem?id=1061要做此题,先要明白几个定理,为保严谨性我按顺序一一证明出来(心病,不证明的话用得不踏实啊!不然我就不用跑来GDCC了!)唉,证明太枯燥无味了,先说一下题意吧。公青蛙一开始在x位置,母青蛙在y位置。公青蛙每次跳m米,母青蛙每次跳n米,并且都是向右跳的。地球经线长度是L,然后...

2019-08-09 08:25:03 156

原创 8.1训练赛

纪念一下八月一号惨痛的训练赛;题目1:https://vjudge.net/contest/315887#problem/A思路:给你两个整数x,y让你求中间值,x+y/2;字符串也一样,因为每个字母都对应一个ASCII码,每个字符都可以看成一个数字。字符串就可以看成是一个26进制的数字字符串,其中’a’就是0,然后其它字母减去‘a’ 就是它们对应的数字,就像10进制,0到9 有0有9,先把每...

2019-08-03 21:53:23 213

原创 弱鸡理解的kmp!

写写我对kmp的理解吧,kmp算法就是对于两个串的匹配,一个文本串S,一个模式串T,用T来匹配S对于kmp算法的关键就是next数组的解读了,网上博客千万,各有观点吧,首先说一下我理解的next数组,next数组里面存入的值比如 next[3]=1;就是这个串abacdedf(比如说)next[3]就是代表aba这个串相同的前缀后缀,这里插入一下前缀后缀:( 例如字符串:abcdab 它的前...

2019-08-03 17:20:28 135

原创 心得吧

从开始到集训已经持续了有七八天了,大大小小也是学到了很多东西,当然也得到了很多不懂的东西,明白了差距,不说废话了,总结一下最近学到的东西吧,从开始的贪心,二分,尺取,以及单调栈,单调队列,到kmp,数论的东西,欧拉算法,矩阵的快速幂,快速素数筛,逆元等等。就从今天的开始吧 :gcd模板:int gcd( int a ,int b){return b==0? a :gcd( b,a%b);...

2019-08-03 15:11:27 132

原创 Codeforces Global Round 1 B(暴力)

题目链接:http://codeforces.com/contest/1110/problem/B题目大意:三个整数 n,m,k,m表示坏的最大数目,要求你使用最小的胶布来修复,每段长度为1厘米思路:开一个数组,记录下每两段之间的差值,sort排序,for循环累加需要的次数;代码如下:#include <iostream>#include <algorithm>...

2019-05-18 08:08:57 113 1

原创 Codeforces Global Round 1 A. Parity

Codeforces Global Round 1 A. Parity题目链接 http://codeforces.com/contest/1110/problem/A题目大意:输入两个数字 n,k,包括一个数组a,由公式 n=a1⋅bk−1+a2⋅bk−2+…ak−1⋅b+ak,计算结果,如果结果是偶数 怎输出 “even”,否则输出"odd"思路:for循环叠加结束!代码如下#incl...

2019-05-18 07:56:53 113 1

空空如也

空空如也

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

TA关注的人

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