12 2021 档案
策略模式、状态模式、责任链模式
摘要:这三种模式都是对if else的优化,在大量if else对性能影响可能微乎其微,但是不便于阅读和debug。实际使用,这三者具体区别是什么很重要。 首先策略模式最为灵活,也是我使用过的,Java中比较常用的方法。首先将代码块的行为抽象为一个接口,然后将写在一个行为类里。再建立一个工厂类,内置一个h 阅读全文
posted @ 2021-12-25 21:41 柴刀叨叨叨 阅读(513) 评论(0) 推荐(0)
java线程底层调度
摘要:在sun.misc.unsafe类中有如下几个方法,unsafe类作为能直接操作内存等操作的魔术类,有部分关于线程阻塞的native方法,这些native方法就是一个java调用非java代码的接口,底层由C或其他内容实现,在Thread类中还有如start0之类的native方法。所以明面上我们调 阅读全文
posted @ 2021-12-24 11:08 柴刀叨叨叨 阅读(34) 评论(0) 推荐(0)
字节面经-操作系统页表管理
摘要:例子:32位虚拟内存地址 10bit页目录+10bit二级页表+12位页内偏移 CR3->10bit页目录KV式查询->10bit页表前20位物理地址->物理地址32bit=前20bit查询得到+原始页内偏移12bit 缺页中断(虚拟内存)(LRU算法) 寻找到一个空闲的页。或者把另外一个使用中的页 阅读全文
posted @ 2021-12-13 16:07 柴刀叨叨叨 阅读(102) 评论(0) 推荐(0)
读http协议2.0
摘要:最早期的 HTTP/1.0 时代,一个资源 = 一个 TCP 链接 = 一个 HTTP 链接,每个 HTTP 请求结束都会断开 TCP 连接,新的 HTTP 请求会另外新建一个 TCP 连接,并且只有当一个完整的请求结束(TCP closed)才会开始下一个请求(阻塞)。 (为每一个资源所付出的握手 阅读全文
posted @ 2021-12-13 15:41 柴刀叨叨叨 阅读(103) 评论(0) 推荐(0)
DDD思想与入门
摘要:1.贫血模型和充血模型 贫血模型: 定义对象的简单的属性值,没有业务逻辑上的方法 充血模型 定义属性的同时也会定义方法,可以通过某些方式直接得到属性值,也可以在对象中嵌入方法直接创建出一个具有属性值的对象。 Java业务中贫血模型为传统的Java Bean,即只有get和set方法没有对应的业务方法 阅读全文
posted @ 2021-12-10 15:38 柴刀叨叨叨 阅读(181) 评论(0) 推荐(0)
LVS负载均衡
摘要:ISO七层网络模型一共分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,我们重点关注数据链路层、网络层、传输层。 在数据链路层寻址靠MAC地址,网络层寻址靠IP地址,传输层则看端口。因为向下封包和向上解包的过程,所以越是底层寻址越快。 在DNS服务器上做,添加几个IP做轮询就可以了 阅读全文
posted @ 2021-12-09 18:49 柴刀叨叨叨 阅读(87) 评论(0) 推荐(0)