千篇面经梳理-新增题目(续:千题奉送)

新春开年,GoGoCoder祝大家新年快乐,续接上次元旦的千题奉送,这次给大家带来,2021-11.28-2022-01-02时间段,面经梳理的增补题目。

DataStructure

场景设计

  1. 10亿个QQ号如何存储访问最快?
  2. 假设搜索引擎的关键字a和b,对应存储文章ID的文档列表A,B,且列表A,B很长,问如何求a和b的交集
  3. 如何从大小为100万的数组中求TopK的数
  4. 如何设计负载均衡算法?
  5. 如何设计优先级队列
  6. 如何实现倒排文件
  7. 设计类和方法来定义一个寻宝游戏
  8. 位图稀疏如何优化
  9. 医院叫号场景:不管病人何时来都按照从小到大的顺序叫号

排序

  1. 堆排序的应用场景
  2. 堆排序时间复杂度分析
  3. 堆排序中二叉树不是数组,如何建堆
  4. 堆排序中建堆的时间复杂度分析
  5. 归并排序的时间复杂度分析
  6. 快速排序的应用场景
  7. 描述堆排序中建堆的过程
  8. 排序算法稳定性的作用
  9. 如何实现递归建堆
  10. 如何优化快速排序(快排)
  11. 手撕归并排序
  12. 手写堆排序
  13. 手写希尔排序
  14. 为什么堆用完全二叉树而不是平衡二叉树

  1. B+树如何范围查找
  2. B+树与红黑树的区别
  3. 二叉树的遍历方式
  4. 红黑树插入N个节点的时间复杂度
  5. 简述红黑树的插入删除操作
  6. 平衡二叉树删除操作的时间复杂度
  7. 完全二叉树的介绍

栈与队列

  1. 队列是如何遍历数据的,是否可以通过下标遍历

Java

JavaIO

  1. BIO和NIO均使用线程池对比分析
  2. epoll为什么可以提升效率
  3. IO流读取阻塞与非阻塞的区别

Java并发

  1. CAS和synchronized的区别
  2. Condition的底层实现
  3. CyclicBarrier的原理
  4. CyclicBarrier和CountDownLatch的区别
  5. execute和submit的区别
  6. Java并行流的原理
  7. Java线程的生命周期
  8. Java中的锁类型,区别以及锁升级
  9. reator模型简述
  10. synchronized是否能防止指令重排序
  11. 互斥与同步的关系
  12. 简述阻塞队列的工作流程
  13. 简述阻塞队列工作流程
  14. 解释什么是线程安全(线程安全究竟指的是?)
  15. 介绍Atomic原子类的相关知识
  16. 轻量级锁的实现原理
  17. 如何关闭线程池
  18. 如何释放锁,锁方法和锁对象有什么区别
  19. 线程池的提交优先级与执行优先级
  20. 线程池的最大生存时间的作用
  21. 线程池中CachedThreadPool参数的作用
  22. 线程池中keepAliveTime的作用
  23. 线程池中submit和excute的区别
  24. 线程加锁的方式有哪些
  25. 重量级锁的实现原理

Java服务器

  1. Docker工作原理与作用
  2. Niginx实现原理
  3. 如何进行服务器压力测试
  4. 如何实现负载均衡

Java基础

  1. CAP原则
  2. cloneable和serializable的区别
  3. comparator和comparable的区别
  4. findClass与loadClass的区别
  5. String是否是线程安全
  6. 创建类实例的方式(反射)
  7. 定义字符串和new一个字符串分别存在什么区域
  8. 继承父类可以重写对应的方法吗,什么情况不能重写
  9. 简述Java反射的应用场景
  10. 简述创建对象的几种方式
  11. 简述什么是依赖倒置
  12. 简要介绍java中常用的日志级别
  13. 类的实例化顺序
  14. 列出5个运行时异常
  15. 如果自己手动创建一个java.lang.String,这个类能否被类加载器加载
  16. 如何衡量接口的性能
  17. 如何进行代码优化
  18. 如何实现不可变类
  19. 是否能够继承多个父类
  20. 是否有两个对象有相同的hashcode
  21. 一个接口多个实现类,调用的时候怎么知道用哪一个
  22. 一个类可以实现多个接口吗
  23. 一个实现类继承多个父类,可直接调用父类的方法吗
  24. 重写方法用到什么注解

Java框架

  1. AOP的应用场景
  2. Async注解的作用
  3. Dubblo的工作原理
  4. ElasticSearch的索引结构
  5. ElasticSearch集群如何调优
  6. MapReduce的工作原理
  7. MybatisResultMap和ResultType区别
  8. Mybatis相比原生jdbc的优点
  9. Nacos的原理
  10. netty的内存管理是怎么做的
  11. OAuth2.0的原理
  12. Rpc的底层原理
  13. Shiro框架的作用与应用场景
  14. SpringBoot如何自动切换日志级别
  15. SpringCloud常用哪些注解?
  16. Spring的scope的类型
  17. Spring的三大思想
  18. 对Spring的理解
  19. 简述Dubbo
  20. 简述SpringBoot的优点
  21. 简述SpringSecurity的作用
  22. 利用redis和Springcache设计查询缓存
  23. 为什么用netty而不直接使用nio

Java容器

  1. ConcurrentHashMap1.8为什么放弃分段锁
  2. ConcurrentHashMap的执行get方***不会加锁
  3. hashmap初始化长度是多大,可以规定长度吗,怎么计算初始化容量
  4. HashSet和HashMap的区别
  5. HashSet如何查找一个元素
  6. HashSet如何判断一个元素是否在Set
  7. Java各种Map的遍历效率对比
  8. TreeMap查询写入等操作时间复杂度分析
  9. 哈希表的装填因子如何设定
  10. 如何保证key唯一
  11. 如何使HashMap变为线程安全的集合

Java虚拟机

  1. CMS垃圾回收使用得回收算法
  2. CMS算法的优缺点
  3. GC的整体过程
  4. jdk8使用哪种垃圾回收器
  5. jvm信息通过哪些命令查看
  6. jvm怎么设置栈大小
  7. JVM中线程私有公有的区域
  8. OOM和栈溢出的区别
  9. 标记清除算法如何给对象分配内存空间
  10. 程序计数器的作用
  11. 调用函数时内存中堆和栈如何变化
  12. 堆中存放的内容
  13. 对常量池的理解
  14. 对象头有哪些内容
  15. 基本数据类型存在哪里
  16. 局部变量表存在哪里
  17. 元空间大小是否有限制
  18. 栈溢出抛什么异常

分布式

  1. CAP原则
  2. Paxos分布式一致性算法
  3. Raft分布式一致算法
  4. zookeeper注册流程

设计模式

  1. 如何进行权限控制的设计
  2. 软件开发应具备的特性
  3. 有哪些灵活的治理手段可以应对下游的异常?
  4. 状态机设计模式

MQ

Kafka

  1. kafa如何确保消息不被重复消费
  2. kafka的offset存在哪里
  3. kafka的rebalance的触发条件与过程
  4. kafka的零拷贝技术
  5. kafka的使用场景和作用
  6. kafka高性能高吞吐量的原因
  7. kafka如何保证消息不丢失
  8. kafka如何保证有序(写入有序、消费有序)
  9. kafka如何找到某条消息?
  10. kafka是推模式还是拉模式
  11. kafka消费组概念
  12. kafka一个partition对应多少个消费者,一个消费者对应多少个partition

MQ可靠性

  1. kafka如何保证数据可靠性
  2. MQ使用场景
  3. MQ使用场景
  4. RabbitMQ使用效率
  5. 插入延时队列过期时间是否单调
  6. 延时队列动态时长控制

MQ消息模型

  1. RabbitMQ的工作模式与作用
  2. RabbitMQ如何确保不重复消费
  3. RabbitMQ消息存储结构
  4. RabbitMQ延时队列底层实现
  5. Rabbit如何保证可靠性
  6. 消息队列的本质作用

Mysql

Mysql复制

  1. 简述Mysql同步数据机制

Mysql基础

  1. having和where的区别
  2. Orderby和Groupby的执行顺序
  3. 每行2Kb的数据,共计1千万行,需要从磁盘读多少次
  4. 数据库引擎的作用
  5. 数据库中删除数据,保留表结构的命令
  6. 主键与外键的区别

Mysql事务

  1. CAP理论
  2. Mysql事务及特性
  3. 分布式事务如何解决
  4. 简述事务的四个特性,并给出实现事务的方式

Mysql索引

  1. Mysql的默认索引
  2. Mysql索引数据结构
  3. 索引的实现原理与作用
  4. 索引树的高度及计算方法
  5. 主键的优点与缺点
  6. 主键索引与普通索引的区别

Mysql锁机制

  1. Mysql三级封锁协议
  2. 间隙锁,记录锁与临间锁的区别

Mysql问题与解决方案

  1. Mysql单表数据量过大会有啥问题?为什么数据量不能过大

查询性能优化

  1. leftjoin与rightjoin区别

分库分表

  1. 分库分表什么时候水平拆分,什么时候垂直拆分

Network

Http相关

  1. Http、Https性能比较
  2. http2.0引入多路复用的目的
  3. Https的TLS的工作原理
  4. https的证书简述
  5. https建立连接的过程
  6. Https如何断定恶意网址
  7. Http报文格式
  8. HTTP的get方法如何判断数据传输完毕
  9. Http建立连接的过程
  10. Http是基于Tcp还是Udp?
  11. Http与Tcp的关系与区别
  12. Web服务器是如何解析HTTP请求报文
  13. 简述HTTP的工作机制
  14. 简述什么是HTTP?
  15. 立足于http协议解释,为何第二次从网页上下载图片会变快
  16. 全双工通信和半双工通信的差别

Network框架相关

  1. Dubbo如何实现一致性哈希
  2. Dubbo远程调用的实现原理
  3. Nginx的作用与优缺点
  4. Nginx负载均衡的实现原理
  5. RPC服务注销需考虑问题
  6. RPC框架的工作流程
  7. RPC框架的应用场景
  8. RPC框架如何实现监控上报
  9. RPC如何进行路由寻址
  10. RPC如何实现服务注册与发现
  11. RPC如何实现请求解析映射
  12. RPC实现的基本原理
  13. 服务节点不稳定,如何避免调用该节点
  14. 如何处理服务不能调用的情况
  15. 如何定义一个RPC服务
  16. 限流和熔断分别适用于哪些场景

Socket相关

  1. Socket建立连接时的工作流程
  2. Socket通信与Tcp通信的比较
  3. 下载文件时下载速度为什么会先上升再平滑?

传输层

  1. A、B间有TCP连接,如果B拔网线,TCP连接会怎样
  2. TCP报文中的端口号是如何获取的
  3. TCP的报文格式
  4. TCP的连接状态有哪些
  5. Tcp的慢启动
  6. TCP的特点
  7. TCP的延迟主要在哪
  8. TCP和socket的区别
  9. TCP建立连接需要的系统调用
  10. TCP如何控制建立连接与断开连接
  11. Tcp如何判断连接超时?
  12. TCP协议报文格式
  13. TCP协议的简要介绍
  14. 当服务器与客户端建立连接后,服务器端突然断电,客户端会怎样?
  15. 服务器存在大量的close-wait状态如何处理
  16. 快重传与快恢复的区别
  17. 列举使用TCP协议的应用/场景
  18. 三次握手中出现丢包现象如何处理
  19. 什么是连接半打开状态

网络层

  1. 简要介绍OSPF协议
  2. 简要介绍RIP协议
  3. 路由转发方式
  4. 网络体系结构
  5. 静态资源如何加速
  6. 静态资源与动态资源的区别
  7. 如何预防XSS攻击
  8. 网络中信息传递的顺序(同网段、不同网段)
  9. 为什么要动静分离

应用层

  1. Cookie中包含哪些内容
  2. CSRF的防御措施
  3. DNS使用TCP协议还是UDP协议
  4. 浏览器内核的组成
  5. 浏览器如何获取HTML文件并渲染

OS

Linux命令

  1. grep命令的原理
  2. Linux的常用命令
  3. Linux如何查看机器负载
  4. Linux如何查看内存状态
  5. 查看socket状态的命令
  6. 查询进程号
  7. 查询一个文件有多少行
  8. 文件操作的常用命令
  9. 修改文件后缀名的批量命令

OS基础

  1. 32位机器与64机器的区别
  2. BIOS负责什么工作
  3. cpu基本结构
  4. CPU如何区分数据和地址
  5. Linux系统的启动过程
  6. 简述PC电源启动后的开机过程
  7. 简述数据编码的实现及其作用
  8. 开发新编程语言的意义
  9. 如何保证OS的实时性
  10. 微内核与宏内核的区别
  11. 为什么会发生指令重排
  12. 自旋锁和读写锁是否会引起用户态到内核态的转移

OS锁机制

  1. 多线程互斥锁/读写锁/自旋锁的区别
  2. 简述银行家算法
  3. 简要介绍无锁编程的原理
  4. 如何进行死锁预防
  5. 如何判断发生死锁还是死循环

进程管理

  1. 创建进程与创建线程的区别
  2. 读进程过多导致写进程饥饿如何处理
  3. 多核系统中多线程与多进程如何选择
  4. 多进程与多线程的区别
  5. 介绍时间片轮转调度算法
  6. 进程如果发生内存泄露,进程退出后,还会泄露吗?
  7. 进程在接到kill指令之后的处理流程
  8. 内核如何通知并唤醒已经阻塞的用户态进程
  9. 缺页中断会对进程造成什么影响,是否会影响系统中别的进程
  10. 缺页中断如果影响一个进程下的某个线程,是否会对别的线程有影响
  11. 线程独有的数据结构
  12. 线程间如何进行数据共享
  13. 用户态的进程之间会用哪种IPC方式
  14. 子进程会继承父进程哪些信息

内存管理

  1. cache与交换区的区别
  2. cpu六种调度算法
  3. mmap和read的区别,优缺点
  4. 操作系统逻辑地址的作用
  5. 操作系统如何管理内存资源?
  6. 段页式设计的原理与优点
  7. 简述什么是内存屏障
  8. 零拷贝原理
  9. 内存分配算法
  10. 内存屏障的实现原理与应用
  11. 内存泄漏与内存溢出的区别
  12. 为何磁盘顺序读写比内存读写性能高
  13. 虚拟地址获取物理地址过程,失败如何处理
  14. 虚拟内存及其作用介绍
  15. 虚拟内存与物理内存的区别
  16. 页缓存机制

设备管理

  1. 简述DMA原理
  2. 外设的驱动程序运行在用户态还是内核态

设计与应用

  1. A向B转账的同时B向A转账,如何避免死锁?
  2. 集群中多台机器如何保证ID互异
  3. 如何找到10亿个数据中第二大的数?
  4. 系统如何容灾?

文件管理

  1. Fd通过哪种数据结构串联
  2. Linux中Shell和应用程序同时获取某目录下信息,会发生哪些问题
  3. 读文件的系统调用
  4. 简要介绍文件系统脏页
  5. 如何保证文件close后写成功
  6. 如何避免脏页
  7. 如何进行fd的读取
  8. 文件操作符的作用
  9. 修改文件需要的系统调用

Redis

Redis部署架构

  1. rediscluster对于哪些命令不支持
  2. rediscluster集群模式架构

Redis使用场景

  1. 简述Redis使用场景

Redis数据结构

  1. 跳表的时间复杂度分析
  2. Redis数据类型
  3. Redis基本数据类型

Redis特性

  1. Redis4.0和6.0的变化趋势
  2. Redis哈希表如何rehash
  3. Redis内存管理机制
  4. Redis虚拟内存机制

Redis问题与解决方案

  1. Redis的Sharding有哪些做法
  2. redis和mysql的区别
  3. Redis如何进行容灾
  4. 分布式锁中看门狗的概念
  5. 过期与淘汰策略
  6. Redis的近似LRU详细解释

Test

软件测试基础

  1. 测试的策略有哪些
  2. 单元测试的策略有哪些
  3. 对测试框架的了解
  4. 简述一下缺陷的生命周期
  5. 阶段评审与项目评审的区别
  6. 描述测试用例设计的完整过程
  7. 如何模拟弱网测试
  8. 如何排查bug
  9. 软件的安全性应如何测试
  10. 软件缺陷记录包含哪些内容
  11. 什么是兼容性测试
  12. 什么是驱动模块
  13. 什么是系统瓶颈
  14. 什么是桩模块
  15. 现在有一支笔,说说如何对其进行测试?
  16. 一套完整的测试应该有哪些阶段组成
  17. 引入测试管理的含义
  18. 自动化测试软件

目前,后端面经真题频度汇总,已涵盖217家公司的917多篇后端面经,题目频度统计达8713条,涵盖Java、数据结构、操作系统、计算机网络、数据库、Redis、MQ、软件测试等多个科目。同时,我们将梳理出来的题目,按照面试题目频度排好序,分享给大家,让你无需扒面经,就能全盘掌握面试考点,赢在面试准备的起跑线上。

欢迎大家关注我的公众号GoGoCoder、GitHub:GoGoCoder、检索工具: http://gogocoder.com

#春招##面试题目#
全部评论
导航:上次千题奉送链接 https://www.nowcoder.com/discuss/827346
1 回复 分享
发布于 2022-02-04 12:00
m
点赞 回复 分享
发布于 2022-02-04 13:07
m
点赞 回复 分享
发布于 2022-02-04 13:09
有答案吗?
点赞 回复 分享
发布于 2022-02-05 16:49
mark
点赞 回复 分享
发布于 2022-02-25 20:59
要是有答案就好了😄
点赞 回复 分享
发布于 2022-02-28 18:59
M
点赞 回复 分享
发布于 2022-03-05 00:40

相关推荐

10 143 评论
分享
牛客网
牛客企业服务