秋招C++开发学习之路day21

day24(设计模式)

  1. 设计模式
    面向对象最基本的设计原则有5条:单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则和Liskov替换原则。
  2. 常见的设计模式
    单例模式:单例模式主要解决一个全局使用的类频繁的创建和销毁的问题。单例模式下可以确保某一个类只有一个实例,而且自行实现实例化并向整个系统提供这个实例。
    单例模式有三个要素,一是某个类只能有一个实例;二是他必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
    工厂模式:工厂模式主要解决接口选择的问题,该模式下定义一个创建对象的接口,让其他的子类自己决定实例化哪一个工厂类,使其创建过程延迟到子类进行。
    观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都得到通知并被自动更新。
  3. 单例模式的多线程安全问题
    在单例模式的实现中,如果不采取任何措施,在多线程下是不安全的,可能会同时创建多个实例。因此,为了保证单例模式在多线程下的线程安全,一般采用下面几种方式实现单例模式:
    1,饿汉式:基于class loader机制避免多线程的同步问题,不过,instance在类装载时就实例化,可能会产生垃圾对象。
    2,懒汉式:通过双重锁机制实现线程安全。
  4. 保证单例模式只有唯一实例
    将该类的构造方法定义为私有方法,这样其他的代码就无法通过调用该类的构造方法来实例化该对象,只有通过该类提供的静态方法来得到该类的唯一实例。
    在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用。

day25(二分查找、http与https区别、一个http、ICMP、PING、DNS、http1.1状态码)

  1. 二分查找的最坏情况需要查找:(log2N)向下取整+1 次。
  2. http与https的区别,https是在TCP与https之间还有TLS SSL(应用层)协议。
    http默认的端口号是80,https的默认端口号是443
    http是基于传输层tcp协议,http传输之前先要建立tcp协议,建立之后就可以进行http传输了。
    一次http称作一个事务,其工作过程分为以下4步:
    a,首先客户端与服务器需要建立连接,通常是一个超链接。
    b,建立后通过tcp套接字,发送一个请求给服务器,请求格式是:标志符、协议版本号、请求数据。
    c,服务器收到请求后,给与相应的响应信息,其格式为一个状态行。
    d,客户端收到服务器的返回信息通过浏览器显示在用户的屏幕,然后断开连接,释放tcp。
  3. http与https的区别
    https要用CA申请证书,需要缴费。
    http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    http和https使用的是完全不同的连接方式,用的端口也不一样。http是80,https是443
    http的连接很简单,是无状态的;https的协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http安全。
    https的应用比http少,因为https比较耗性能。
  4. 为了提高IP数据报成功交付的机会,在网络层使用了网际控制报文协议(ICMP)来使得主机或者路由器可以报告差错和异常情况。他封装在IP数据报中。
    PING命令工作是在应用层,他直接使用网络的ICMP协议,而没有使用传输层的TCP或UDP协议。
    PING命令是ICMP的一个重要应用,主要用来测试两台主机之间的连通性。
    DNS是域名(网络设备名)到IP的解析,ABR是IP到MAC地址的解析,ICMP是ping命令所需要的。
  5. http1.1协议中的状态码:
    100表示客户端应当继续发送请求,
    200表示请求已经成功,响应返回
    400表示语义有误,当前请求不能被服务器理解,或者请求参数有误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值