自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深刻理解归并排序

「归并排序」核心就是每个数组「两两比较」并合并,直至只剩下一个数组。我们通过图片的方式,来排序一个数组为例。

2023-12-27 17:22:37 382

原创 深刻理解快速排序

「理解快速排序」的关键在于理解它「分区」的过程。本文以数组 [4, 1,5,3,6,2,7,8] 为例分析这分区的过程。

2023-12-26 20:45:58 421

原创 剑指Offer第一章——整数

例如,如 果输入的数组为[0,1,0,1,0,1,100],则只出现一次的数字是 100。["abcw","foo","bar","fxyz","abcdef"],数组中的字符 串"bar"与"foo"没有相同的字符,它们长度的乘积为9。的长度乘积的最大值。"abcw"与"fxyz"也没有相同的字符,它们长度的乘积为16,这是 该数组不包含相同字符的一对字符串的长度乘积的最大值。为4,由于0、1、2、3、4的二进制形式中1的个数分别为0、1、1、2、1,因此输出数 组[0,1,1,2,1]。

2023-07-25 17:36:33 314

原创 Java反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.反射就是把java类中的各种成分映射成一个个的Java对象。

2023-07-19 20:40:44 1023

原创 树状数组讲解

全面讲解 从暴力到线段树再到树状数组

2023-07-07 10:50:47 114

原创 Redis 缓存雪崩、缓存击穿、缓存穿透

缓存是一种提高系统性能的一种常见手段,其中 Redis 是一种常用的高性能缓存数据库。但是在使用缓存时,可能会遇到一些问题,比如缓存雪崩、缓存击穿、缓存穿透等问题。

2023-06-18 11:43:17 1698

原创 Redis 哨兵模式

当其他哨兵也检测到主服务器不可用,并且达到一定数量时,那么哨兵之间就会进行一次投票,投票的结果有一个哨兵发起,进行 failover 故障转移操作。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行 failover 过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象称为。是一种特殊的模式,首先 Redis 提供了哨兵的命令,哨兵是一个独立的进程,他会独立运行。之后,Redis正是提供了 Sentinel(哨兵)来解决这个问题(,让各个哨兵把自己监控的从服务器实现切换主机,这个时候称为。

2023-06-17 11:59:42 1498

原创 Redis 主从复制

Master 接收到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,Master 将传送整个数据文件到 Slave,并完成一次。:在主从复制的基础上,配合读写分离,由主节点进行写操作,从节点进行读操作,分担服务器的负载;,从机依旧连接主机,但是没有写操作,如果从机中途恢复正常,从机依旧可以获取主机写的内容。如果使用命令行配置,从机重启,就会变为主机(只有变为从机,才能获取之前主机内容),期间,主机继续写新内容,只要从机恢复,就可获得主机写的新内容。

2023-06-14 23:28:13 1099

原创 Redis.conf 详解

我们启动 Redis,一般都是通过 Redis.conf 启动。因此,我们必须了解 Redis.conf 的配置,才能更好理解和使用 Redis。

2023-06-12 21:46:08 521

原创 Redis 内存管理机制

Redis作为一个内存数据库,内存资源非常珍贵。因此,Redis引入了3种内存管理机制来释放不必要的内存,包括定期删除、惰性删除和内存淘汰机制。

2023-06-11 20:02:20 1277

原创 Redis 持久化存储机制:RDB 和 AOF

Redis(Server)是一个高性能的键值存储系统,它可以将数据存储在内存中以实现快速访问。为了保持数据的持久性,提供了两种数据持久化方法:RDB 和 AOF。

2023-06-11 19:15:47 813

原创 乐观锁和悲观锁

乐观锁和悲观锁是常用的并发控制方式,主要用于保证多线程或多进程对共享资源的操作同时进行时,数据的正确性和一致性。

2023-06-11 16:44:38 842

转载 我们为什么要分库分表?

如果出现数据库问题不要着急分库分表,先看一下使用常规手段是否能够解决。分库分表会给系统带来巨大的复杂性,不是万不得已建议不要提前使用。作为系统架构师可以让系统灵活性和可扩展性强,但是不要过度设计和超前设计。在这一点上,架构师一定要有前瞻性,提前做好预判。

2023-05-31 21:04:53 68

原创 Redis 事务详细介绍

③左边执行事务,发现执行操作返回nil,查看money和out,发现事务并没有被执行(确实有乐观锁的效果)一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!,所有的命令在事务中,并没有直接被执行,只有发起执行命令时才执行。②左边支出20元(但是不执行事务),然后右边修改money的数值。注意:Redis单条命令是保证原子性的;①开启俩个,客户端,模拟多线程情况。执行成功(单线程没有干扰情况)

2023-05-30 11:16:45 412

原创 Java 8函数式编程(Lambda表达式,Optional,Stream流)

Lambda是 JDK8 中的语法糖,它可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作。

2023-05-15 01:00:50 272

原创 2023/05/08~14 刷题记录

CF 刷题 +12

2023-05-14 15:21:02 478

原创 Redis 三大特殊数据类型常见命令

进阶 Redis 三大特殊数据类型 必学 命令!!

2023-05-12 17:54:10 813

原创 Redis 五大基本数据类型常见命令

Redis 必记命令!!!

2023-05-10 20:42:13 655

原创 2023/05/02~07 刷题记录

题义:题解:读完题目可以想到直接暴力,但是肯定超时别想了。因为 a b c 都是素数,所以我们可以先求出所有的素数 进行减少循环的次数,然后遍历。在遍历过程中,我们也要去进行剪枝 ,如果说 a 的五次方大于了目标值,那后面肯定就都大于了,以此类推。

2023-05-07 19:38:08 567

原创 2023/04/27~28 刷题记录

数字111的所有数字都等于1,所以它的幸运度是0。所以我们可以得到,一个 2 的贡献为 序号 i,那么所有的贡献值为 1,2,3,,,n。题目让我输出一个 没有冲突的方案,如果一个人在多天都能得奖,那么我们任选其中一天让他得奖,这种人可能存在多个,我们把同一天的这类人看成一组,这一天我们选择了这组中的其中一个人相当于选择了这个组,在之后就不能再选择属于这组中的人了。然后题目等价与在每天的那个组中选一个人,总的集合 向 当前天的选择的那个人(总的集合没有的人) 连边,然后这一天的这一组也属于 总的集合。

2023-04-28 20:56:12 314

原创 2023/04/26 刷题记录

李华有一个大小为n x n的图案,每个细胞不是蓝色就是红色。在母次操作中,他选择一个单元格并将其颜色从红色变为蓝色或从蓝色变为红色。每个单元格可以任意选择。有没有可能做出和旋转180度相匹配的图案?这道题就是判断 180° 旋转后,是否为一样的图案。那么只需要遍历上半的图形,和下半的对比,不一样就记录一下 +1。主要是判断奇偶,分别判断。假设你是李华,请解决这个问题。

2023-04-26 23:35:11 69

原创 Redis到底是多线程还是单线程?

Redis的单线程与多线程

2023-04-26 23:24:44 844

原创 2023/04/24 ~ 25 刷题记录

使用Java刷题记录

2023-04-25 23:50:56 388

原创 Java集合详解(含JDK1.8源码)(完结)

Java集合底层源码详解(包含 ArrayList、Vector、LinkedList、HashSet、HashMap、LinkedHashSet、LinkedHashMap 集合)

2023-04-20 21:44:59 465 1

原创 Java的自定义异常类

继承自Exception类或某个子Exception类定义属性和方法,或重载父类的方法对于异常,不仅要进行捕获处理,有时候还需要将此异常进一步传递给调用者,以便让调用者也能感受到这种异常。将当前捕获的异常再次抛出:throw e;重新生成一个异常,并抛出,如:throw new Exception("some message");重新生成并抛出一个新异常,该异常中包含了当前异常的信息,如:throw new Exception("some message", e);

2023-04-05 19:04:17 191

原创 Java的异常处理

Java的异常处理

2023-04-05 13:51:46 49

原创 binary_search()、lower_bound()、upper_bound()的实现

在二分中一般有两种基本的实现方法,一种为左闭右闭(也是我使用的)另一种为左闭右开区间。

2023-04-02 11:02:31 101

原创 蓝桥刷题小结

题解:本题要求子矩阵,如果使用遍历循环去求解子矩阵中的元素之和肯定是超时的。这个时候我们很容易想到使用前缀和去优化求解元素之和的问题,在二维矩阵中又叫二维前缀和。在矩阵中,需要确定一个矩阵需要一个左上角顶点和一个右下角的顶点。二维前缀和求解的矩阵为从sum[i][j]的表现形式,解释为左上角顶点为(1,1)、右下角为(i,j)的顶点所组成的矩阵内的元素之和。二位前缀和求解公式:sum[i][j]prefixSum(一维前缀和);

2023-03-31 16:18:09 124 3

原创 第十二届蓝桥杯B组省赛部分真题

dfs、dp

2023-03-26 20:40:40 87

转载 lower_bound()和upper_bound( )函数

从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。:从数组的begin位置到end-1位置二分查找第一个小于或等于num的数字,找到返回该数字的地址,不存在则返回end。:从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。:从数组的begin位置到end-1位置二分查找第一个小于num的数字,找到返回该数字的地址,不存在则返回end。的方法在一个排好序的数组中进行查找的。

2023-03-26 19:46:59 79

原创 Apache Commons Math库求解线性规划问题

Apache Commons Math 是一个非常流行的 Java 数学库,其中包含了求解线性规划和非线性规划问题的功能。

2023-03-22 23:30:55 1847

原创 C++中的STL库学习使用

学习使用C++中STL库的使用方法

2023-03-21 21:12:14 70

原创 swagger入门使用

swagger入门使用

2023-03-12 22:02:32 37

原创 《Java语言程序设计》第九章——对象与类

其次,它使类变得难以维护,容易出现错误。比如一个圆类,它的属性中有半径这个属性,故修改半径时应该确保半径是一个非负数。在创建引用对象数组时,创建出来的对象数组的引用值为null,所以就要给数组中每一个数据都要创建一个新的引用对象。在传递基础数据类型时,传递的就是数据的值,而在引用数据类型传递时,传递的将是引用对象的地址。如果一个引用类型的数据域没有引用任何对象,那么这个数据域就有一个特殊的Java值null。首先,数据可以被篡改。如果没有做封装数据可以直接被修改,可以被错误设置为任何一个值。

2023-03-09 16:15:43 71

原创 《Java语言程序设计》第四章——数学函数、字符和字符串

读书笔记。

2023-03-07 14:20:27 74

原创 《Java语言程序设计》第三章——选择

【代码】《Java语言程序设计》第三章——选择。

2023-03-06 21:04:15 46

原创 EXISTS与NOT EXISTS理解

SQL中EXISTS和NOT EXISTS的简单运用。

2023-03-01 11:29:25 81

原创 《Java语言程序设计》第二章——基本程序设计

《Java语言程序设计》第一天读书笔记。

2023-02-28 20:52:44 74

原创 剑指Offer第三天

了解String构造函数,replace和replaceAll 的区别

2023-02-24 14:55:22 34

原创 微服务中Nacos和Eureka的区别

微服务中Nacos和Eureka的区别。

2023-02-16 16:13:44 69

空空如也

空空如也

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

TA关注的人

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