自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式——工作中对面向接口编程、工厂模式的使用

简单工厂模式。

2024-04-15 17:14:52 436

原创 代码重构—责任链模式在项目中的使用

定义优点缺点。

2024-04-12 17:07:57 315

原创 Redis——整数集合

Redis——整数集合​ 整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现整数集合的实现​ 整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,可以保存类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素每个intset.h/intset结构表示一个整数集合typedef struct intset { //整数集合中元素的编码方式 u

2021-09-26 10:52:24 459

原创 Reidis——跳跃表

跳跃表​ 跳跃表(skiplist)是一种有序的数据结构,它通过在每一个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的​ 跳跃表查找节点的平均时间复杂度为O(lonN)、最坏为O(N),但需要维护几个指向其他节点的指针,空间复杂度为O(N),还可以通过顺序性操作来批量处理节点​ 在大部分情况下,跳跃表的效率可以和二叉平衡树相同,并且跳跃表的实现较为简单​ Redis使用跳跃表作为有序集合Zset的底层实现之一,当一个有序集合包含的元素数量较多或者一个元素的成员是比较长的字符串时,Red

2021-09-25 15:01:45 123

原创 Redis——字典

Redis——字典​ 字典,又称为符号表、关联数组或映射(map),是一种用于保存键值对的抽象数据结构​ 在字典中,一个键key映射一个值value ,通过key来操作value ,因此字典中的key必须是唯一的​ 在Redis中,字典被用于Redis数据库的底层实现,也就是说我们存储的五大Redis数据类型String,List,Set,Zset,Hash 都被存储在字典里,并且数据类型Hash的底层实现之一也是字段字典是实现​ Redis的字典使用哈希表作为底层实现,一个哈希表里面有多个哈

2021-09-23 08:49:59 841

原创 Redis——链表

Redis——链表​ 由于Redis使用C语言来编写的,而C语言中并没有像其他语言一样拥有自己内置的数据结构,显然链表在C语言中也没有内置的,故Redis实现了自己的链表结构​ 链表在Redis中应用十分广泛,如列表的底层实现之一 就是链表,当一个列表中的元素比较多或者列表中包含的元素是比较长的字符串时,Redis就会使用链表来作为列表的底层实现,并被用于发布/订阅,保存客户端状态信息,客户端输出缓冲区 等等链表和链表节点的实现​ 链表节点被定义在adlist.h下的 listNode 结构体中

2021-09-22 10:25:30 152

原创 简单动态字符串

简单动态字符串​ Redis直接构建了一种名为简单动态字符串(Simple Dynamic String,SDS) 的抽象类型来作为Redis的默认字符串表示,而没有使用C语言中传统的字符串表示​ 使用SDS是由于Redis中的字符串类型是需要经常改变的,而如果使用原生的C语言字符串的话就会有较多限制和缺陷,所以C字符串常作为Redis中的字符串常量使用,如输出日志​ SDS作为Redis中最常使用的数据类型,如Redis中的五大数据类型中的键都是用SDS来保存的,还被用于缓冲区(AOF缓冲区,客户端

2021-09-21 19:04:23 192

原创 排序--java

#排序算法冒泡排序Bubble Sort​ 冒泡排序是通过依次比较相邻两个元素的值,将最大的元素往后调或最小的元素往前调,如果两个元素值相等则不会改变它们在序列中的顺序,故冒泡排序是稳定的稳定排序是指如果一个待排序序列中有两个或两个以上值相同的元素,再排序后它们的相对顺序没有改变 /* * 对于冒泡排序,假设传入的对象长度为n,则需要进行两轮for循环 * 最坏情况是每个元素都需要进行比较并交换,则比较和交换的次数为:n+(n-1)+...+1,总共执行次数是:2

2021-09-20 19:01:23 64

原创 RabbitMQ重要知识

RabbitMQ一、RabbitMQ简介消息中间件​ 消息(Message)是指在应用间传送的数据​ 消息队列中间件(Message Queue Middleware,简称MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成​ 消息队列中间件又称为消息中间件,它一般由两种消息传递模式:点对点模式(P2P)和发布/订阅模式(Pub/Sub),消息中间件提供基于存储和转发的应用程序之间的异步数据发送RabbitMQ​ RabbitMQ是采用Er

2021-08-28 08:06:55 400

原创 Nginx知识大全

Nginx文章目录Nginx一、Nginx简介二、Nginx安装三、Nginx目录结构一、Nginx简介​ Nginx是一个高性能的HTTP和反向代理 服务器,同时也是一个 POP3/SMTP 代理服务器Nginx的特点速度更快、并发更高:Nginx底层使用了多线程和I/O多路复用(epoll,Linux内核在2.6后开始支持epoll模型)配置简单、扩展性强:Nginx本身由很多个模块组成,可以自由的添加删除模块高可靠性:一个Master进程管理多个Worker子进程,并且在一个Wor

2021-08-25 13:01:41 697

原创 Redis全套笔记

Redis文章目录Redis一、Redis简介二、Redis数据类型String(字符串)Hash(哈希)列表(List)集合(Set)有序集合(Sorted Set)三、Redis必备命令键(Key)命令HyperLogLog命令脚本命令连接命令服务器命令配置相关命令四、Redis数据库五、Redis客户端与服务器Redis服务器服务器函数六、Redis底层数据结构七、Redis事务八、Redis消息订阅九、Redis持久化十、Redis集群十一、Redis高级功能一、Redis简介​ Redis

2021-08-10 11:10:18 190

原创 Java之并发编程JUC

Java 并发编程JUC并发与并行​ Rob Pike 对并发与并行的描述并发(concurrent)是同一时间应付(dealing with)多件事情的能力并行(parallel)是同一时间做(doing)多件事情的你能力对于单核CPU来说,多个线程是并发执行的,由操作系统的任务调度器调度线程间的轮流、交替执行对于多核CPU来说,多个线程可以是并行执行的,有几核则可以同时运行几个线程同步与异步​ 从方法调用的角度:如果方法需要等待结果返回才能继续往下执行,则该方法

2021-07-19 17:48:08 73

原创 Java内部类

Java内部类​ 内部类(内部定义的普通类、抽象类、接口的统称)是指一种嵌套的结构关系,即在一个类的内部定义一个类结构。内部类可以方便地访问外部类的私有属性,外部类也同样可以访问内部类的私有属性,内部类通常为外部类提供服务而存在。​ 内部类虽然定义在外部类的内部,但本身也是一个完整的类,也可以进行实例化,但实例化内部类必须先获取相应的外部类实例对象后,才可以利用外部类的实例化对象进行内部类对象的实例化操作外部类.内部类 内部类对象 = new 外部类().内部类();内部类私有化​ 如果一个

2021-07-18 19:42:18 75

原创 HashMap源码分析

HashMap(JDK1.7一、HashMap构造函数实例化HashMap对象//通常我们会这样来实例化一个HashMap对象Map hashMap = new HashMap();//指定容量Map hashMap = new HashMap(16);//指定容量和加载因子Map hashMap = new HashMap(16,0.75f);而这三个构造函数背后是怎样的呢?我们依次来看源码。在HashMap类中,有两个静态常量与HashMap对象的实例化息息相关,它们分别是默认

2021-07-18 19:41:11 99

原创 JVM之垃圾收集器与内存分配策略

垃圾收集器与内存分配策略一、概述​ 了解垃圾收集和内存分配能够在我们需要排查各种内存溢出、内存泄漏等问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”技术实施必要的监控和调节。​ Java运行时区域中的程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,栈中的栈帧随着方法的进栈和出栈而有条不紊地执行,每一个栈帧中分配多少内存基本上式类结构确定的,这几个区域的内存分配和回收都具备确定性,当方法结束或线程结束时,内存自然就跟着回收了。​ 而Java堆和方法区的内存的

2021-07-18 19:40:22 61

原创 Java集合框架

Java集合框架概述Java集合框架提供了一套性能优良、使用方便的接口和类,位于java.util包下。集合是一个对象,可容纳其他对象的引用,任何对象加入集合后会自动转变为Object类型,所以在取出时需要进行强制类型转换。Java集合框架是一个用来代表和操作集合的统一架构,包含以下内容:接口:代表集合的抽象数据类型,例如:Collection、List、Set、Map等,定义多个接口方便用户以不同的方式操作数据集合实现(类):是集合的具体实现,例如:ArrayList、LinkedLi

2021-07-18 19:39:19 132

原创 操作系统之Linux命令

Linux操作命令ls命令ls [选项][目录名]参数: -a 列出所有文件,包括以.开头的文件(隐含文件) -l 列出文件详细信息 -h 以容易理解的格式列出文件大小 -t 以文件修改时间排序通常组合搭配使用ls -alh 目录名cd命令cd [目录名]cd ~ 进入到当前用户的家目录pwd命令pwd [选项]参数: -p 显示实际物理路径 -l 显示连接路径(link)mkdir命令mkdir [选项] 目录参

2021-07-18 19:37:24 222

原创 JVM之内存区域

Java内存区域与内存溢出异常一,概述​ 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为没一个new操作去编写配对的delete/free代码,不容易出现内存泄漏和内存溢出的问题,但一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误、修正问题将成为一项异常艰难的问题。二,Java虚拟机内存模型运行时数据区域​ Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有些

2021-07-18 19:35:28 60

原创 操作系统之虚拟存储器

虚拟存储器概念​ 从逻辑上实现对内存容量的扩充,让用户感觉内存容量比实际内存容量大得多,运行比内存空间更大的程序传统存储器特征一次性:是指作业必须一次性全部都装入内存后才能运行驻留性:是指作业被装入内存后,整个作业都一直驻留在内存中,不会被换出虚拟存储器原理​ 程序在运行之前没有必要全部装入内存,而仅需将那些需要的页面或段装入内存即可,其余部分暂留在磁盘上局部性原理​ 程序执行时,再将短的一段时间内,程序的执行仅局限于某个部分,它所访问的存储空间也局限于 某个区域时

2021-07-18 19:31:06 312

原创 操作系统之存储器管理

存储器管理一、存储器的层次结构存储器多层结构​ 对于通用计算机而言,存储层次至少有三级:CPU寄存器——内存——外存​ 更详细的分层可以为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k7VxS7Rx-1626607791592)(images/存储器层次结构.png)]可执行存储器​ 寄存器和主存又被称为可执行存储器,进程能够使用load和store指令对寄存器和主存进行访问,而对于外存,则需要进行I/O主存​ 主存用于保存进程运行期间的程序和数

2021-07-18 19:30:20 252

原创 操作系统之CPU调度与死锁

CPU调度与死锁一、CPU调度的层次高级调度​ 高级调度又称为作业调度,调度的对象是作业,主要功能是将外存上处于后备队列中的作业调入内存,为这些作业创建进程和分配必要的资源后放入就绪队列中级调度​ 中级调度又称内存调度,内存调度把那些暂时不能运行的进程调至外存,使进程状态转变为挂起状态,主要功能是提高内存利用率和系统吞吐量低级调度​ 低级调度又称进程调度,调度的对象是进程(或内核级线程),主要功能是依据某种策略使就绪队列中的进程进入执行状态执行频率:低级调度 > 中级调度

2021-07-18 19:29:38 538

原创 操作系统之进程

操作系统一、概述​ 操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,主要作用是管理好这些硬件设备,提高它们的利用率和系统的吞吐量。而其他的诸如编译程序、数据库管理系统等系统软件、以及大量的应用软件都直接依赖于操作系统的支持。二、作用操作系统作为用户与计算机硬件系统之间的接口操作系统作为计算机系统资源的管理者操作系统实现了对计算机资源的抽象三、基本特性并发(Concurrence)​ 并发 :并发性是指两个或多个事件在同一时

2021-07-18 19:27:17 480

空空如也

空空如也

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

TA关注的人

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