面经收集2【计算机】

注:
一个

表示一次面试问题


操作系统

对于操作系统了解了哪些东西?(回答了线程、进程,物理内存和虚拟内存)
(针对我的回答问)那针对物理内存和虚拟内存了解哪些?
如果(不使用虚拟内存)使用物理内存,可能会出现哪些问题?(回答了一段)(提示)如果同时运行几个程序,有没有可能同时使用到同一段物理内存?(提示)如果直接使用物理内存,在指定内存位置时,是否会出现不存在的情况?(提示)程序在运行时,可能一开始并不知道自己需要开辟多大的内存,如果直接使用物理内存,会造成空间难以分配的的问题
(针对我的回答)用自己的理解说一下线程和进程的区别,进程切换开销比线程大,具体有哪些开销呢?
进程从启动到加载的过程是怎么样的?(区别一下操作系统的加载)
磁盘管理,内存管理,进程调度是否了解?(提示多了解一下底层原理)

13.死锁产生的条件,怎么解决死锁(只知道粗粒度锁和设置锁优先级)

解释进程 线程 协程,使用线程一定会提高性能吗(不能的话解释原因)
什么是守护进程,作用是什么,自己怎么实现守护进程
大端编码小端编码解释

3、 进程与线程的区别,分配给进程的资源是什么
4、 协程,什么时候用到过,协程与线程的区别,协程什么时候释放CPU
6、 虚拟地址和物理地址

18、 线程之间的同步方式,自旋锁和可重入锁的区别,什么时候使用

45min
内存、栈堆、获取网页的流程、线程进程、工作考研的选择、来深圳

计算机网络

TCP和UDP的区别,为什么一个是可靠的,一个是不可靠的
快恢复是怎么实现的?怎么理解快恢复?

7.TCP和UDP的运用场景有哪些?
8.TCP的可靠性是通过哪些机制执行的?()
9.(针对回答)能否讲一下拥塞控制?
10.(针对流量控制)通信双方在链路上有拥塞控制的方式进行流量控制,那么在通信双方上,有什么流量控制的方式?(提示)如果发送方发送100k的数据,而接收方只有10k的缓存,如果保证数据的有效传输
如果传输过程出现丢包的情况,应该怎么做?
11.(针对回答)通信双方传输数据是只发一个包还是一次发多个包?
12.(针对回答)接收方是如何对该段数据包进行确认呢?(提示多包发送是每一包都回复确认吗?)
如果发送方先发了数据包编号1,数据包编码2,如果数据包2先到达接收方,这个时候接收方会怎么做?(提示接收方如果是乱序接收,如何保证数据有序性?)
13,TCP是可靠的传输,UDP是不可靠的传输,那么本质的原因是因为数据包在传输过程中会出现哪些意外?
14,(针对回答)通信双方如果出现宕机的情况,那么会有什么样的机制处理这种情况?

8.TCP和UDP的区别
9.TCP和UDP的首部报文格式差异(记不清了)
10.TCP三次握手和四次挥手

攻击服务器的方式有哪些,分别对应的解决措施是什么
TCP作用,三次握手,服务端的accept()方法是三次握手中的哪个阶段
四次挥手中 TIME_WAIT和CLOSE_WAIT设置在哪个阶段,设置目的及时长考虑
假冒站点问题,如何解决
HTTP和HTTPS区别,HTTPS实现方式,HTTPS一定会用TCP吗
非对称和对称加密方式的区别,HTTPS采用哪种,原因

1、 TCP建立三次握手的过程,为什么初始化序列号要随机取,从0开始会出现什么问题
2、 TCP为什么要有确认号

大部分都是网络的问题
1、 TCP三次握手,画图
2、 从局域网访问一个URL的整个过程,NAT技术,DNS,ARP协议等
3、 如果有一个包1M,怎么分片
4、 把TCP的头部写出来看看
5、 TCP相关慢启动,拥塞避免,快重传,快恢复
6、 TCP怎么保证报文的顺序(序列号seq,ack)
7、 TCP中有一个包丢了怎么重发,接收端失序的包放在哪里
8、 IO多路复用怎么实现,服务端怎么处理,写一下整个过程(类似伪代码之类的吧)

1、 浏览器输入URL之后的所有过程,客户端怎么处理,服务端怎么处理
2、 服务端怎么解析http请求
3、 服务端在处理http请求的时候会有什么问题,怎么解决
4、 服务端怎么同时处理多个请求
5、 为了进一步提高并发量,客户端可以怎么做,服务端可以怎么做
6、 为了保证通信之间的安全要怎么做(https)
7、 https的TLS握手过程
8、 https会不会出现中间人攻击
9、 如果目标服务器被代理服务器劫持会怎么样

Linux

查linux系统的ip地址(ip a:这个命令不只是打印ip地址这么简单),在这个基础上单单获取到ip地址的值(不要其他无效信息)。
查linux某个端口是否被占用

5、 Linux命令 awk,strace,gdb调试相关

数据库

22,MySQL只是学习还是有实践应用?在使用过程觉得有哪些注意事项?抛开语法的错误使用外,使用MySQL需要注意哪些东西呢?
23,MySQL中使用到的数据结构是什么?
24,了解哪些数据结构?是否了解一些复杂的二叉树?(针对回答)这些二叉树本身可以解决什么问题,存在哪些问题,又是如何进行改进的?(针对回答)为什么需要引入红黑树?

14.场景题:在一个服务中调用另一个服务的接口保证数据一致性,例如:提交订单不会提交两次(分布式锁?其他不清楚了)
15.场景题:高并发场景下数据库压力很大,怎么解决?(使用索引,使用缓存,分库分表?当然还存在IO瓶颈)
后来面试官又提出了MQ消息队列也行。

索引是通过什么实现的
B+树和红黑树的区别
悲观锁和乐观锁
Mysql有哪些存储引擎,各自特点

项目中用的是什么数据库;
MySQL中主键索引和唯一索引的区别;
innodb引擎中索引的底层数据结构;
B树和B+树的区别;

9、 介绍一下数据库的两种引擎
10、 Mysql和Myisam使用select * 查询的过程的区别(MyIsam是非聚集索引)
11、 Mysql使用索引查询和不使用索引查询的查询流程,效率差多少(B+树)

10、 为了加速磁盘的存取速度,一般会使用缓存,缓存要使用什么数据结构才能保证效率最高(LRU)
11、 LRU怎么实现的,要用什么数据结构
12、 将一个文件从内存中写入磁盘,设计一种数据结构来加速这个过程(应该是LSM树)
13、 数据库的索引如何加速查询过程,为什么不用红黑树
14、 给微信朋友圈设计一个表的结构来存储,怎么查询某一条朋友圈

算法题

如何判断两条单链表是否相交(暴力方法和优化方法:共享屏幕手敲代码)
手写堆排序

手写算法:一个在区间[1,5]取随机整数的函数,改为取[1,7]
100匹马,4个赛道,找出跑最快的4匹马(没做出来)

11.手撕代码,二叉树的前序遍历

13.算法题:从1亿个数中找出最大的100个(我说了堆排序,建大堆100次。然后面试官问一定要排序吗?不排序可以吗?)
(后来想了,遍历一遍,准备100的变量存储最大100个数的下标,遍历每一个数的同时跟那100个小标的数比较)

有200亿条QQ号信息,其中只有1亿条是不重复的,怎么提取出来,说出2-3种解决方案
200亿条QQ号,一共占多少存储空间

一亿个数据,找最大的一千个,应该怎样解决;

一面
手撕四道题
1、 奇偶链表
2、 二叉搜索树找到第K大的节点,不能转存
3、 接雨水
4、 rand35()实现rand47()
笔试做了一个小时,然后和面试官讲解题目大概花了15分钟

二面
手撕四道题
这次手撕是现场面试,在草稿纸上手写
1、 两个链表相加
2、 数组循环移动K位
3、 最长无重复子串
4、 K个一组反转链表

手撕三道题
1、二叉搜索树
2、回形矩阵
3、广告位概率问题

写三个题
实现小顶堆、leetcode237、统计1~n中每个数二进制下1的个数

1万字文章如何检查1万个敏感词,ac自动机

排序算法有哪些
如何找一个链表里第2/3大的数
如何在数据流中维护第2/3大的数,大根堆+小根堆
20亿个数排序
实现链表的快速排序
每隔m个进行链表反转。

SQL题

10.SQL题,三张表:部门、员工、工资,查询某个部门2019年年薪超过12万的员工

11.SQL题:订单表的订单号没建唯一索引有大量重复的订单号,怎么去重?
12.SQL题:学生课程成绩表(student_id,course_id,score),查询所有课程成绩都>60分的学生的student_id

C++

15,是否了解内存模型?(提示如果写一个类的实例对象,那么在内存中分为哪几个部分?)(提示常量、静态变量、虚函数表)(提示new产生一个对象时,内存模型是怎么样的?)
16,父类中定义了一个虚函数,子类继承该虚函数,那么在内存中调用虚函数过程的机制是怎么样的?
17,一般给一个指针开辟空间后需要主动释放内存,如果已知一个对象的生命周期很短,如何写一个工具类能够帮助释放内存?
18,C++的析构函数的触发机制和调用事项是否了解?
19,C++作为面向对象语言,如果理解面向对象的?(针对回答)从某中意义上讲,底层都是指令集,为什么C++能够面向对象而C不行?(那么C与C++本质是有区别还是无区别的呢?)(针对回答提到封装)如果完全用C进行语言封装,是否能够达到C++的面向对象的效果?
20,如何理解继承和多继承?

多态作用

15、 面向过程和面向对象各自的优缺点
16、 你自己最常用的面向对象的哪个特性,面向对象编程有什么陷阱

设计模式

设计模式了解哪些?(针对回答)单例模式中双检索如果变成一次会有什么影响?

MVC,每一层作用及设计优点
常用设计模式有哪些,手写单例(三种以上方式实现),开闭原则

其它问题

自我介绍
项目和实习经历
你项目是B2B是吧,那讲解下RPC架构,了解微服务吗(对不起,我是fw)
讲解一下engix。怎么理解反向代理?讲下负载均衡的算法。

1.先自我介绍然后讲一下最拿得出手的一个项目

17、 负载均衡的算法
19、 你的能力体现在哪些方面

自我介绍
以往一个项目介绍,问了问项目中的技术难点及解决方案

静态库、动态库
linux如何查看进程流量
1万字文章如何检查1万个敏感词,ac自动机
编译多个文件
写过的多线程程序

问题来源

腾讯秋招补录面经,CSIG事业群腾讯云

腾讯CDG C++一面面经校招

2021.01.28腾讯校招补录一面

腾讯微信后台开发一面

腾讯补招后台开发一面面经

腾讯(WXG后台)4(技术)+1(HR)(已oc,还愿)

12.29 腾讯teg后端补招 一天两面 已拒

经验贴

C++后台:从实习到秋招的总结(已签腾讯微信)

秋招总结,我是如何拿到两百万年薪offers(非头部计划)?

猜你喜欢

转载自blog.csdn.net/weixin_43154149/article/details/113859462