自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录搭建分布式项目环境-MySQL集群

下了好多版本,都没有默认的my.cnf文件,发现5.7.17有,但其实my.cnf可以直接复制一份到etc下面就可以了,然后将basedir和datadir记得改好

2021-10-22 09:58:35 954

原创 Linux 通信

系统内用户间通信write、mesg、wall收发电子邮件基本操作:发送、阅读、回复、删除、恢复删除、保存电子邮件常用操作:群发等write:什么命令可以查看系统在线用户,知道用户登录的终端信息?w命令w命令详解mesg:write mary终端显示“mary has messages disabled”这个是因为接收方设置了mesg n终端显示“you have write permission turned off ”这个是因为发送方设置了mesg n.

2021-10-11 11:37:24 191

原创 数位dp(未完成)

f[i][j]表示当数字有i位,最高位是j的时候,有多少种方案,这种不是遍历数字,而是遍历方案数,比如 f(1,0) 可以看成一个数字0,1,1就是数字0和1,1,2就是2,这种只有一位的,每种情况都是一种, 然后两位的时候他的结果都是只有一位数的方案数加起来的比如f(2,0) 可以看成00|01|02一直到09,那么这里就可以看出来,共有两位,最高位是0,则第二位就是有10种情况,假如算f(2,1)就是11一直到19,那么来看第三位 我们可以抽象的想一下f(3,0)最高位是0,然后第二位就可以是0.

2021-10-10 23:52:35 121

原创 记一次搭建rabbitmq 单机多实例的集群

[root@localhost ~]# RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" rabbitmq-server -detachedWarning: PID file not written; -detached was passed.[root@localhost ~]# RABBITMQ_NOD

2021-09-16 22:03:29 218

原创 操作系统(七)虚拟内存管理

3.2.1 OS之虚拟内存的基本概念(局部性原理、高速缓存、虚拟内存的实现1.传统存储管理的特征、缺点2.局部性原理3.虚拟内存的定义和特征

2021-08-12 15:02:02 60

原创 操作系统(六)-内存2-分段存储(粗略讲解)

3.1.10 OS之基本分段存储管理(段表、地址变换、信息共享)1.什么是分段?分段的逻辑地址结构2.段表3.地址变换4.分段、分页管理的对比分段实现信息共享共享为什么分页不方便实现信息共享和保护?3.1.11 OS之段页式存储管理(段表、页表、地址转换、)1.分页、分段的优缺点分析2.分段+分页=段页式管理段页式管理的逻辑地址结构段页式存储的段表、页表3.段页式管理的地址转换过程...

2021-08-11 18:08:11 94

原创 操作系统(六)-内存2-分页

3.1.6 OS之分页存储(页号、页偏移量等)1.为什么学习分页存储?2.基本分页存储管理的思想3.分页存储管理的重要概念4.如何实现地址的转换如何计算页号和页偏移量总结一下,就是将一个进程分成几块,内存也分成几块,把进程分块的放进内存中,这样可以减少前面所提到的那些方法会产生的外部碎片以及内部碎片,并且可以不用按顺序,大的进程可以分成小的,也就不用去将小内存拼凑成大内存了,然后操作系统用一个数据结构存储每块的首地址,然后加上对应的数就得到他所在的位置为什么页面大小一般设为2的

2021-08-11 17:16:37 273

原创 操作系统(六)-内存1

3.1.1 什么是内存?进程的基本原理,深入指令理解其过程1.什么是内存?有何作用?(1)存储单元关于存储单元有关内容在我写的组成原理笔记中有提到:存储单元(2)几个常用数量单位&内存地址总结一下(2)逻辑地址(相对地址)vs物理地址(绝对地址)(3)从写程序到程序运行—编译、链接、装入(4)装入模块装入内存不修改装入模块中的指令地址就直接装入内存的话:(5)装入的三种方式①绝对装入②静态重定位③ 动态重定位(6)链接的三种方式① 静态链接

2021-08-10 19:32:17 107

原创 操作系统(五)

2.3.7 操作系统之管程和java中实现管程的机制1.为什么引入管程?2.管程的组成及基本特征这里管程的基本特征的大致意思是管程的数据结构需要调用管程内的函数,方法才能访问或者操作,类似于java的内部类,或者私有方法,私有变量,第三局的意思是,同一时刻只能允许一个进程在使用管程内的东西,就是get方法加锁呗3.管程实现生产者消费者问题这里面的insert和remove很类似于get/set。Item这个东西由编译器帮我们做了互斥4.java中类似于管程的机制2.4

2021-08-10 17:31:37 60

原创 操作系统(四)

3.读者-写者问题(1)问题描述(2)问题分析这个问题的改进方法意思是说,写进程,是用pv操作去互斥其他写操作的,就如比开始写的时候就直接上锁,写完就解锁,而读进程不用pv操作去限制,而是用count,对count上锁,防止对count两个进程同时访问,让第一个进程来上锁,先判断一下读进程的时候是否上锁,如果是第一个就上锁,如果是第二个那么count ==2了,所以不用你上锁了,你直接来读把,就用if跳过p操作,就不会被卡住了,而其中一个进程读完之后count–,当最后一个读进程完事的时候cou

2021-08-09 19:24:15 72

原创 操作系统(三)

2.3.2 操作系统之实现临界区进程互斥的软件实现方法软件实现方法的思想:在进入区设置并检查一些标志 来标明是否有进程在临界区中,若已有进程在临界区,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。1.单标志法2.双标志先检查法这里面的忙则等待,意思是在临界区有进程的时候应该在检查的时候就卡在那,不应该去尝试访问,而这里如果绿色方框无法保持原子性,中间就可以有进程切换在检查的时候还没来得及标注有进程在访问,进程

2021-08-09 17:44:05 149

原创 操作系统(二)

2.1_6_线程的实现方式和多线程模型2.2.1 处理机调度的概念及层次文章目录0.思维导图1.调度的基本概念2.调度的三个层次(1)高级调度( 作业调度)(2)中级调度(内存调度)(3)进程的挂起状态与七状态模型(4)低级调度(进程调度)(5)三层调度的联系和对比思维导图1.调度的基本概念2.调度的三个层次(1)高级调度( 作业调度)(2)中级调度(内存调度)(3)进程的挂起状态与七状态模型注意:不能由阻塞态直接转为运行态,也不能就绪态直

2021-08-09 16:24:56 416 1

原创 操作系统总结(一)

111

2021-08-09 09:28:29 135

原创 牛客多校第一场补题,水平不够只补6题

B题附上代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;//牛客第一场2int main(){ int r,a,b,h; cin>>r>>a>>b>>h; double x = (a-b)*1.0/2; double y = (x

2021-07-30 14:12:56 167

原创 gcd,区间加gcd,扩展欧几里得,同余,中国剩余定理

先来看几个定义吧:逆元裴蜀定理:欧几里得:古老而又强大的欧几里得算法(又称辗转相除法):两个数 a 和 b 的最大公因子(greatest common divisior)是能整除它们两者的最大整数。欧几里德算法用于计算两个整数 a,b 的最大因子。记 gcd(a,b)为自然数 a与 b的最大公因子。特别的,有 gcd(0, n) = 0,因为任何整数都能整除 0。下面用白话文阐述一下证明过程首先考虑一下:对于任意两个正整数 a,b ,都有:a=kb+r (k,r∈N)所以r=a%b

2021-07-26 10:10:53 115

原创 莫队算法学习总结

前置知识:分块分块是一种思想,把一个整体划分为若干个小块,对整块整体处理,零散块单独处理。本文主要介绍块状数组——利用分块思想处理区间问题的一种数据结构。块状数组把一个长度为 n 的数组划分为 a 块,每块长度为 n/a 。对于一次区间操作,对区间內部的整块进行整体的操作,对区间边缘的零散块单独暴力处理。(所以分块被称为“优雅的暴力”)这里,块数既不能太少也不能太多。如果太少,区间中整块的数量会很少,我们要花费大量时间处理零散块;如果太多,又会让块的长度太短,失去整体处理的意义。一般来说,我们取块数为

2021-07-23 16:12:39 78

原创 区间dp详细讲解

区间dp就是利用了分治的思想,将整个区间不断的拆分一下,将一个区间[l,r]分成[l,k] [k+1,r],然后再对[l,k]和[k+1,r]进行类似的拆分,直到拆分成最小的区间,通过对每个小区间算出最小或者最大代价,再通过将这些小区间组合成一个更大的区间,哪种组合方式最优,则就是所求解。那么下面用一个典型的例题来解释一下合并石子这道题算是一道很经典的题了那么先把代码列出来#include <iostream>#include <cstring>using name

2021-07-17 11:39:41 2089 3

原创 elasticsearch-Query DSL

11

2021-06-28 20:47:59 246

原创 初探elasticsearch

其实elasticsearch权威指南这本书有点坑,还是建议大家看官网,官网如下图片实例中可以拷贝为curl,就可以看到他的添加索引数据的命令curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'{ "first_name" : "John", "last_name" : "Smith", "age" : 25, "ab..

2021-06-27 19:44:00 77

原创 Linux-用户管理

主要内容:用户管理添加、修改、删除用户修改用户密码察看用户信息切换用户身份用户组管理添加、修改、删除用户组用户分类系统用户(虚拟用户)root普通用户用户身份标识UID、GID试试修改uid会怎样?知道就好,不要乱改!command(命令)useradd添加用户usermod修改用户userdel删除用户以上命令只有超级用户root才能执行!passwd修改用户密码启动后,图形界面下打开的虚

2021-06-18 20:31:12 383

原创 Linux-Vi编辑器

vi编辑器的基本功能启动vi编辑器新建或者打开文本文件编辑文本输入,删除,移动光标,查找,替换,复制,粘贴,撤销等等保存退出或者不保存退出编辑文件启动vi编辑器时,vi编辑器处于命令模式,敲击键盘i键,进入文本输入模式,接下来可以输入字符,用Backspace或者Del键删除字符,用回车键控制换行,用上下左右光标键移动位置保存退出/退出输入结束后,按Esc键,vi进入命令模式然后输入:wq 文件名 #保存退出例如 :..

2021-06-16 23:27:52 74

原创 Linux-基本命令

Who/date命令那么Who i am和whoiam有什么区别呢?linux中who am i 和whoami 命令是不一样的,简单来说:who am i :是记录登录shell时的用户,你以什么用户登录就显示什么whoami:这个才是当前系统的有效用户举个例子:我以root用户登录系统,然后执行su - hwangchen 切换到hwangchen用户下,此时who am i 显示的是root用户,而whoami则显示hwangchen用户。cal命令更正命令Backspace

2021-06-16 20:17:57 428

原创 数据库系统原理-安全性-并发-锁

这里表示的意思是授权的粒度可以授权某个数据库给用户,或者只授权一个表给用户操作,甚至还可以授权用户一个属性列去操作。同理行也是一样的。回顾,视图是属于三层模里面的外模式create view CS_Student as select sno,sname,ssex,sdept,sage from student where sdept='CS';grant select on table CS_Student to 王平;#将CS_Student这...

2021-06-15 20:42:48 58

原创 数据库系统原理-函数依赖-范式

图里面的部门改成部门名在这里复习以下基础知识:3NF存在问题是因为主属性依赖于其他属性,其只解决了非主属性的依赖问题

2021-06-13 22:02:23 285

原创 数据库系统原理-关系代数-数据库ER图-数据库UML图复习

关系代数选择:由此看来投影的结果是列,就是用来select 某个列,而选择可以用于简单的查询某个列或者取出某个列用来关联另一个表,就比如select最后带一个where笛卡尔积和连接:自然连接等值连接和自然连接的区别:等值连接可以在两个关系的任一列进行而自然连接是在公共属性上进行连接...

2021-06-08 23:05:05 270

原创 设计模式(七)--备忘录模式

1 游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战 Boss 前保存自身的状态(攻击力和防御力),当大战 Boss 后攻击力和防御力下降,从备忘录对象恢复到大战前的状态2 传统方案解决游戏角色恢复3 传统的方式的问题分析一个对象,就对应一个保存对象状态的对象, 这样当我们游戏的对象很多时,不利于管理,开销也很大.传统的方式是简单地做备份,new 出另外一个对象出来,再把需要备份的数据放到这个新对象,但这就暴露了对象内部的细节解决方案: => 备忘录模式4 备忘录模

2021-06-06 15:31:40 47

原创 设计模式(六)--命令模式

基本概念命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求,同时命令模式也支持可撤销的操作。通俗易懂的理解:将军发布命令,士兵去执行。其中有几个角色:将军(命令发布者)、士兵(命令的具体执行者)、命令(连接将军和士兵)。命令模式的原理类图:Invoker:调用者角色;Command:命令角色,需要执行的所有命令都在这里,可以是接口或抽象类;Receiver:接收者角色,知道如

2021-06-05 21:16:41 63

原创 设计模式(五)--代理模式

简述:代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。需求:现在需要实现加减乘除功能。代码如下: interface Calculator{ int add(int a ,int b); int sub(int a ,int b); int mul(int a ,int b); int div(int a ,int b); } class MyCalculator implements Ca

2021-06-01 17:35:10 40

原创 设计模式(三)--工厂模式

1.1简单工厂模式1.1.1看一个具体的需求:看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。1.1.2使用传统的方式来完成思路分析(类图)...

2021-05-29 23:29:29 142

原创 设计模式(二)--单例模式

前言设计模式类型:设计模式分为三种类型,共 23 种创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)。注意:不同的书籍上对分类和名称略有差别1.1单例模式单例设计模式介绍所谓类的单例设计模式,

2021-05-29 00:24:42 36

原创 设计模式(一)--熟悉UML

一 UML1.1UML中各种图标的解释1.2类图—依赖关系(Dependence)只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。public class PersonServiceBean { private PersonDao personDao;//类public void save(Person person){}public IDCard getIDCard(Integer personid){} public void modify(){Depa

2021-05-28 22:25:58 62

原创 SpringMVC拦截器

**SpringMVC拦截器相当于servlet中的filter**拦截器的使用:自定义拦截器拦截器的配置:先执行Intercptor里面的preHandle方法,看是否进行拦截,如果返回的是false则拦截,如果是true则放行,所以这里返回的是false,则不执行后面的,假设是true则执行Controller里面的方法,然后执行postHandle方法,最后after。。。...

2020-11-18 20:12:59 32

原创 C++ 虚基类的解析,多态

左图是使用虚基类的结构,右图是未使用虚基类的结构,可以发现使用虚基类后,就发现从两个类继承来的m_age只有一个了,那么使用虚基类后从Sheep和Tuo中继承的vbptr是什么呢?仔细分析后,发现vbptr是一个类似于指针的东西,而他指向的是vbtable这个东西,而sheep的vbtable中可以清晰的看出存着一个偏移量,值为8,所以vbptr的位置为0再加上8就等于派生类SheepTuo中的m_age的位置:8,同理,Tuo的vbtable中存着偏移量值为4,Tuo的vbptr位置为4,4+4=8.

2020-11-14 00:53:20 96

原创 Spirng-MVC基础解析

SpringmvcServletContextListener使用详解

2020-11-12 20:24:10 44

原创 Spring——JDBCTemplate

JdbcTemplate基本配置<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="root"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>

2020-11-06 15:04:32 52

原创 Spring-IOC

Spring Aop原理——静态代理,动态代理AOP实际上Aop面向切面编程,通俗的来说就是用另一个类即代理对象去调用自身的前置增强方法和需要增强的类,再调用后置增强的方法,就这样对顺序加以控制,而且这个代理对象继承了被增强的对象的方法,并且拥有需要添加的方法,可以近似的把他们看成一个,就形成了这种可以以一种低耦合性的增强的实现。cglibpublic class ProxyUtil { public static void main(final String[] args) {

2020-11-06 13:30:07 56

原创 对Spring 白话文理解

Java Bean每一个类实现了Bean的规范才可以由Spring来接管,那么Bean的规范是什么呢?必须是个公有(public)类有无参构造函数用公共方法暴露内部成员属性(getter,setter)实现这样规范的类,被称为Java Bean。即是一种可重用的组件。从图中我们可以看出Spring通过反射创建Springone 的对象,注意这里需要进行无参构造,并且测试数据输出了Spring one Runing 也证实了这一猜想,图中的id是Spirngone这个类的唯一标识,也可以叫

2020-11-04 17:42:58 152

原创 Filter

过滤器(Filter)过滤器概述1 什么是过滤器过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。可

2020-10-10 11:53:36 59

原创 Session,监听器

day20JavaWeb监听器三大组件:ServletListenerFilterListener:监听器1.初次相见:AWT2.二次相见:SAX监听器:它是一个接口,内容由我们来实现;它需要注册,例如注册在按钮上!监听器中的方法,会在特殊事件发生时被调用!观察者:事件源;小偷事件;偷东西监听器;警察监听器中的方法:抓捕JavaWeb中的监听器事件源:三大域!ServletContext生命周期监听:ServletConte

2020-10-10 11:36:55 148

原创 JavaWeb框架基础

MVC1 MVC设计模式MVC设计模式MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。控制器Con

2020-09-05 23:31:08 67

空空如也

空空如也

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

TA关注的人

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