面试学习1

重点:
会的东西要更深入一点

面试内容
(一)自我介绍
把你的经历好好说出来就好,
如果有相关的就重点说一下。
(二)C++基础
1.C++vector的动态分配是怎么实现的
参考链接
vector的原理与底层实现
a.resize() 扩容
默认构造方式是0,之后按照1 2 4 8 16 扩容,扩容后是一片新的内存,需要把旧内存空间所有元素都拷贝进内存空间,之后再在新内存空间中的原数据后插入构造新元素
b.reserve()
只是保证vector的空间大小最少达到它参数所指定大小n,在区间[0,n)范围内预留了内存但并未初始化
答疑问题:
为什要以倍数的形式扩容,而不是以固定值形式扩容?
对数据的拷贝次数会减少。
为什么以1.5倍或者2倍形式,而不是3倍或4倍形式增长?
如果大于2倍的方式进行扩容,下一次申请空间会大于之前申请空间的总和,这样会导致之前空间不能被重复利用。
提高内存的利用率,每次扩容倍数应该在[1.5,2]之间更合适。
2.虚函数的底层实现
3.继承和派生的构造顺序
积累的构造顺序——>对象成员构造函数——>派生类本身的构造函数
4.对C++多态的理解
5.静态随机
(三)操作系统
1.线程和进程的区别(常规题)
2.再往深问进程和线程的地址方面
3.虚拟内存,虚拟地址
4.利用网络编程的相关知识
(四)计算机网络
1.TCP/IP丢包,重传,
(五)代码
1.反转链表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值