0%

八股总结

[TOC]

腾讯测试与质量管理实习 24/4/2

1、自我介绍

2、讲讲电子设计大赛中做了些什么

3、讲讲专业课大概学了些什么

4、堆和栈的区别,为什么要分堆和栈

5、TCP和UDP的区别以及应用场景

6、三次握手流程

7、Python装饰器

8、有进行过Python的网络开发吗

9、Http和Https的区别

10、拥塞控制的原理

11、Linux的常用命令

12、手撕:最长无重复子串

华为无线通用软开实习 24/5/9

1、自我介绍

2、对专业的感受,主要是学什么

我答的物联网相关

3、展开问项目,项目中担当什么角色,做了哪些事情,有什么感受

4、堆区和栈区的区别,为什么要分堆和栈

5、项目中有没有做过内存管理,怎么做的

6、函数指针和指针函数的区别,应用场景

7、(挖简历)电子设计竞赛的题目和做了什么工作,奖学金是哪一年拿的

8、为什么要进行编码,常用的编码有哪些,原理分别是什么

9、FPGA、单片机、DSP的区别

10、(通信相关)4G和5G的区别,技术有哪些,技术原理

11、手撕(三道题抽一道)

二叉树的最大深度 https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

听别人说还有两数相加(链表)https://leetcode.cn/problems/lMSNwu/description/

总结:

八股和简历相关性大并且问题与部门相关性大,岗位知识少,主要拷打做过的东西和学过的,一定要掌握。手撕写得不好,有缺陷,可能因为八股答得不咋样简单手撕也没撕出来就挂了吧。数据结构要复习,另外就是还是缺乏和软件相关性大的项目导致问硬件偏多,而且又没有准备,答得很差。

C++

全局变量和静态全局变量的区别

作用域不同:

全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量。

静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它的文件里,不能作用到其它文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。

(全局变量、静态全局变量都在静态存储区分配空间)

inline函数

内联函数。如果一个函数是内联的,编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。

inline int Max(int a, int b){}

在类定义中定义的函数都是内联函数,即使没有使用inline说明符。

使用内联函数可以避免频繁调用函数对栈内存重复开辟带来的消耗。当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用。

只有当函数只有 10 行甚至更少时才将其定义为内联函数。

数据结构

哈希表

一种以[key-value]形式存储数据的数据结构。插入和查找的时间复杂度都是O(1)。

image-20240507212319641

哈希冲突:多个键值索引到同一个地方。

通常解决哈希冲突的方法:开放地址法、链表法

开放地址法从哈希表中再寻找一个空位解决冲突,链表法更加常用,每个数组对应一条链表,直接将新冲突的数据项添加到链表中,不需要从原始数组中寻找空位来存储。

用数组模拟栈

1
2
3
4
5
6
7
8
9
10
11
12
13
14
st = [0]*N

# st[0]代表栈中元素数量,同时也是栈顶下标

#压栈:
st[st[0]+1] = var1
st[0] += 1
#取栈顶
u = st[st[0]]
#弹栈:(注意越界)
if st[0]:
st[0] = st[0] - 1
#清栈
st[0] = 0

在Python中可以使用列表来模拟一个栈

1
2
3
4
5
6
7
8
9
10
st = [1,2,3]

st.append(5)
st.append(4)
# [1,2,3,5,4]

st.pop()
# [1,2,3,5]
# 清栈
st.clear()

用两个队列实现一个栈

leetcode225题

用单队列也可以实现,让栈顶元素始终保持在队首就可以了,只要保证先入后出规则,不需要在意队列内的顺序。

计算机网络

浏览器输入一个URL到获取网页的过程

输入URL地址

应用层进行DNS解析

应用层生成HTTP请求报文

传输层建立TCP连接

网络层使用IP协议来选择路线

数据链路层实现网络相邻节点间可靠的数据通信

物理层传输数据

服务器处理反向传输

服务器返回一个HTTP响应

浏览器渲染

包括的协议:HTTP \ DNS \ TCP \ IP \ PPP

ARP协议

即address resolution protocol,地址解析协议。通过ARP协议可以通过IP地址获取对方主机的MAC地址。

如果未知MAC地址,在封装MAC帧时就无法填写目的MAC地址。

ARP高速缓存表中如果查找不到对应的MAC地址,则广播ARP请求报文。对应主机收到之后,单播一个ARP响应报文。

ARP高速缓存表中的每一条记录都有类型,分为静态和动态。动态类型为主机自动获取的,生命周期默认为两分钟,因为IP地址与MAC地址的对应关系并不是永久性的。主机更换网卡,IP地址并不会发生改变,但MAC地址会变。

静态类型是指记录是用户或网络维护人员手工配置的,不同操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效。

ARP协议只能在一段链路或一个网络上使用,不能跨网络使用。ARP协议的使用是逐段链路进行的。