- 博客(13)
- 收藏
- 关注
原创 Spring几个基础后置处理器总结
一 总结总结下Spring几个基础后置处理器的使用方法和调用时机二 BeanFactoryPostPrecessor作用于所有被Spring管理的类都转换成BeanDifinition缓存到BeanDifinitionMap中但还都未进行实例化中调用,可以在此时操作BeanDifinition,可以有多个并且可以使用Order接口进行排序。@Componentpublic class MyBeanFactoryPostProcessor implements BeanFactoryPostProc
2021-05-07 19:21:37
755
转载 基于Docker的Mysql主从复制搭建
为什么基于Docker搭建?资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别利用Docker搭建主从服务器首先拉取docker镜像,我们这里使用5.7版本的mysql:docker pull mysql:5.7然后使用此镜像启动容器,这里需要分别启动主从两个容器Master(主):docker run -p 3339:330
2021-04-17 17:56:48
129
转载 深入浅出Zookeeper
ZooKeeper 是一个分布式协调服务,由 Apache 进行维护。ZooKeeper 可以视为一个高可用的文件系统。ZooKeeper 可以用于发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能 。一、ZooKeeper 简介1.1 ZooKeeper 是什么ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式..
2021-02-05 21:25:05
337
转载 Mysql B+树图解
这一次我们来介绍 B+ 树。一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。一个m阶的B+树具有如下几个特征:1.有k个子树的中间节点包含有k个元素(B树中
2021-01-30 17:56:56
874
转载 从ReentrantLock分析AbstractQueuedSynchronized源码
1.示例代码ReentrantLock lock = new ReentrantLock();lock.lock();lock.unlock();2.ReentrantLock构造方法private final Sync sync;//空构造的情况创建一个非公平锁public ReentrantLock() { sync = new NonfairSync();}//传boolean值,true的情况创建一个公平锁,false创建一个非公平锁public Ree..
2021-01-23 16:46:50
107
转载 聊聊经典数据结构HashMap,逐行分析每一个关键点
1 简介 HashMap是一个使用非常频繁的键值对形式的工具类,其使用起来十分方便。但是需要注意的是,HashMap不是线程安全的,线程安全的是ConcurrentHashMap(Hashtable这种过时的工具类就不要再提了),在Spring框架中也会用到HashMap和ConcurrentHashMap来做各种缓存。从Java 8开始,HashMap的源码做了一定的修改,以此来提升其性能。首先来看一下HashMap的数据结构: 整体上可以看作是数组+链表的形式。数组是为了进行快速检索,而
2021-01-23 15:08:07
6866
转载 史上最清晰的「归并排序」讲解
分治法顾名思义:分而治之。就是把一个大问题分解成相似的小问题,通过解决这些小问题,再用小问题的解构造大问题的解。听起来是不是和之前讲递归的时候很像?没错,分治法基本都是可以用递归来实现的。在之前,我们没有加以区分,当然现在我也认为不需要加以区分,但你如果非要问它们之间是什么区别,我的理解是:递归是一种编程技巧,一个函数自己调用自己就是递归; 分治法是一种解决问题的思想: 把大的问题分解成小问题的这个过程就叫“分”, 解决小问题的过程就叫“治”, 解决小问题的方法往往是递归
2021-01-23 13:57:19
201
转载 史上最清晰的「快速排序」讲解
分治法顾名思义:分而治之。就是把一个大问题分解成相似的小问题,通过解决这些小问题,再用小问题的解构造大问题的解。听起来是不是和之前讲递归的时候很像?没错,分治法基本都是可以用递归来实现的。在之前,我们没有加以区分,当然现在我也认为不需要加以区分,但你如果非要问它们之间是什么区别,我的理解是:递归是一种编程技巧,一个函数自己调用自己就是递归; 分治法是一种解决问题的思想: 把大的问题分解成小问题的这个过程就叫“分”, 解决小问题的过程就叫“治”, 解决小问题的方法往往是递归
2021-01-23 13:39:26
146
原创 Mysql中停止sql相关知识和技巧总结
因为工作原因,做了一个数据准备相关的项目,里面有部分是对数据库的任务管理,生成具体的任务,任务是执行用户的自定义sql,也可以是存储过程,然后可以启动和终止。启动很简单,终止看起来也很简单,就是拿到这条sql对应的数据库进程id,然后kill即可。但是实际操作在获取进程id的时候会有很多的坑,下面我一一介绍。一 首先是普通sql首先先简单介绍下数据库的进程id通过上图方式即可查询到数据库当前运行的sql信息,看到Info这个字段了吗?他就是你执行的sql,通过比对sql很容易获取到进程id,然后ki
2020-09-10 00:03:42
783
原创 测试Mybatis批量查询和使用HashMap查询效率
一 首先准备工作100万条数据Mybatis批量查询使用HashMap存储所有数据,然后从Map中获取需要的数据二 开始测试 先测试查询其中的10w条Mybaits批量查询 多次点击最终稳定在1.1秒左右HashMap查询 多次点击最终稳定在3.7秒左右三 测试查询其中的20w条Mybaits批量查询 多次点击最终稳定在2.5秒左右HashMap查询 多次点击最终稳定在4.2秒左右四 测试查询其中的30w条Mybaits批量查询 多次点击最终稳定在3.5秒左右
2020-08-22 23:37:39
915
原创 微信小程序登陆注册界面前后端完整代码展示
微信小程序登陆注册界面前后端代码展示一首先是前端页面效果图二 登陆限制登陆没设置太多限制,都输入正确就登陆成功,失败就显示下图三 注册限制注册主要现在三点1 用户名不能重复,否则显示下图效果2 前后密码必须一致,否则显示下图效果3 任意位置不能为空,否则显示下图效果同时满足上面三点则注册成功跳转到登陆界面(其他验证方法可自行选择添加,方式相同)四 登陆部分完整代码...
2020-01-14 19:09:58
34071
18
原创 序列化与反序列化解析和案例
**序列化与反序列化解析和案例一 什么是序列化?1–java序列化是指把java对象转换为字节序列的过程,而java反序列化是指把字节序列恢复为java对象的过程2–序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把 对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存的java对象的状态以及相 关的描述信息。序列...
2020-01-13 18:31:35
362
原创 获取0-任意范围所有随机整数的值(不重复)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-01-13 18:19:44
418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人