背包重量: 0 offer 最近有点累了,更新的有点慢,明天面腾讯云,但是今天不是很舒服,本来想换个时间,但是今天看了下换不了了,只能硬着头皮上了,真的是 法克 me 手撕代码部分: 12345 中找等于和为10的排列 数字可以重复使用(10个1这样) 面经: 1、C++中的const、define、static的区别 2、const在哪几个地方有不同的作用,具体说一说,类函数后面加了一个cons
自我介绍 项目 如何实现cpu的虚拟化 线程如何切换 虚拟地址到物理地址转换 如何实现对象持久化存储(存储到磁盘)mmap原理 cpu访问磁盘数据和内存数据性能对比 实习 arm架构和x86架构区别 如何监控服务器cpu信息,内存使用率,io等 内存泄露原因及如何检测与预防,使用过哪些工具,原理是 八股文 tcp udp区别 面试使用的是udp还是tcp(封装过的udp,如何实现重传和有序传输),
1.tcp,udp,ip头部有什么 2.tcp,ip几个字节 3.如何修改socket接收缓冲区大小 4.项目里的mmap怎么实现的 5.如果多进程同时读写一个文件,怎么保证可见性 6.项目的用户态多线程怎么实现的 7.用户态和内核态 8.gdb怎么用的 9.静态变量在哪儿初始化的 10.说一下编译的过程,那静态变量是在哪个阶段初始化的? 11.要想调试需要怎么编译? 手撕:顺时针打印矩阵 反问:
一、手撕题 k个链表合并 20min 二、简单八股拷打 15min 1、在C++中,多继承会导致类继承了多个基类,可能存在同名虚函数的情况,出现二义性。如何处理二义性? 2、tcp三次握手过程、是否熟悉TLS协议 3、C/C++区别、堆栈的问题 4、内存泄漏处理经验 三、结合项目经历 10min 1、项目中负责的工作、难点,如何解决的,会针对提到的技术进行提问,交流。 四、反问 10min 1、具
1.简历项目拷打 2.C++11 3.std::move 4.移动构造函数 5.算法反转链表2
vector扩容,resize和reserve的区别 为避免重复扩容做的机制 C++空类大小 类的默认函数有哪些 移动语意,std::move()做的底层操作 smart ptr原理 weak_ptr如何实现的 shared_ptr线程是否安全? TCP、IP解释一下MTU,MSS IP分片 TCP三次握手 大小端,网络传输大端 进程和线程的区别 Linux子进程创建没有wait操作会发生什么 g
先手撕合并k个有序链表,本来想不让用STL,后来讲讲priority_queue的实现算了 讲讲new的实现,其中new什么时候返回空指针,什么时候抛出异常,抛的是什么异常 malloc线程安全吗,多线程malloc系统怎么设计 如何限制一个进程能够使用的线程等资源 C++你觉得最特别于其他语言的点是什么 java,python,c++垃圾回收怎么实现的 shared_ptr循环引用怎么解决 了解
7.27 下午三点一面(55min) 1、介绍一个项目,接触到的相关技术-两分钟 2、protobuf本身用来解决什么问题 3、json相对于protobuf有什么优势(可读性强和自描述性) 4、zookeeper分布式锁 5、zookeeper分布式锁的leader election(不会) 6、项目中粘包怎么解决的 7、定时器问题 8、解释ChainBuffer 9、讲一下基于RingBuff
1、自我介绍 2、什么项目都没问直接开始拷打基础 3、空类有哪些函数? 4、虚函数的实现原理(说了只会用,面试官:笑) 5、为什么析构函数定义为虚函数(不然只会析构基类) 6、如何实现重载 7、C++11新特性 8、进程和线程 9、进程通信方式 10、线程同步方式(脑子抽抽了,一开始答成了线程之间通信方式了) 11、进程之间如何进行上下文切换 12、右值是?解决什么问题 13、快速排序说一下?时间
是我不配 1.自我介绍 2.项目相关 介绍一下Reactor 为什么自己实现Reactor 不采用现有网络库 用json传输的数据采用什么数据结构存储 socket怎么知道读取到完整的一个数据包 怎么知道下一个数据包到达 介绍一下异步日志 缓冲队列怎么实现的 缓冲队列是怎么解决多线程的并发操作 缓冲队列满了是怎么处理的 阻塞等待会不会妨碍工作线程 怎么实现哈希表的,怎么解决冲
系统调用实现过程 软中断,硬中断,中断如何实现的 网卡是干啥的,网卡收发数据是通过什么实现的 虚拟化实现的方式(软件实现,硬件实现,容器)以及硬件如何实现 网络层面的攻击有哪些(syn攻击,arp攻击)服务端如何防止这些攻击 虚拟地址和物理地址转化 多态,虚函数实现原理 迭代器是干嘛的,如何实现 vector底层原理,动态扩容,map底层原理 如何调试coredump 三数之和 反问
全长40分钟,拷打完项目就是写题,无八股。 手撕 1.反转链表 leetcode106 2.重排链表 leetcode143#快手##面经##c++#
1、extern C 的作用 2、多态讲一下,静态多态动态多态 3、虚函数原理、虚函数表、虚函数指针那一套、虚函数怎么寻址的(当时也没答出来,应该是根据虚函数声明顺序,通过虚函数指针+偏移量的方式进行下标索引寻址) 4、析构函数可以声明为虚函数吗? 5、析构函数没有声明为虚函数一定会发生内存泄露吗? 6、STL库了解吗?讲一下你常用的数据类型 7、讲了vector,底层原理的实现,怎么理解动态,删
约了hr面 复盘一下二面 一三面没记录 1、自我介绍 2、项目没怎么问 3、new和malloc的区别 追问new初始化的好处 4、用过STL吗 问map 底层 追问怎么判断key值存不存在(我说用find 问还有没有其他方式 可以通过数组下标访问吗 不存在又会返回什么) 5、多进程通信方式 用过哪种 (我说了信号量 追问信号量怎么通信的) 6、tcp和udp的区别 7、拥塞控制的作用 8、流量控
自我介绍 聊实习 聊实验室项目 怎么分析一个程序的瓶颈 IO多路复用 场景题:多线程客户端可以使用一个socket吗?怎么保证线程得到想要的数据 c++怎么禁用拷贝构造 c++怎么实现单例模式(静态局部变量,双重加锁检查) 加单个锁可以吗(可以,但是影响效率) 算法: 数组中的数代表能走的步数,能否到达尾部 写一个LRU缓存 把LRU缓存改成线程安全