- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 Redis相关知识
一、redis的String、List、Hash底层数据结构1、Stringredis构建了一个叫做简单动态字符串(Simple Dynamic String),简称SDS代码结构:struct sdshdr{ // 记录已使用长度 int len; // 记录空闲未使用的长度 int free; // 字符数组 char[] buf;};动态扩展:1、计算出大小是否足够2、开辟空间至满足所需大小3、开辟与已使用大小.
2021-02-25 19:42:46
204
原创 java设计模式之代理模式原来并不难
一、引言在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。同时在不更改原对象源码的情况下可以对原对象的方法进行修改和加强,符合开闭原则。代理模式有两种:静态代理、动态代理。静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理:在程序运行时,运用反射机制动态创建而成。二、静态代理角色:抽象对象:真实对象和代理对象的公共接口。真实对象:代理对象所代表的
2020-12-13 23:49:06
245
原创 java经典算法之选择排序原来并不难
目录一、前言二、算法描述三、动图演示四、代码实现五、总结一、前言选择排序是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小元素(本文以增序为例),存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。二、算法描述n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下:1、第1趟排序开始时:有序区为空,无序区为arr[0,n-1];2、第i趟排序
2020-12-06 23:28:52
387
2
原创 java经典算法之冒泡排序原来并不难
一、算法描述冒泡排序是一种简单的交换排序算法,它的基本思想如下(本文以增序为例):1、比较相邻的元素,如果第一个比第二个大,就交换他们两个。2、从开始第一对到结尾最后一对执行步骤1操作,这样一趟下来,最后元素为最大的数。3、对待排序数组执行n-1趟步骤2操作,每趟执行完后最大数则会被交换到本趟最后位置,如下:第一趟是对前n个数执行n-1次比较,执行完后第n个则为本趟比较中最大的数。第二趟是对前n-1个数执行n-2次比较,执行完后第n-1个则为本趟比较中最大的数。.......
2020-12-06 18:42:18
860
2
原创 java设计模式之工厂模式原来并不难
一、简介工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式有三种:简单工厂模式、工厂方法模式、抽象工厂模式。二、简单工厂模式简单工厂模式由三类角色组成:抽象产品、具体产品、工厂类。 抽象产品(宝马):public abstract class BWM { /** * 宝马介绍 */ abstract void introduce();} 具体产品(宝马三系、宝马五系):...
2020-12-06 01:01:09
7427
41
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人