【无标题】

一、C++

1、new和malloc的区别

共同点:new和malloc都是动态地从堆上分配一块内存,并且需要手动释放。

不同点:

new   malloc
会调用构造函数(所以可以为模板类分配空间,因为可以调用类的构造函数),使用delete释放不会调用构造函数(例如:使用malloc为string分配空间会出问题),使用free释放
分配空间时不用指定大小分配空间时需要指定大小
分配失败会根据编译器的不同抛出异常或者返回NULL分配失败会返回NULL 
是C++关键字是库函数

2、析构函数能抛异常吗?

1、可以使用try-catch抛出异常

2、不使用try-catch则不可以,因为如果析构函数出现异常,可能导致后续的delete语句无法执行,导致内存泄漏。

3、如何计算一个类占用的内存?

①需要考虑哪些因素?类是否为空、字节对齐、是否为基类/子类、是否有虚函数表、类成员、类方法。

②空类对象的大小为1字节:为了区分独一无二的对象。

③类成员函数(包括静态与非静态)、静态成员变量、虚函数本身不占用类对象空间。因为是多对象共享的,占用的代码段的空间。

④子类继承基类的所有成员(考虑字节对齐)

⑤虚函数指针占用4(32位)/8(64位)字节。

⑥总结:类对象大小 =(字节对齐)类非静态数据成员+虚函数指针+(字节对齐)基类非静态成员        

4、STL内存分配

https://blog.csdn.net/chuuya1/article/details/129230899

二、Linux

1、如何排查time_wait的数量

2、监控网络的命令

3、GDB调试多线程

三、git

1、git pull 与git fetch

        git pull = git fetch + git merge

四、

1、写代码的途中出现过什么问题,怎么debug

五、OS

1、进程与线程的区别

2、协程

六、项目

1、协议处理做了些什么东西?处理过程中的问题与难点?协议处理要求效率高,是否有什么优化的方法?没有查具体的损耗?相关领域有做这样的事情的吗?

七、算法

1、手写实现智能指针

2、二叉搜索树最低公共祖先空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值