大家好,我是轩辕,上次提到有人用ChatGPT来面试,企图蒙混过关,结果评论区有人说为什么不能用AI面试,反正工作中也是要用,面试为啥就不能用。
看到这评论,我差点一口老血喷出来。
最近面了很多人,发现很多计算机科班毕业的基础都很差。随便举几例,大家感受一下:
问:进程和线程的区别是什么?
答:不太清楚。
问:操作系统调度的是进程还是线程?
答:额,是进程
问:HTTPS和HTTP区别是什么?
答:HTTPS比HTTP更安全
问:为什么更安全?
答:。。不知道
问:你知道HTTPS中的S是代表什么吗?
答:Safe
问:你确定吗?
答:额,难道不是吗?
问:TCP与UDP有什么区别?
答:TCP是可靠的,面向连接的。
问:为什么是可靠的,什么是面向连接。
答:。。额,不太清楚。。
每次遇到这些候选人就很感慨,如果是跨专业自学的倒也就罢了,一些计算机科学与技术、软件工程的同学连这些最基本的问题都不知道,这大学四年不知道是怎么过来的。
轩辕工作十多年,被很多人面试过,也面试过很多人。马上春招就要来了,这里把Linux C/C++开发岗位面试经常会遇到的一些问题帮大家梳理了一下,大家可以看看自己能答得上多少。
Linux C/C++岗位面试一般分为三部分,分别是:
1、基础知识考察。包括编程语言语法知识、操作系统、数据结构与算法、计网、数据库等。
2、场景问题考察。给出一个具体的场景,给出解决方案。
3、简历上过往项目相关问题。
其中前面两部分占比最高,除非前面两部分答得都太糟糕了,才会问问项目相关的。因为面试官每天要面试很多人,人家没有兴趣去认真研究你的项目是做啥的,除非你的项目跟公司的项目有一定关联性。
0x01:C/C++语言
1、谈谈你对C和C++的编程差异理解
2、static关键字在C语言和C++中各自有哪些不同用法?
3、union是什么,有什么用?
4、volatile关键字是做什么用的?
5、函数调用过程在汇编层面如何进行?
6、面向对象有哪些基本特性?
7、多态是如何实现的?什么是虚函数?
8、编程实现一个单例模式
9、一个对象只有一个int型成员变量,sizeof的大小是多少?
10、一个对象有一个int型和一个char型成员变量,sizeof的大小是多少?
11、一个对象只有一个int型成员变量和一个虚函数,sizeof的大小是多少?
12、什么是RAII?
13、智能指针的原理,weak_ptr是做什么用的?
14、vector容量满了会发生什么?
15、map和unordered_map有什么区别?各自如何实现?
16、右值引用是什么,move是为了解决什么问题?
17、构造函数能不能抛出异常?析构函数呢?
18、C++中哪几种类型转换,区别是什么?
19、从源代码到可执行程序,中间的过程是什么样的?
0x02:数据结构与算法部分
1、二叉树的四种遍历方式
2、哈希表工作原理,如何解决哈希冲突?
3、编程实现一个二分查找
4、常用的排序算法,各自的的时间复杂度是什么?
5、1-2走台阶问题,递归和动态规划两种解题方法
6、一个一维数组,先单调递增,后单调递减,如何找到这个拐点?
7、如何设计一个算法,快速判断一个IP地址有没有在系统中出现过?
8、设计一个线程安全的队列
0x03:操作系统
1、进程和线程的区别?
2、进程地址空间里面有什么东西?
3、线程的栈里面有哪些东西?
4、谈一谈虚拟内存机制
5、虚拟地址的翻译过程是怎样的?
6、fork的原理是什么?
7、进程间通信有哪些方式?
8、共享内存的原理是什么?
9、原子操作的原理是什么?
10、I/O多路复用有哪些模型?
11、epoll高性能的原因有哪些?
12、谈一谈signal机制
13、什么是系统调用,执行系统调用的过程是什么?
14、写时拷贝是什么,底层实现原理?
0x04:计算机网络
1、四层模型是哪四层,各自负责什么功能?
2、ping命令是什么原理?
3、traceroute是什么原理?
4、什么是ARP欺骗?
5、集线器、交换机、路由器的区别?
6、什么是MTU?为什么是这个大小?
7、TCP三次握手和四次挥手机制
8、TCP的第三次握手可以携带数据吗?
9、TCP可靠性由哪些机制保证?
10、超时重传如何进行?
11、DNS解析过程如何进行?
12、HTTP中有哪些Method,POST和PUT什么区别?
13、HTTP1.0和1.1有什么区别?
14、HTTPS安全性的原理
15、什么是反向代理?nginx负载均衡有哪些策略?
16、从输入网址到网页内容展示出来,发生了哪些事?
0x05:数据库
1、什么是数据库索引?
2、MySQL数据库索引有哪些实现方式?
3、B+树和哈希索引各自的应用场景?
4、什么是回表?
5、什么是事务?事务的基本特性?
6、分库分表有哪些方案?有什么区别?
7、什么是缓存击穿、缓存雪崩、缓存穿透?
8、Redis单线程为什么很快?
9、Redis怎么实现消息队列?
10、Redis有哪些持久化方式?各自实现原理?
11、ElasticSearch基本原理?
0x06:其他
1、平时学习有哪些途径和方法?
2、遇到问题时怎么想办法解决?
3、自己做过最有成就感的事情是什么?
4、未来想做哪方面的工作?
5、我的问题完了,你有什么想问我的吗?
欢迎收藏,欢迎点赞~
春招在即,如果你的简历上还缺乏项目经验的话,欢迎戳这里看看:
往期推荐
原文始发于微信公众号(轩辕的编程宇宙):HTTPS中的S是什么意思?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论