自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LFU算法代码实现记录一下

开头最后参考 LFU算法详解

2021-03-29 11:46:28 540 3

原创 mysql主从架构记录一下

mysql主从架构开局准备主从理论同步原理主从搭建主数据库搭建从数据库搭建主从同步测试主从同步扩展GTID同步集群模式集群扩容半同步复制搭建半同步复制模式主从架构数据延迟mysql高可用方案开局准备mysql 8.0.20版本和两台centos7服务器。关于Linux安装mysql,可以自行百度,也可以使用宝塔工具进行搭建mysql,或者也可以使用docker搭建mysql镜像。主从理论MySQL的主从集群搭建,可以解决MySQL的数据存储和访问压力。保证数据安全:MySQL主从配置相当于

2021-03-21 03:26:31 2876 3

原创 mysql高级优化二记录一下

mysql高级优化二记录一下开局准备,先创建示例表和示例数据分页优化mysql的表关联常见的有两种算法嵌套循环链接算法(Nested-Loop join 简称:BLJ)基于块的嵌套循环链接算法(Block Nested-Loop join 简称:BNL)所以mysql关联优化in 和 exsits优化count(*)优化mysql数据类型数值类型时间类型字符串类型INT显示宽度其他优化方式开局准备,先创建示例表和示例数据‐‐ 示例表: CREATE TABLE `t1` ( `id` INT ( 1

2021-03-19 17:56:22 146

原创 mysql覆盖索引优化记录一下

开局准备,先创建一张表和写数据CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMMENT '职位', `hire_tim.

2021-03-16 20:52:46 198

原创 Java高级操作记录一下

2021-03-15 21:47:08 168

原创 希尔排序记录一下

前言

2021-03-15 20:33:21 76 1

原创 插入排序记录一下

前言插入排序

2021-03-10 10:58:03 74

原创 选择排序记录一下

前言选择排序是一种类似冒泡排序的排序算法,每次循环都会选择出最小的一个元素,然后放在数组的最左边。相对于冒泡排序,选择排序的优势没有在最里层进行元素交换,减少了元素的交换次数,但是如果是相同的元素可能会打乱原有的顺序,所以是不稳定排序。选择排序的时间复杂度和冒泡排序一样都是O(n^2)。选择排序下面是代码实现:/** * 选择排序 * * @param args */ public static void main(String[] args

2021-03-09 17:47:01 79 1

原创 冒泡算法记录一下

前言冒泡算法算是以前在学校里最早接触的算法之一了。因为简单易懂,基本上很多人都了解其基本原理。但是因为其排序方式简单粗暴,针对每个元素都依次遍历比较,所以其时间复杂度O(n^2),是一种效率低下的排序算法。这次用于记录一下对冒泡排序的基本实现和一些优化操作。冒泡算法一基础冒泡算法实现: /** * 冒泡算法 - 1 * * @param args */ public static void main(String[] args) {

2021-03-09 16:20:57 106

原创 手撸一个线程池

常规开头多线程编程是在开发过程中非常基础且非常重要的一个环节,基本上任何一家软件公司或者项目中都会使用多线程。当然在项目中通常都是通过线程池的方式执行多线程任务。看线程池执行流程和源码设计有助于提升我们多线程编程技术和解决工作中遇到的问题。很久之前就看过ThreadPoolExecutor线程池源码,了解其执行过程。这次准备手撸一个简单版的线程池加强一下对执行流程的理解。简单的过程废话不多说,直接上代码/** * @Author: ZRH * @Date: 2021/3/5 15:13

2021-03-05 17:15:18 256 2

原创 redisson分布式锁的执行源码分析记录一下

很简单的开头之前在项目中有使用redisson作为分布式锁的实现方式,就想着看看它的源码的执行流程,然后记录一下。乱排版的中间废话不多说,先看一下项目中redisson使用方法:<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.12.3</version>

2021-03-04 20:49:48 326 2

原创 Map中value赋值null记录一下

hashmap和concurrenthashmap关于key-value设置为null的理解:因为使用场景的问题,hashMap是线程不安全集合适用于单线程场景。concurrenthashmap是线程安全集合适用于多线程场景。在单线程场景中,如果hashMap对value设置为null,那么在get(key)时返回null。这时可能存在两种情况,一种是hashMap里面没有对应的key-value,一种是给对应key设置了一个null的值。在单线程环境中可以用hashMap.containsKey(k

2021-03-01 16:07:47 3119 1

原创 多线程异常了会怎样?

多线程中如果一下线程发生异常,会有什么结果。这里都是使用Executor线程池:1,如果是用execute方法执行线程,那么会直接抛异常:如果是用submit方法提交线程,不会直接打印异常,而是需要调用future.get()方法才会打印异常。2,当线程抛异常后不会影响其他线程。3,当线程抛异常后,线程不会回收到线程池而是直接移除线程,并且创建一个新的线程放入线程池中。...

2021-03-01 14:29:40 138

空空如也

空空如也

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

TA关注的人

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