!> 阅前必读
求职
招聘
劳动者权益与健康
操作系统原理与基础
- 进程和线程区别,为什么进程切换开销比线程大?
Linux
- 基础知识
- linux 命令
- 知道哪些 linux 命令?
- 说下压缩、解压一个文件的完整命令?
- 平时怎么查看日志?查看日志有哪些命令?
- 怎么编写定时任务?
- linux 中查找某个文件并删除它。
- linux 根据端口号查找进程信息。
- Bash
基础理论题
- 说下七层网络模型?
应用场景题
- 打开一个网页都发生了哪些事?
- 百度首页打不开,问题怎么定位?讲下定位流程。
TCP/UDP
- 说下 TCP 的连接过程?
- TCP 如何保证可靠性?
- TCP 和 UDP 的区别?
DNS
- 说下 DNS 域名解析过程?
HTTP/HTTPS
- 介绍下 HTTP 报文结构?
- 知道哪些 Header,含义是什么?
- 知道哪些 http 状态码?
- 401 和 403 的区别?403 怎么解决?
- http 和 https 的区别?
- 为什么 HTTPS 是安全的?证书是什么?
- get 与 post 的区别?
栈和队列
- 简述下栈和队列?分别适合什么场景?
链表
- 有两个有序链表,将他们组成一个有序链表。
- 查找链表的倒数第三个数。
散列表(哈希表)
树
- 给定一个列表,列表中每个元素包含两个属性 id 和 parentid,将列表转换成一棵树。
- 计算一个给定二叉树的深度。
编程题
- 有一组符号
['-', '-', '+', '+', '+','-', '+','-', '+','-','-']
,要求将 “+” 排到左边,“-” 排到右边。 - 解析 json 为 kv 形式。例如 json 数据
{"a":"1","b":{"c":"2"},"d":[{"e":"3"}]}
,得到所有 key 和 value 的对应关系,例如array("a"=>1, "b.c"=>2, "d.0.e"=>3)
。
排序算法
- 求一个数组中最大最小的元素。
- Q0010 知道哪些排序算法,选择最熟悉的写一个?
- 一亿个无序数找出 Top 100。
字符串
- 给一个字符串,字符串里有
(){}[]
这六个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。 - 有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。(要考虑数据的长度问题)。
- 判断一个字符串是否包含一个英文单词,例如 hello world 包含 hello 但是不包含 he。
动态规划
- 计算斐波那契数列,不能使用递归。
设计模式
- 知道哪些设计模式?
- 单例模式怎么实现?
- 单例模式的使用场景?举几个例子。
- 什么是工厂模式?
服务器/网关
- Nginx
- Nginx 负载均衡策略?
缓存中间件
- Redis
- Redis 缓存更新策略?
消息中间件(消息队列)
- RocketMQ
- Kafka
SQL
MySQL
- 存储过程与函数
- Q0012 MySQL 索引知道哪些?
- 单一索引和组合索引,组合索引最左原理?
- 数据库索引的优缺点?什么时候应该建索引?
- 索引采用的是什么数据结构?为什么要用这种数据结构?
- 数据库锁
- 讲下数据库乐观锁和悲观锁?
- 数据库会出现死锁吗?怎么避免死锁?怎么解决死锁?
- 数据库事务
MongoDB
Java 语法
- Java 数据类型
- 对象与类
- Q0014 接口和抽象类的区别?
- 方法重写和重载的区别?
- == 和 equals 的区别?equals 怎么实现?
- 异常
Java API
- Q0013 浅拷贝和深拷贝的区别?深拷贝怎么实现?
- 集合、容器
- HashMap 的原理?哈希冲突怎么解决?
- HashMap 和 HashTable 的区别?
- 并发与锁
- Java 多线程的创建方式?
- wait 和 sleep 的区别?
- 线程有哪些状态?阻塞和等待状态的区别?
- 悲观锁和乐观锁?为什么乐观锁更快?两者的使用场景?举个例子?
JVM
- 内存管理
- 内存泄露和内存溢出的区别?
- 内存泄露如何检测?
- 什么是内存可见性?volatile 有什么用?
- 类加载机制
- 知道双亲委派机制吗?怎么破坏?
- 类冲突有哪些解决方法?
- 类冲突(Jar 冲突),为什么编译期没报错,运行时却报错?
Spring IoC
- Spring @Autowired 和 @Resource 的区别?
- Spring @Component 和 @Service 有什么区别?怎么实现的?
Spring AOP
- Spring AOP 原理?静态代理和动态代理优缺点和应用场景?为什么动态代理慢?
- Spring AOP 使用场景?怎么用的?
- 什么是好的测试用例?如何评价一个用例的好坏?
- 黑盒测试用例设计方法有哪些?你用过哪些?
- 用例设计场景题:
- 直播打赏。
- 腾讯视频的播放界面。
- B 站弹幕。
- 微信发红包。
- 微信支付,或者是支付宝转账。
- 购物车。
- 微信换头像。
- 淘宝登录,京东登录,等登录功能。
- 百度贴吧的发帖功能。
- 抖音刷视频(上滑下滑播放暂停)。
- 测试左移你会怎么做?
- 怎么说服开发老大同意做代码评审,怎么跟进评估效果?
- 代码评审发现过哪些问题?
- 说下你们的测试环境?
- 测试环境和线上环境如何保持一致?
- 测试环境遇到了哪些问题,怎么解决的?
自动化测试
- 说说你对 PO 的理解?
- UI 自动化有什么总结,知道哪些最新的技术、方向或改进方向?
- UI 自动化稳定性如何?怎么提高稳定性?
- Web 自动化遇到过哪些难题?怎么解决的?
Selenium
自动化测试
- 接口自动化关注哪些指标,怎么考核自动化?
性能测试
- 性能测试指标有哪些?XX 指标解释一下?
- 性能测试中什么情况内存过高,但 CPU 使用率不高?怎么排查定位问题?
- 性能测试中什么情况 CPU 使用率高,但内存占用不高?怎么排查定位问题?
- 如果 SQL 查询很慢,你怎么定位问题?
性能与稳定性测试
- 手机 App 崩溃闪退的原因?
- 怎么测试 APP 启动时间?
- APP 资源消耗怎么测试?比如 CPU、内存占用。
自动化测试
- App 的测试工具知道哪些?你用过哪些?
- UI 自动化中 WebView 怎么测试?
- UI 测试做的是 iOS 还是 Android?讲讲 iOS 的 UI 怎么测?
- 自动化测试中发现了哪些 Bug,举个例子?
- 线上质量如何保证?
jvm-sanbox
- jvm-sanbox 原理?jvm-sanbox 有哪些用途?
CI/CD/DevOps
- CI/CD 怎么做的?
管人、管事、管项目。
- 你是如何构建质量体系的?
- 微服务(如 dubbo)怎么测试的?
- 你负责一个业务的测试,你打算怎么做?
- 测试过程中有哪些风险点,怎么解决的?
- 测试过程中怎么提高效率?
- 上家公司主要工作内容?
- 说下你们的测试流程?
- 什么是软件测试?说说你对测试的理解?
- 做了多年的软件测试,你的感悟是什么?
业务测试
- Q0018 介绍下你简历上的 XX 业务项目。
- 说下自己项目中比较复杂的功能?怎么测试的?
工具开发
- 你的亮点是什么?自己解决的最亮点的技术难点是什么?
- 遇到过什么难点,如何解决的?测试过程中遇到哪些难题,怎么解决的?
- Q0004 一个 80ml 的水杯装满水,一个 50ml 和一个 30ml 的空杯,怎么分出两个 40ml 的水。
- Q0005 有外表相同的 8 个球,其中一个与其他七个重量不同,而且不知道这个球是比其他球轻还是重。请通过三次天平称重,找到那个不一样的球。
- Q0006 一根不均匀的绳子,全部烧完需要1个小时,问怎样烧这种绳子能计时1个小时15分钟?
- 请做下自我介绍?
- 说说你的优缺点。
- 对自己有什么职业规划?职业发展有什么打算?
- 自己觉得最有成绩感的一件事或做过的一个东西?
- 最近半年有什么提升(有学习什么)?
沟通能力
- 工作中有没有遇到过冲突,怎么解决的?
- 入职之后,你最讨厌或者说最不喜欢和什么样的同事打交道?
- 有没有对象/打算什么时间结婚/有没有小孩/...
- 为什么从上一家公司离职?
- 为什么选择我们公司?说一下对本公司的看法和期望。
- 上家公司入职时的职级、离职时的职级?绩效怎么样(每次的绩效)?
- 如何看待工作压力?之前公司的加班情况怎么样/加班常态能否接受?
- 之前的薪资是多少?期望薪资是多少?为什么会期望这些薪资?
- 已经找工作多久了?手中是否还有其他 offer?能说下手上现在有哪些 offer 吗?
- 接收到 offter 多久可以入职?