京东提前批C++面经,一面二面
6月28投的提前批,中间等了一个多月才一面,8月中旬hr面完,现在又一个月了,一直是offer绿灯阶段~🤣🤣🤣
一面:
C++;
new 和 malloc的区别
C++多态继承的时候需要注意什么?
什么函数不能被声明为虚函数
析构函数和构造函数的虚性,为什么
网络:
TCP三次握手四次挥手
2msl
TCP可靠性怎么保证的
算法:
写一个不能修改内容的指针,(常量指针)const int * p
字符串相加
接雨水
一面还是很简单的,很快就出结果了~
二面:
介绍项目
1. reactor和proactor除了读写区别,还有其他的什么
2. 线程同步实现
3. 请求处理逻辑
基础知识:
4. void*指针可以调用类对象函数么
1. reactor和proactor除了读写区别,还有其他的什么
2. 线程同步实现
3. 请求处理逻辑
基础知识:
4. void*指针可以调用类对象函数么
5. class* A = nullptr;A->func会出现什么问题
如果函数中需要使用实际的成员变量的地址,则会出错,否则不出错。如果调用虚函数,也不行,会出错。
6. malloc后内存cookie保存的信息,除了内存大小还保存什么了
7. 析构函数为什么要是虚函数,构造函数中可以调用虚函数么
8. 四种强制类型转换,static_cast可以用来实现子类转换成父类吗
可以,但不安全
9. shared_ptr是线程安全的么,为什么
不是,更改实际指向和计数是分开的操作。
10. 如果把shared_ptr中的两个操作分开,各自是线程安全的吗
11. int p = 2是原子操作么,下渗到汇编了,这一条高级语言会被时间片轮转打断么
一般是原子操作,编译后生成的应该是一个mov语句。
12. 汇编复制语句是什么,对内存地址有什么要求
不超过位数吧应该。
13. 进入Main函数之前,都执行了哪些函数?
14. 如何在Main函数之前执行代码
15. cpu是直接操作内存吗,cache呢
16. CPU对内存操作的流程是啥样的,为什么要加一层Cache,cache和内存有啥区别
15. 操作系统里,带“地址”的概念,都了解过哪些?
16. 什么是线性地址和虚拟地址
17. 逻辑地址和物理地址转换
18. linux除了基本的ls指令什么的,还用过什么
19. GDB咋用的,怎么看堆栈信息,实际项目里怎么调试的
20. 服务器请求处理波动,怎么排查这个问题
21. 一个日志系统需要考虑什么问题
日志文件大小的切分、日志写入效率(异步写)、异常的时候如何保证日志数据不丢失、多线程并发写日志问题
22. 实现一个Memcpy函数(const指针问题、优化:CPU一次读取多少数据、拷贝覆盖问题、如果允许覆盖会有什么问题)
二面问的有点难,不过还是过了,10天后进行Hr面,问了些意向什么的~
从投递到现在已经2个半月了,京东真是绝了~
#互联网求职##面经##京东##校招#