首页 > 测试开发岗位春招常见面试题汇总
头像
初闻不知卷中意
编辑于 2021-08-05 14:36
+ 关注

测试开发岗位春招常见面试题汇总

序言

本贴是我在测开岗位面试中常见的面试题,以及我认为面试官会在春招常考的一些问题,大家可以针对性的复习

编程语言 C++

  • c++机制
  1. C++与C的区别
  2. 内存覆盖怎么回事?
  3. 内存泄漏有哪几种情况以及如何解决
    情况:在类的构造和析构函数中未成对使用new/delete操作符;使用了野指针(未初始化的指针/指针所指地址已被释放/指针操作超越了作用域);未正确清除嵌套的对象指针等
    解决:使用智能指针(shared_ptr、weak_ptr、unique_ptr)
  4. C++与Java的区别
    执行速度、是否面向过程、指针、是否多继承、GC垃圾回收机制、是否可重载等
  5. 内存的分配方式
    静态分配、栈区分配、堆区分配
  6. 内存分配有哪些区
    堆、栈、常量区、全局区、代码区
  7. 内存分配中堆和栈的区别
    管理方式、空间大小、碎片、生长方向、分配效率
  8. C++11的新特性你知道哪些,用过哪些
    auto
    nullptr和NULL的区别
    智能指针
    并发编程

  • 面向过程

1.*指针/&引用的区别
内存、sizeof后大小、初始化、指向是否可变、++含义、是否有多级
2.const/define区别
定义数据类型、安全性检查、是否可调试
3.typedef/define区别
用法、所在处理过程
4.sizeof/strlen的区别
5.内存对齐是怎么回事
6.extern的作用
7.struct(c++)与class区别
默认成员权限、默认继承权限、内存
8.c++和c中的struct的区别
图片说明
9.sizeof、strlen、size、length区别
10.函数模板 template 用法
11.new/delete与malloc/free的区别
12.++i,i++的区别和源码 *
13.#include<>和#include""的区别 *


  • 面向对象

1.三大特性
封装、继承、多态
2.执行构造函数/析构函数的顺序
3.重载和重写的区别
4.虚函数介绍一下
虚函数表
5.多态方式
动态多态、静态多态
6.纯虚函数使用方法
7.C++中拷贝赋值函数的形参能否进行值传递


  • 容器STL

1.map/set的底层实现和区别
2.vector/list区别

数据结构

  • 十大排序
    1.冒泡排序 O(n^2) * 稳定
    适用于基本有序、数据量小序列
    2.选择排序 O(n^2)
    3.插入排序 O(n^2)(直接插入,折半插入)
    4.希尔排序 O(nlogn)
    5.归并排序 O(nlogn)
    6.快速排序 O(nlogn) * 不稳定(枢轴改进方法)
    7.堆排序 O(nlogn) * 不稳定
    8.计数排序 O(n+k)
    9.桶排序 O(n+k)
    10.基数排序 O(nk)
    重点是上面带
    的排序算法源码,以及稳定性。其余算法了解即可,会源码更佳。

  • 二叉树
    1.遍历
    前序,中序,后序遍历
    递归,非递归
    2.平衡二叉树
    插入自调整
    LL,RR,LR,RL
    3.红黑树 *(了解即可,不需要手撕)
    应用:c++ set/map java HashMap(数组+链表+红黑树)
    当链表长度太长(默认超过8)时,链表就转换为红黑树,利用红黑树快速增删改查的特点提高HashMap的性能,其中会用到红黑树的插入、删除、查找等算法。

    五大性质:
    性质1. 节点是红色或黑色。
    性质2. 根节点是黑色。
    性质3.所有叶子结点都是黑色。(叶子是NIL(值为空且黑色)节点,虚拟出来的)
    性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
    性质5.. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。黑色完美平衡

与平衡为二叉树对比(或问,为什么c++和java底层不用平衡二叉树)

图片说明

4.B、B+树
应用:操作系统的文件索引和数据库索引
性质与区别:请自己查阅

为什么说B+tree比B树更适合实际应用中操作系统的文件索引和数据库索引?
图片说明


  • BFS、DFS

数据库

  • 写一个sql语句
    推荐大家先复习完语法后刷牛客/LeadCode上的sql题,中等练完就行,要求不太高

    重点:
    增删改查
    多表查询
    排序 ORDER BY (AESC/DESC)
    聚合
    图片说明


  • 图片说明

    • 多表查询

    1.交叉连接 CROSS JOIN
    2.自然连接 NATURALC JOIN
    3.外连接 *(重点)
    左连接
    右连接

    图片说明

4.左连接时on/where 的区别

计算机网络

  • 模型 *
    七层IOS模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
    4层TCP/IP模型:网络接口层、网际层、传输层、应用层
    5层综合模型(谢希仁版):物理层、数据链路层、网络层、传输层、应用层

    各层的作用(字节、阿里问过)

  • 网络层
    1.IPv4
    1)地址格式
    点分十进制
    2)地址划分 了解
    A/B/C/D/E类

    2.网络地址转换NAT 了解
    图片说明

    3.路由传输协议
    RIP 基于距离向量的选择
    OSPF 开放 最短路径协议
    了解算法内容即可

  • 传输层
    1.TCP
    1)特点 *
    面向连接、全双工,面向字节流、可靠传输、有拥塞控制、开销大

    2)首部字段
    序号 seq
    确认号 ack
    控制位 ACK FIN SYN
    检验和(阿里问过)

    3)如何实现可靠传输 *
    校验和、排序(流量控制)、确认机制、重传机制、拥塞控制

    2.拥塞控制 *
    慢开始、拥塞避免、快重传、快恢复
    算法过程

    3.三次握手建立连接 *
    1)过程
    图片说明

    2)改成两次握手可以吗,为什么
    不可以
    3)改成四次握手可以吗,为什么
    可以,但没必要

    4.四次挥手释放连接 *
    1)过程
    2)改成三次挥手可以吗,为什么
    不可以
    3)客户端收到第二次挥手信息可以关闭监听吗,为什么?
    不可以

    5.UDP
    1)特点 *
    面向无连接、尽最大努力交付、面向报文、无拥塞控制、开销小
    2)TCP与UDP的区别 *
    图片说明
    3)TCP与UDP的应用场景
    TCP:HTTP
    UDP:直播
    QQ通信:TCP与UDP

  • 应用层
    1.HTTP *
    1)请求报文与响应报文的格式

    2)请求方法
    图片说明

    post/get的区别
    幂等、缓存、浏览器历史、安全性、可见性、size

    3)状态码
    图片说明

4)HTTP的无状态特性如何解决
cookie和session

2.cookie和session的区别

3.DNS解析过程 *

4.https *
1)http与https的区别

2)SSL通信过程(了解)

3)非对称加密与对称加密区别

5.浏览器输入url发生了什么

  • 其他常用协议有哪些
    HTTP FTP DNS SMTP DHCP 等

操作系统

  • 进程 *
    1.进程间的通讯方式 IPC
    图片说明
    2.僵尸进程是什么

当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程

3.如何解决僵尸进程

  • 线程 *
    1.线程间的通信方式
    图片说明

    2.进程与线程的区别 *
    本质、拥有资源、切换开销、共享资源程度

  • 死锁
    1.产生死锁的必要条件 *

    互斥
    不可剥夺
    请求并保持
    循环等待

    2.解决死锁的方法
    图片说明

  • 内存管理(了解)
    图片说明

Linux常用命令

一般面试官都会问:你知道哪些linux常用命令/你用过Linux系统吗

也会出一些简单的问题让大家写命令

这部分推荐大家看《Linux环境编程》——姜林美(我们学校老师出的书,当时选修课就是他上的,hhh)动手操作,然后平时多用linux系统。我当时无论课程还是项目部署都接触linux系统比较多,所以比较熟悉,大家还是多练

  • 常用命令 *
    ls 显示文件或目录
    mkdir 创建目录
    cd 切换当前工作目录
    touch 创建空文件
    echo 可以输出内容到标准输出,以空白分割字符串,并且后面增加换行
    cat 查看文件内容
    cp 拷贝文件
    mv 移动或重命名文件
    rm 删除文件

    -r  递归删除,可删除子目录及文件
    -f   强制删除

    find 在文件系统中搜索某文件
    wc 统计文本中行数、字数、字符数
    pwd 显示当前目录的绝对路径 *
    scp 复制文件从远端服务器到本机或反过来

    scp local_file remote_username@remote_ip:remote_folder
    图片说明

  • scp问题(了解)
    scp 复制后如何查看是否完全复制?

    在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。

    解决方法
    使用【md5sum命令】

  • 系统管理命令
    stat 显示指定文件的详细信息,比ls更详细
    top 动态显示当前耗费资源最多进程信息

    -n 设置信息更新次数
    -d 设置信息更新时间
    -p 显示指定的进程信息

    free 显示内存状态
    ps 显示当前进程的状态
    du 显示目录或文件的大小。
    df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息

  • vim(了解,也不常问到,但得知道)
    图片说明

  • linux三剑客(了解)
    grep *
    sed
    awk


大家如果觉得有帮助,可以一键三连 点赞、收藏、关注走一波

你们的支持是我更新的动力

更多模拟面试

全部评论

(13) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐