- 博客(9)
- 收藏
- 关注
原创 面试老大难——select、poll、epoll
1、select、poll和epoll三者应用的场景在《Netty权威指南》中提到网络编程对I/O模型进行分类,分为5大类:阻塞I/O模型、非阻塞I/O模型、I/O复用模型、信号驱动模型和异步I/O。其中在I/O复用模型中使用到了上述的三种接口,Linux提供的select/poll,进程通过将一个或者多个fd传递给select/poll进行系统调用,阻塞在select上,通过侦测多个fd是否处于就绪状态。比如我们常用的Nosql数据库redis就使用这中网络通信模式。 select/poll通过顺序
2020-08-19 21:21:00
377
2
原创 ZooKeeper
1、ZooKeeper简介主要用于服务分布式系统,可以用来做:统一配置管理、统一命名服务、实现分布式锁和集群管理 在分层的命名空间中ZooKeeper结点存储数据,类似于树结构。 ZooKeeper是一种C/S架构,其中的结点称为znode,分为四种类型: 持久化结点:client与server断开后,znode不会被删除 持久化顺序结点:和持久化结点一样断开后不会被删除,并且依据创建的时间顺序给结点编号 临时结点:client与server断开后,znode被删除 临时顺序结点:和临
2020-08-17 22:38:34
174
1
原创 ConcurrentHashMap原理分析
1、初始化public ConcurrentHashMap(int initialCapacity) { if (initialCapacity < 0) throw new IllegalArgumentException(); int cap = ((initialCapacity >= (MAXIMUM_CAPACITY >>> 1)) ? MAXIMUM_CAPACITY
2020-07-28 21:34:38
274
原创 设计模式【四】其他模式
文章目录1、模板模式(Template Pattern)1、模板模式(Template Pattern)1.1模板模式定义模板模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法模式可以使得子类不用改变一个算法的结构来重新定义该算法某些特定的步骤。我们可以简单理解为我们要按照设定好的步骤来完成某件事情,但是在其中某些步骤以因为对象的不同导致实现的细节也不相同,我们在父类中定义模...
2019-06-11 21:47:33
421
原创 设计模式【三】结构型模式(设计对象以满足特定的项目约束)
文章目录1、装饰者模式(Decorator Pattern)1、装饰者模式(Decorator Pattern)1.1 装饰者模式定义装饰者模式:可以动态的给对象添加一些职责,就增加的功能来说,它比生成子类的方式更加灵活。1.2装饰者模式类图Component是一个对象的接口,可以动态的给其添加一些职责。ConcreteComponent是Component的一个具体的实现类,也可以给...
2019-05-27 20:39:45
276
原创 OOP设计原则
文章目录1、单一职责原则2、开放封闭原则3、依赖倒转原则4、里氏代换原则5、接口隔离原则1、单一职责原则一个类或者模块,应该仅有一个引起其变化的原因。如果一个类承担的职责过多就等于将这些职责耦合在一起,一个职责的变化就有可能影响其他职责的能力。缺点:会造成类的数量增多。破坏了封装的原则:若将目标类中将含有私有数据访问逻辑的业务行为分离出去,则会造成外部类或方法访问目标类的私有数据,破坏封装...
2019-04-10 21:42:43
891
2
原创 数据库常见操作
1、修改表1)修改表名:alter table 旧表名 rename to 新表名;2)添加字段:alter table 表名 [column] 字段描述;3)修改字段名:alter table 表名 change 字段名称 新字段描述;4)修改字段名称:alter table 表名 modify 字段名称 字段类型 [约束条件];5)删除字段:alter table 表名 d...
2018-08-26 22:29:28
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人