鼠鼠是南航通信本科+硕士,暑期实习接近尾声,投了十几家公司至今依然颗粒无收(555~),上周五终于得到第一次面试机会,岗位是联想公司C++开发,base上海,分享一些经验给大家。我把能回忆起来的问题按顺序写在下面,括号里是自己回答的情况。
- 自我介绍。简单根据个人情况讲了讲荣誉奖励、科研成果和个人技能。(提前写在记事本里,介绍的时候打开对着念)
- 第一作者发表的EI论文是在投还是接收?(2篇已见刊)
- C++,Override,基类中定义virtual函数,子类中重写的语法?(太久没写记不清语法了,胡言乱语了几句,面试官没有太过追问)
- C++,char*,char[],string定义的字符串后面是否有'\0'?(C++的string后面带换行,char*和char[]后面不清楚,面试官表示ok,不继续追问)
- C++,构造和析构顺序?(析构从内到外,构造从外到内)
- 平时在什么平台进行开发?用什么编译器?(Windows和Linux都有,Win下使用VS即MSVC,Linux下使用g++)
- 谈谈fork()函数?(进1出2,创建一个子进程,多次使用进程数指数增加)
- 谈谈new和delete以及相关的底层函数?谈谈内存泄漏问题?(根据侯捷老师课程内容回答,底层为malloc和free,new执行申请堆内存,也可能无法分配内存,特殊操作delete[],new可以不显式指定内存分配大小,面试官追问new和delete是否有其他函数被执行,回答构造、析构,面试官追问是否了解侯捷所讲C++内存管理,答学习过一点点,不再追问)
- 谈谈进程创建后在Linux中的内存分布?(回答内存四区,虚拟地址空间,栈内存堆内存)
- 创建10个线程,线程通信问题?(直接答不清楚,面试官不再追问)
- 谈谈你常用的数据结构?(答喜欢Hashmap,追问why,答自己做leetcode第一题两数之和的故事,引申出空间换时间概念,追问空间换时间在什么情况下都成立吗?答硬件资源有限情况下不合适,如嵌入式系统,51单片机等)
- 你用C写过什么项目?代码行数?谈谈项目中你用到了C语言的哪些常用特性?(写过贪吃蛇小游戏,C中Struct和C++中Class的异同,面试官追问指针,答int*、int**和int ***的关系)
- Linux下程序有问题,如何调试?(答GDB打开,打上Breakpoint进行调试)
- 在Linux系统下,使用for循环,一直进行new操作,会发生heap-overflow吗?如果不会,原因呢?(答应该不会,Linux系统可能会对此情况进行处理,面试官追问如果不用C++而用Java呢,答Java虚拟机等,胡扯了一些)
- 你的简历提到参与过研究生数学建模竞赛,谈谈你们做的题目和选择的算法,参与形式是个人还是团队?算法是你实现的吗?(答当时的题目和选择算法,3人组队排名第二,两种算法之一是本人实现,基于周志华西瓜书和李航统计学习方法)
- 简单问了一些简历上的问题和实习经历?(。。。略过)
- 你有什么要问的吗?(答,如果我有幸得到这个机会,联想公司会如果培养我?。。。)
总的来说面试官态度很友善,给的压力不是很大,回答问题的时候会提示你。几个没答上来的问题也是自己技术水平有限,总之算是一次比较轻松愉快的面试,面试官讲一周后出结果,如果通过的话还会有一次二面,希望联想能把我这个菜鸡收下
#联想##C++#
#暑期实习##暑期实习招聘#
#牛客在线求职答疑中心#