刘乾桢 level
获赞
22
粉丝
20
关注
2
看过 TA
162
湖南大学
2024
C++
IP属地:北京
暂未填写个人简介
私信
关注
01-07 15:47
湖南大学 C++
忘了发一面了,来补上,具体部门忘了,这个岗位是操作系统底层开发周三一面 1h:1、三分钟的简短自我介绍;2、问项目,着重对简历中最亮眼的一个项目进行询问。项目问的比较详细,背景、技术原理、架构等等都会问的比较深入。会详细询问你在项目中的贡献,项目的亮点。3、拷问代码能力;首先是给一段代码,需要通过观看理解代码的作用并且找出代码中的问题。这里给出我的是一串C++的类实现代码,大致代码如图一,这篇代码的作用就是定义一个类,然后完成对象的浅拷贝,这里的问题就是浅拷贝,容易出现野指针或者内存泄漏的问题。修改方案的话就是新增一个深拷贝的构造函数,在构造函数内部完成指针类型成员的复制4、C++的静态多态、动态多态:静态多态:重载,动态多态:重写(向上造型)。详细询问了实现原理,没答出来,答案在图二。5、Linux定时器O(1)时间复杂度的回调函数:也就是在O(1)复杂度的情况下,完成定时器的检索,执行回调函数的调用,我这里回答的是小顶堆的方法,虽然在插入的时候复杂度不是O(1),但是在检索是复杂度是O(1),应该是满足面试官要求的。6、TCP/IP 结构,每一层是做什么的。7、网络数据封包的格式目标Mac + 源Mac + 目标IP + 源IP + 目标端口 + 源端口 + 原始数据;8、TCP中time wait的作用9、TCP有哪些状态10、三次握手和四次挥手11、操作系统的命令查询进程的状态 top top中有些字段、ps aux查看内存使用情况 top、free、cat /proc/meminfo查看磁盘使用率 df查看网络连接 netstat12、进程和线程的区别13、进程的内存结构堆、栈、代码段、数据段、BSS段以及这些段的作用、生长方向。14、CPU进程的状态有哪些新建态、终止态,运行态,就绪态,阻塞态15、CPU进程调度算法先来先服务(FCFS)、短作业优先(SJF)、优先级调度(PSA)、高响应比优先调度(HRRN)、时间片轮转(RR)、多级反馈队列(MFQ)16、编程题 - leetcode - k个一组翻转链表
投递百度等公司10个岗位
0 点赞 评论 收藏
分享
01-06 19:09
湖南大学 C++
这个只记录了一部分,简单总结一下1、STL容器中vector的push_back是如何实现的,做了哪些操作,见图一2、什么是深拷贝,C++中如何实现深拷贝,见图一3、map与unordered_map的区别,见图二4、小顶堆是如何实现的,弹出堆顶元素之后,堆里做了什么调整,见图二5、TCP协议有四层有哪四层,见图二6、wifi在网络结构中属于哪一层    在TCP/IP网络模型中,Wi-Fi主要在网络接口层7、应用层协议一般有哪些    HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)、SSH8、gcc编译C++代码分为几步,见图二9、vim 操作    查找,/关键字,删除一行,dd,撤销,u,复制,yy,粘贴,p10、MySQL中primaryKey与index有什么样的区别,见图三11、索引的优点,使用场景,见图三12、有索引和没索引之间检索的区别,见图三13、Java的原生数据类型    int、short、long、char、boolean、byte14、如何把int的第n位,置为1,见图四15、如何把int的第n位,置为0,见图四16、Java和C++如何实现多线程    Java实现多线程的方式:    1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写run()方法,    将需要并行执行的代码放在run()方法中。然后创建这个类的对象,并调用其start()方法来启动新线程。    2. 实现Runnable接口:创建一个新的类,该类实现Runnable接口,然后重写run()方法。    然后创建这个类的对象以及一个Thread对象,将前者作为参数传给后者,然后调用Thread对象的start()方法来启动新线程。    C++实现多线程的方式:    C++11标准库中包含了thread类,可以用来创建和管理线程。    使用thread(func)创建一个新的线程,该线程执行func()函数。    然后调用t.join()来等待新线程结束。如果不想等待,可以调用t.detach()来让新线程在后台运行。17、实习时长没反问。
投递滴滴等公司10个岗位
0 点赞 评论 收藏
分享
01-02 20:04
湖南大学 C++
投递滴滴等公司10个岗位
0 点赞 评论 收藏
分享
2023-12-31 18:33
湖南大学 C++
终于下定决心总结面经了,这次面试表现不是很好,对很多从项目延伸出去的内容都不是很清楚,最后也没有手撕算法。凉凉。1、自我介绍2、首先是挖项目,深挖简历上的重点项目,因为我这里的项目是系统安全监测的项目,所以问的问题涉及到了很多安全机制、以及一些延伸的问题3、为什么不选择其他的防御机制,而是选择了这个项目中的机制4、在项目设计是出于什么目的的,有什么优点5、在项目研发过程中遇到了什么问题,是如何解决的。6、遇到内存泄漏的问题应该如何解决,如何避免: 见图一7、什么情况下会出现野指针    a. 未初始化的指针:如果你声明了一个指针变量但没有给它赋值,那么这个指针就是一个野指针,因为它指向的内存区域是随机的。    b. 已经释放的内存:如果你释放了一个指针指向的内存,但是没有将这个指针置为NULL,那么这个指针就成为了野指针,因为它仍然指向一个已经不再你控制范围内的内存区域。    c. 指向已经销毁的对象:如果一个指针指向一个已经销毁的对象,那么这个指针也是一个野指针。    d. 指向已经出了作用域的局部变量:如果一个指针指向一个已经出了作用域的局部变量,那么这个指针也是一个野指针。    e. 指针运算超出了允许的范围:如果你对一个指针进行了运算,使得它超出了它原本所指向的内存区域,那么这个指针也会变成野指针。8、gdb有哪些命令,见图二9、gdb如何调试,见图二没有编程题
投递百度等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务