随笔分类 -  学习笔记

记录易忘知识点
设计模式-组合模式
摘要:一、组合模式引入 1、组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 简单理解就是,如果有许多相似的对象,每 阅读全文

posted @ 2022-04-10 19:06 暗,伏! 阅读(90) 评论(0) 推荐(0)

设计模式-原型模式
摘要:c#内存分配:https://www.cnblogs.com/Kyle-Wang/p/16102650.html 一、原型模式引入 很多时候,我们需要大量相同或者类似的对象,比如做五子棋的棋盘,每个格子都是类似的对象,只是坐标不一样而已。如果使用new对象的方法,在性能上肯定会有损耗。而原型模式就是 阅读全文

posted @ 2022-04-05 21:27 暗,伏! 阅读(58) 评论(0) 推荐(0)

c#内存分配
摘要:1、c#内存分 进程堆(进程唯一)、线程栈(每个线程一个) 2、引用类型的值在堆里,值类型的值在栈里。 比如: int a=1; //a和1都在栈里 string b="abc"; //b在栈里,“abc”在堆里 3、对象(引用类型)里面的值类型在堆里 比如: Class A{ public int 阅读全文

posted @ 2022-04-05 15:57 暗,伏! 阅读(447) 评论(0) 推荐(0)

设计模式-建造者模式
摘要:抽象工厂模式:https://www.cnblogs.com/Kyle-Wang/p/16097677.html 一、建造者模式引入 建造者模式和抽象工厂模式很类似。 1、相同点: 都是一个工厂内部并不只是创建一种对象,而是可以创建多种对象。 2、不同点: 抽象工厂创建的多种对象间是没有关联的,对象 阅读全文

posted @ 2022-04-05 14:33 暗,伏! 阅读(46) 评论(0) 推荐(0)

设计模式-抽象工厂
摘要:简单工厂模式:https://www.cnblogs.com/Kyle-Wang/p/16063512.html 工厂模式:https://www.cnblogs.com/Kyle-Wang/p/16095863.html 一、抽象工厂的引入 在工厂模式里或者简单工厂模式里,我们的工厂都只负责创建种 阅读全文

posted @ 2022-04-03 22:32 暗,伏! 阅读(54) 评论(0) 推荐(0)

设计模式-工厂模式
摘要:简单工厂模式,https://www.cnblogs.com/Kyle-Wang/p/16063512.html 一、工厂模式的引出 工厂模式是简单工厂模式的升级版本。简单工厂一般就是提供一个CreateInstance方法,允许通过传入一个对象类型的参数,来实例化返回一个对象给调用方。这样违背了设 阅读全文

posted @ 2022-04-03 14:27 暗,伏! 阅读(52) 评论(0) 推荐(0)

设计模式-简单工厂模式
摘要:一、最开始的代码 1、种族接口,有一个展示种族英雄的方法 public interface IRace { void ShowKing(); } 2、定义3个种族,实现接口 public class Human : IRace { public void ShowKing() { Console.W 阅读全文

posted @ 2022-03-27 17:08 暗,伏! 阅读(50) 评论(0) 推荐(0)

分析一个复杂正则表达式
摘要:(?'Open'([\s]?)#item((-(?<itemName>.+?))?))(?<itemContentTpl>\s[\s\S]+?)(?'-Open'[\s]#item([\s]?))(?(Open)(?!)) 一、表达式1:([\s]?)#item((-(?<itemName>.+?) 阅读全文

posted @ 2022-03-24 10:23 暗,伏! 阅读(262) 评论(0) 推荐(0)

设计模式——单例模式
摘要:一、单例模式:保证进程中,类型只有一个实例 a) 构造函数私有化,防止他人实例化b) 对外提供一个获取实例的途径,公开的静态方法 c) 返回共用一个静态字段 二、为什么使用单例 并不一定节省资源, 因为对象常驻内存,没有及时释放。 速度会快一点,重用对象,如果每次new新对象--使用--释放,耗时。 阅读全文

posted @ 2022-03-21 21:34 暗,伏! 阅读(58) 评论(0) 推荐(0)

设计模式-适配器模式
摘要:一、介绍 适配器模式(adapterPattern)属于结构型设计模式 将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(wrapper) 例如电源适配器 二、代码说明 原有系统里有接口IDBHelper: interface IDBHelper { void 阅读全文

posted @ 2022-03-16 20:06 暗,伏! 阅读(43) 评论(0) 推荐(0)

Websocket、http、socket关系
摘要:1、 socket并不是一个协议,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,提供一套调用TCP/IP协议的API。 当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖 阅读全文

posted @ 2022-03-15 22:19 暗,伏! 阅读(203) 评论(0) 推荐(0)

TCP三次握手四次挥手
摘要:1、 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 SYN:同步序列编号(Synchronize Sequence Numbers) 2、 第二次握手:Server收到数据包后由标 阅读全文

posted @ 2022-03-15 22:14 暗,伏! 阅读(47) 评论(0) 推荐(0)

微服务套件学习笔记——consul、ocelot、apollo、Jenkins
摘要:一、 Consul 1、 对服务方提供服务注册、并对注册的服务做心跳检查,然后对调用方提供服务地址集合,客户端自由选择要调用的服务。 2、 consul集群中的consul节点有两种模式,一种是client:内存模式,保存的服务集合放在内存里,不会持久化。另一种是server:服务集合最后会保存在硬 阅读全文

posted @ 2022-03-15 22:12 暗,伏! 阅读(727) 评论(0) 推荐(0)

静态化和伪静态
摘要:1、 伪静态:把前端请求动态页面如api/good?id=1,改成api/good1.html。api/good1.html经过nginx时可以rewrite成api/good/1。这样的好处是对搜索引擎友好(seo) 2、 静态化: A、 第一次请求时从数据库取出数据,拼装成html页面,存进静态 阅读全文

posted @ 2022-03-15 22:09 暗,伏! 阅读(205) 评论(0) 推荐(0)

docker笔记
摘要:1、 创建一个新容器(不占用当前窗口):docker run -d –name 容器名字 镜像 2、 查看容器日志:docker logs 容器id 3、 进入容器内部:docker exec -it 容器 /bin/bash 4、 暴力删除容器:docker rm -f 容器id 5、 查看容器信 阅读全文

posted @ 2022-03-15 22:07 暗,伏! 阅读(105) 评论(0) 推荐(0)

数据库笔记6——分区
摘要:mysql分区属于水平切分,如果有主键必须使用主键来分区,查询结果如果跨分区会自动合并 A、 range分区: 必须使用主键来分区,数据分配不均匀 alter table user partition by range(id) ( partition p1 values less than (1), 阅读全文

posted @ 2022-03-15 22:01 暗,伏! 阅读(110) 评论(0) 推荐(0)

数据库笔记5——索引优化
摘要:一、索引优化技巧 A、 复合索引中,范围查找之后的索引会失效(select id from u where a=1 and b>2 and c=3,这条sql语句中,如果有(a,b,c)的复合索引,c的索引失效) B、 一张表最好不要创建超过5个索引,尽量用复合索引 C、 左连接将索引创建在右表上合 阅读全文

posted @ 2022-03-15 21:56 暗,伏! 阅读(255) 评论(0) 推荐(0)

数据库笔记4——explain命令
摘要:可以分析sql语句的类型、有没有使用到索引、分区 A、 id字段:id相同:id越靠前的表越先执行;id不同:id越大的表越先执行 B、 select_type 字段: simple: 简单的 select 查询,查询中不包含子查询或者 union primary:查询条件中包含有子查询时最外层的表 阅读全文

posted @ 2022-03-15 21:51 暗,伏! 阅读(191) 评论(0) 推荐(0)

数据库笔记3——聚集索引、非聚集索引
摘要:1、 聚集索引:其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字。 阅读全文

posted @ 2022-03-15 21:19 暗,伏! 阅读(92) 评论(0) 推荐(0)

防止重复请求
摘要:1、前端: 点击按钮后设置为不可用,提交成功后跳转到其他页面 2、后端: A、 在方法前弄一个action filter,对请求ip、传入参数、user-agent这些信息MD5成一个摘要,然后存redis里,设置几秒后过期。拒绝过期前这段时间过来的相同摘要的请求 B、当客户端要展示表单页面数据的接 阅读全文

posted @ 2022-03-15 21:15 暗,伏! 阅读(129) 评论(0) 推荐(0)