自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP通信

tcp是一种可靠的网络传输协议,python可以实现该通信。

2024-01-06 23:49:50 469

原创 文件夹的拷贝

通过使用Java的文件字节流拷贝文件或文件夹,file1->file2。

2023-11-13 11:13:39 163

原创 8086汇编环境的使用

中间蓝色的是当前执行指令的位置,蓝色的行数就是当前执行指令的长度;CS=0100H,IP=0000H,CS:IP=0100H*10H+0000H=01000H,刚好就是当前将要执行的指令的地址。由于上条指令的长度为3,所以IP寄存器的值加3,此时下条指令的地址为CS:IP=0100H:0003H=01003h。IP=0003H+0002H,上条指令的长度为2,当前的指令长度为3。ip=ip+0003H=0008h,CS:IP为下条指令的位置。修改默认地址,并通过list的模式展示,查看相应内存地址的值。

2023-10-28 11:18:02 371

原创 typora常用偏好设置

将图片保存在当前文件夹内。

2023-10-11 09:46:46 272

原创 主机名和hosts

1. 设置主机名主要是方便记忆2. `hostname`查看主机名,修改文件在`/etc/hostname`3. 重启生效。

2023-08-13 21:12:23 207

原创 ROOT找回密码

移动光标至linux16开头的内容所在行,并在行末输入:init=/bin/sh(表示进入单用户模式)接着输入:mount -o remount,rw / ,再回车。接着等待系统自动修改密码并重启即可(时间稍长,注意空格)输入touch /.autorelable,再回车。输入passwd,进行密码的修改,输入两次密码。输入exec /sbin/init。按下ctrl+x,进入单用户模式。在开机界面按e键进入编辑界面。

2023-08-09 10:22:35 91

原创 常用上层协议的字段值

是IPv4的上层协议的字段值,也是IPv6的下一个首部协议的值,标识该数据报的载荷内容该交给哪个协议处理,作用类似于端口号,协议号是网络层与运输层的粘合剂,端口号是运输层与应用层的粘合剂。

2023-07-11 10:12:04 443

原创 redis与分布式

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave),数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主(只读模式),当主节点关闭后,从节点依然可以读取数据,但是会报错实现了读写分离,提高了性能在写少读多的场景下,我们甚至可以安排很多个从节点,这样就能够大幅度的分担压力,并且就算挂掉一个,其他的也能使用。

2023-07-03 17:41:39 1250

原创 图的基本概念和存储

基本概念图的定义:图(Graph)一般由两个集合共同构成,一个是非空但是有限的顶点集合V(Vertex),另一个是描述顶点之间连接关系的边集合E(Edge),边集合可以为空集。G = (V, E)端点和邻接点顶点的度;入度和出度完全图子图路径简单路径回路或环简单回路=简单路径+回路连通、连通图、连通子图和连通分量强连通图、强连通分量权和网连通图的连通分量只有一个(本身),而非连通图的连通分量不止一个;强连通图同理。

2023-06-01 16:14:10 586

原创 c语言的预处理和编译

当预处理器发现#include指令时,会查看后面的文件名并把文件的内容包含到当前文件中两种写法引用的是编译器的库路径里面的头文件。引用的是程序目录中相对路径中的头文件,如果找不到再去上面的库里面找。

2023-05-30 11:25:16 439

原创 树和二叉树

逻辑表示方法树形表示法文氏图表示法凹入表示法括号表示法性质树的结点数等于所有结点的度加一度为m的树中第i层最多有m的(i-1)次方个结点高度为h的m次树最多的节点数(等比数列公式求和)具有n个结点的m次树的最小高度树的遍历先根遍历后根遍历层次遍历存储结构双亲存储结构存放数据元素和双亲的位置孩子链存储结构存放数据元素和指向所有孩子结点的指针孩子兄弟链存储结构一个数据域,一个最左的孩子(长子)和下一个兄弟结点的指针域。

2023-05-28 09:48:43 774

原创 数组的存储和压缩

一维数组是有限个相同类型的数据元素构成的序列,逻辑关系是相邻关系推广:一个二维数组可以看作相同类型的一维数组的一维数组;n维数组可以看作以n-1维数组作为元素的线性表。

2023-05-28 09:41:30 1130

原创 递归的基本概念

每次调用函数都会创建一帧,保存返回地址、函数实参和局部变量,并将该帧压入调用栈,成为栈顶,函数一旦执行完毕,对应的帧就出栈,对应的控制权就返回给上层的函数,并按照该帧保存的返回值地址确定程序中继续执行的位置。原问题可以划为一个或多个子问题,且子问题的求解方式与原问题相同,只是数量规模不同。尾递归法可以通过循环或迭代的方式转换为等价的非递归算法。如果递归函数中调用递归的语句为最后一个执行语句,则称这种递归为尾递归。可以使用栈来模拟递归的执行过程从而实现转换。使用栈帧来支持函数调用。递归的调用次数必须有限。

2023-05-27 10:01:26 870

原创 串的定义与实现

计算机内存是以字为单位的,一个字包含多个字节。如果一个字只存放一个字符,则为非紧缩格式,存储密度较小,处理单个字符方便,运行效率较高;如果一个字只存放多个字符,则为紧缩格式,存储密度较大,处理单个字符不方便,运行效率较低。在链串中,节点大小越大,存储密度则越大,但插入、删除等操作不便;节点大小越小,存储密度则越小,但插入、删除等操方便。顺序串的字符被依次存放在一组连续的存储单元里。定义:由零个或多个字符组成的有限序列。

2023-05-25 09:26:23 54

原创 栈和队列的概念和实现

栈定义:只能在一端进行插入或删除操作的的线性表主要特点:后进先出存储结构的实现顺序存储结构链式存储结构用途:通常作为一种临时存放数据的容器。如果后存入的元素先处理则使用栈。比如用于保存函数调用时的所需的信息,或者在将递归算法转化为非递归算法时需要使用。

2023-05-24 18:51:16 554

原创 数据结构的定义

算法概述定义:对特定问题求解步骤的描述,是指令的有限序列特点有穷性,确定性,可行性,有输入,有输出算法分析分析算法占用计算机资源的多少CPU时间内存空间时间性能分析事后统计法缺点:必须执行程序,受到各种其他因素的影响事前估计法算法的执行时间是问题规模的函数。

2023-05-24 11:05:21 423

原创 线性表的总结

把线性表的所有元素按照其逻辑顺序依次存储到从计算机指定的存储位置开始的一块连续的存储空间中。一致性:一个线性表的所有元素的性质相同,也就是具有相同的数据类型。序列性:所有元素之间的相对位置是线性的。有穷性:一个线性表的元素个数是有限的。具有相同特性的数据元素的有限序列。组成:数据域和指针域。

2023-05-24 10:47:39 530

原创 bat操作git(一键提交)

环境变量添加完毕后就可以直接在命令框使用git命令了。给windows设置定时任务来自动提交git。注意去掉脚本的pause命令,修改后的脚本。需在当前文件夹建立的命令框调用。如果需要传递参数(提交信息)实现一键完成远程仓库的更新。

2023-05-23 17:06:15 933

原创 高级树结构

B树(Balance Tree),是专门为磁盘数据读取设计的一种度为 m 的查找树(多用于数据库)它同样是一棵平衡树,但是不限于二叉,前面的二叉树都是基于内存读取的优化,这个是磁盘读取的优化,一棵度为4的(4阶)B树。删除最顶上的元素,此时先把排在最后面的拿上来顶替一下,按照与插入相反的方向,从上往下进行堆化操作,规则是一样的,遇到大的就交换,即使完成了出队操作,依然是最大的元素排在队首,并且整棵树依然是一棵完全二叉树。,Kn,Pn),其中P为指向子树的指针,K为键值(关键字)

2023-05-19 21:17:59 892

原创 线索化二叉树

一棵二叉树实际上可以由多个结点组成,每个结点都有一个左右指针,指向其左右孩子。二叉树的遍历,包括前序、中序、后序以及层序遍历都需要借助栈来帮助完成这项遍历操作。一棵二叉树的某些结点会存在NULL的情况,我们可以利用这些为NULL的指针,将其线索化为某一种顺序遍历的指向下一个按顺序的结点的指针,这样在进行遍历的时候,就会很方便许多主要有前序线索化、中序线索化、后序线索化线索化规则:结点的左指针,指向其当前遍历顺序的前驱结点。结点的右指针,指向其当前遍历顺序的后继结点。

2023-05-16 17:05:05 94

原创 正则表达式(Java)

正则表达式(Regular Expression)是一种文本模式匹配的工具,可以用来搜索、替换或提取文本中的模式。它可以用来检查文本是否符合某种模式,或者从文本中提取出符合某种模式的部分。

2023-02-21 20:08:28 342

原创 Linux基本命令

用于表示变量~ 表示当前用户的家目录编辑文件未保存就关闭命令会话时,Linux会保存一个隐藏文件来保存最新的内容,可以删除该文件命令行参数单词加 --字母或缩写加 -type查看命令类型type cdhelp 内置命令帮助文档man 外置命令帮助文档版本划分。

2023-02-08 16:19:53 434

原创 Swagger:接口信息管理

支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档提供 Web 页面在线测试 API。

2023-02-04 17:07:01 889

原创 win-bat批处理命令

cmd 与 powershel 命令和关键字不区分大小写,变量名区分大小写DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令PID 是 processid(进程号);IM 是 imaginename(映像名称)在 .bat 文件开头加上@echo off代表不输出描述,比如这样的描述不会输出,直接输出结果echo输出结果,pause使命令框停顿,pause>nul表示不输出结束提示,cls清屏命令,dir查看目录。

2023-01-19 20:58:43 3085

原创 nacos:服务注册与发现

导入SpringCloudAlibaba相关的依赖,并在父工程将依赖进行管理-- 这里引入最新的SpringCloud依赖 -->-- 这里引入最新的SpringCloudAlibaba依赖,2021.0.1.0版本支持SpringBoot2.6.X -->在idea中加入nacos服务端并进行配置选择脚本程序,修改工作目录,选择脚本路径修改cmd文件,将集群模式改为单例模式,将MODE改为standalone或在脚本选型中添加。

2023-01-14 15:06:11 631

原创 config:配置中心

Spring Cloud Config 为分布式系统中的外部配置提供服务器端和客户端支持。使用 Config Server,您可以集中管理所有环境中应用程序的外部配置。Spring Cloud Config就是一个配置中心,所有的服务都可以从配置中心取出配置,而配置中心又可以从GitHub远程仓库中获取云端的配置文件,这样只需要修改GitHub中的配置即可对所有的服务进行配置管理了。

2023-01-07 22:23:58 2003

原创 Gateway 路由网关

一般情况下,并不是所有的微服务都需要直接暴露给外部调用,这时就可以使用路由机制,添加一层防护,让所有的请求全部通过路由来转发到各个微服务,并且转发给多个相同微服务实例时还也可以实现负载均衡。为此SpringCloud官方推出了Gateway路由。

2023-01-07 20:55:32 1230 2

原创 Spring cloud:OpenFeign

Feign都是以接口的形式来声明远程调用,那么既然远程调用已经失效,可以自行对其进行实现,创建一个实现类,对原有的接口方法进行替代方案的实现并注册为Bean。Feign和RestTemplate一样,也是HTTP客户端请求工具,但是它的使用方式更加便捷。Hystrix也可以配合Feign进行降级,可以对应接口中定义的远程调用单独进行降级操作。需要调用其他微服务提供的接口时直接创建一个对应服务的接口类即可。再在原有的接口中指定失败替代实现即可。还要在配置文件中开启熔断支持。直接创建所需类型的方法。

2023-01-04 17:16:37 365 2

原创 服务熔断和服务降级

服务之间是可以相互调用的,如果底层的服务出现了问题,那么他的上层服务也就会出问题为了解决分布式系统的雪崩问题,SpringCloud提供了Hystrix熔断器组件。

2023-01-04 16:21:14 433

原创 Spring Cloud:eureka注册中心

Eureka由两部分组成,服务端和客户端,服务端是注册中心,用来接收其他服务的注册,客户端是java客户端,用开注册,并实现负载均衡,其中客户端根据业务又划分两部分,服务提供者,和服务消费者。

2022-12-31 17:47:07 2226 2

原创 MySQL:账户管理

可以通过create user来创建账户,创建前需确认三个点账户名,以'user_name'@'host_name'的格式指定用户名和主机名账户密码客户端登陆时的身份验证插件 (在存储和传输密码吗时插件利用哈希对其进行加密)MySQL内置的插件选择mysql_native_password 实现了默认的密码哈希算法mysql_old_password 该哈希算法安全性较低,已弃用sha256——password 使用SHA-256密码哈希值进行身份验证,比较安全。

2022-12-28 13:27:39 436

原创 面向对象设计原则

在Spring框架下,通过使用接口,就可以将原有的强关联给弱化,只需要知道接口中定义了什么方法然后去使用即可,而具体的操作由接口的实现类来完成,并由Spring来完成注入。当子类的方法实现父类的方法时(重写/重载或实现抽象方法),方法的后置条件(即方法的输出/返回值)要比父类更严格或与父类一样。即在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。当子类的方法重载父类的方法时,方法的前置条件(即方法的输入/入参)要比父类方法的输入参数更宽松。

2022-12-15 16:20:53 243

原创 二叉树的性质

完全二叉树除了最后一层有空缺外,其他层数都是饱满的,假设这棵二叉树为满二叉树,那么根据前面得到的性质,假设层数为。,因为除了根节点每一个结点都有一条唯一的边与父节点相连,所以结点的边数为。,根据完全二叉树的性质,最后一层可以满可以不满,那么一棵完全二叉树结点数。个,比如二叉树的第一层只有一个根结点,而二叉树的第三层可以有。,比如第3个结点的父结点为第1个节点,也就是根结点。个结点的完全二叉树,对于任意一个结点。的二叉树,可以具有的最大结点数量为。,那么此结点为二叉树的根结点,如果。也可以从边数的角度考虑。

2022-12-11 15:20:10 1776

原创 树和森林的转换

二叉树和树、森林之间的相互转换。

2022-11-30 10:35:23 401

原创 redis与Java交互

可以直接导入Jedis框架,它能够实现Java与Redis数据库的交互jedis的方法与redis的命令基本相同,如果想执行redis命令只需执行相应的方法。

2022-11-27 19:51:38 428

原创 redis:事务与锁

对于数据库操作,就认为每次操作数据的时候都认为别的操作不会修改,所以不会加锁,而是通过一个类似于版本的字段来标识该数据是否修改过,在执行本次操作前先判断是否修改过,如果修改过就放弃本次操作重新再来;当事务开启时,事务期间的命令并没有执行,而是加入队列,只有执行EXEC命令时,事务中的命令才会按照顺序一一执行,从而事务间就不会导致数据脏读、不可重复读、幻读的问题,因此就没有隔离级别。在通过EXEC执行事务时,其中命令执行失败不会影响到其他命令的执行,并没有保证同时成功和同时失败的原子操作。

2022-11-26 20:51:48 695

原创 redis : 持久化

redis通过将数据放在内存里实现高速访问,为了防止意外情况,其数据也可以存放起来持久化的实现方式有两种方案:一种是直接保存当前,相当于复制内存中的数据到硬盘上,需要恢复数据时直接读取即可;还有一种就是保存我们存放数据的,需要恢复数据时,只需要将整个过程完整地重演一遍就能保证与之前数据库中的内容一致。

2022-11-26 19:35:20 523

原创 redis:常用的数据类型

- 如果列表中没有元素,那么就等待,如果指定时间(秒)内被添加了数据,那么就执行pop操作,如果超时就作废,支持同时等待多个列表,只要其中一个列表有元素了,那么就能执行。适合存储类这样的数据,由于值本身又是一个Map,因此可以在此Map中放入类的各种属性和值,以实现一个Hash数据类型存储一个类的数据。它就是一个列表,在列表中存放一系列的字符串,它支持随机访问,支持双端操作,就像Java中的LinkedList。hset [ ]...hexists

2022-11-25 22:36:08 351

原创 redis:基本操作

默认情况下,连接Redis数据库之后,会使用0号数据库,还可以通过Redis配置文件中的参数来修改数据库总数,默认为16个。Redis是一个键值数据库,可以像Map一样的操作方式,通过键值对向Redis数据库中添加数据(操作起来类似于向一个HashMap中存放数据)存入的数据默认会以字符串的形式保存,键值具有一定的命名规范,以方便可以快速定位数据属于哪一个部分,比如用户的数据。-- 使用冒号来进行板块分割,比如下面表示用户XXX的信息中的name属性,值为lbw。renamenx

2022-11-25 11:41:34 510

原创 Git:基本命令

文件来确定一个文件忽略列表,如果忽略列表中的文件存在且不是被追踪状态,那么git不会对其进行任何检查。又想回去就可以通过查看所有分支的所有操作记录,这样就能找到之前的commitID,再次重置即可。如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件,那么就可以直接拉取。将分支切换到另一个分支,可以看出在不同分支下我们的文件内容是相互隔离的。跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置。创建仓库后,可以通过推送来将本地仓库中的内容推送到远程仓库。

2022-11-19 10:08:30 289

空空如也

空空如也

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

TA关注的人

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