设计模式研读-2 推荐书籍:《研磨设计模式》 适配器模式例子:旧硬盘可以直接和电源线相连,而新硬盘需要转接线才能。这就是适配器。数据库第一版和第二版接口不一致,需要用适配器。 定义将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用适配器模式来解决问题的思路问题的根源在于第一版和第二版接口的不兼容,功能是基本实现了的,也就是说,只要想办法让两边的接口 2021-04-16 设计模式
设计模式研读-1 推荐书籍:《研磨设计模式》 简单工厂 简单工厂创建物体的时候,需要客户端选择传入参数,说明客户端必须直到每个参数的意义,理解每个参数对应的功能。这要求一定程度上向客户端暴露内部实现。 每次给工厂增加一个实现类都需要修改工厂类的实现:Java/Python/Golang 的话可以通过配置文件修改,引入反射解决这个问题。也可以使用IoC/DI(控制反转/依赖注入)实现。 本质是选择实现。实现是具体的类 2021-04-15 设计模式
操作系统知识点总结 进程的内存布局中,哪些是线程共享的什么是缓存溢出程序在申请内存时,没有足够的内存空间供其使用。 一定要有线程吗?可以没有,但是线程可以解决并发,切换开销过大的问题。 进程与线程的切换开销?进程切换 切换页表全局目录 切换内核态堆栈 切换硬件上下文(进程恢复前,必须装入寄存器的数据统称为硬件上下文) ip(instruction pointer):指向当前执行指令的下一条指令 bp(base 2021-04-13 操作系统
数据库知识点总结 select * 为什么会很慢网络传输,CPU cost,IO cost。 如果select * 与你想查询的字段完全一致,单单就查询来说,select * 并没有降低查询效率。但时实际使用中这种情况极少。获取了不必要的列,此时要走全表扫描,会变慢。 影响自动优化,*的话就不优化。 MySQL的默认引擎是什么MySQL5.5以前是MyISAM,之后默认的事务引擎是InnoDB。 MyISA 2021-04-13 数据库
计算机网络知识点总结 路由器和交换机位于哪一层路由器:网络层 交换机:数据链路层 滑动窗口的实现机制发送方的四种数据 Sent and Acknowledged:这些数据表示已经发送成功并已经被确认的数据,比如图中的前31个bytes,这些数据其实的位置是在窗口之外了,因为窗口内顺序最低的被确认之后,要移除窗口,实际上是窗口进行合拢,同时打开接收新的带发送的数据 Send But Not Yet Acknowledge 2021-04-13 计算机网络
数到30 规则从1开始,每个人可以报1-3个数字,先后手自定,找最佳策略。 谁先数到30算赢先手必胜:先手A先报2个数,后面A每次和B凑成4个,就必胜。 谁先数到30算输先手的人尽力凑到29。所以先报1,然后A每次和B凑4个,就必胜。 2021-04-13 智力题
C++智能指针 参考:https://www.cnblogs.com/wxquare/p/4759020.html http://c.biancheng.net/view/7898.html 什么是智能指针智能指针是指向动态分配的内存区(堆)里的对象。 智能指针有什么用用于生存期控制,确保正确销毁动态分配的对象。防止内存泄漏。 理解智能指针需要从下面三个层次: 从较浅的层面看,智能指针是利用了一种叫做RAII( 2021-04-10 C++ 智能指针
C++编译过程 参考 https://www.runoob.com/w3cnote/working-process-of-the-compiler.html 配置编译器工作前,需要知道系统环境: 标准库的位置 软件的安装位置 安装的组件……配置保存在configure的脚本文件里,通常用autoconf生成。 确定标准库、头文件的位置配置文件给出一个清单,列出具体目录,编译的时候依次寻找。 确定依赖关系编译器 2021-04-08 C++ 编译
C++ const const 修饰指针指向的内容内容不可以改变。如下。 int main() { int a=4; int b=5; const int *p=&a; p=&b;//OK *p=9;//error return 0; } const 修饰指针那么指针本身不可以改变。指针指向的值可以改变。 int main() 2021-04-07 C++ const
C++多态 类之间存在层次结构,且类之间通过继承关联的时候就会用到多态。 多态意味着调用成员函数的时候,会通过成员类型来决定调用什么函数。 #include <iostream> using namespace std; class Shape { protected: int width, height; public: Shape( int 2021-04-07 C++ 多态