经典面试题整理

new和malloc的区别

  1. new/delete是c++关键字需要编译器支持,malloc/free是库函数,需要库支持
  2. new 无需指定申请的大小,系统自动识别,并返回相应的对象指针,malloc需要指定申请内存的大小并且返回值为void*类型需要进行强制转换。

TCP为什么进行三次握手而不是两次握手

  1. 首先确定三次握手是什么,然后客户端和服务端都需要维护一个序列号这样才能标识发出的哪些数据包被对方收到,第二次握手确定了客户端的序列号,第二次握手服务端发出序列号等待确认,第三次则是确认服务端发出的序列号,如果没有第三次握手服务端的序列号则会得不到确认。

static的作用

  1. 在c++类中,static的存在是为了能够随时改变但是却不需要new出一个新类来调用他,是类的成员但不是对象的成员,本身不含this指针。
  2. 不能把静态成员函数设置为虚函数。
  3. static并没有增加程序的时空开销,相反她还缩短了子类对父类静态成员的访问 时间,节省了子类的内存空间。

shutdown和close的区别

  1. shutdown和close对应的系统操作不一样
  2. shutdown仅可以用与套接字描述符,并且不可以用于已经关闭的套接字描述符,但是不可以释放套接字描述符仅仅断开连接,而close可以用于任意的描述符,可以释放套接字描述符。
  3. shutdown可以关闭读写通道,而close不可以。

后续会更新。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值