20250325-后端问题与答案

编程语言

  • Java:
    • ArrayList 和 LinkedList 的原理是什么?如果让你实现一个 HashMap,你会如何设计?(已完成)
    • 线程池的执行过程是怎样的?核心参数有哪些?常用的线程池有哪些?(已完成)
    • JVM 的相关知识,如 OOM 如何定位?说几个虚拟机指令以及虚拟机栈可能会发生什么错误?四种引用类型是什么?(已完成)
    • Java 并发中,synchronized 性能为什么提高了(锁升级过程)?与 Java 的 lock 有什么区别以及使用场景?(已完成)
  • C++:(不考虑)
    • 虚函数、多态的加载过程是怎样的?
    • malloc 和 new 有什么区别?构造函数和复制函数在其中起到什么作用?

数据结构与算法

  • 实现链表的插入方法,该方法的查询效率如何?怎样优化?(已完成)
  • 给一个表达式的字符串(包含 + - * /),算出字符串的结果,若考虑括号该如何处理?(已完成)
  • 01 背包问题的变体:把物品分成两堆,使得物品差值尽量小,如何用动态规划解决?(已完成)
  • 实现二叉树的中序遍历,分别用递归和循环(借助栈)的方式4(已完成)

计算机网络

  • 输入www.baidu.com后会发生什么?(已完成)
  • HTTP 报文结构是怎样的?头部有哪些字段?(已完成)
  • TCP 三次握手、四次挥手的过程是怎样的?为什么需要三次握手,两次不行吗?TIME_WAIT 和 CLOSE_WAIT 状态的作用是什么?有大量连接处于 TIME_WAIT 的原因是什么?TCP 是长连接还是短连接?(已完成)
  • HTTPS 的整个过程是怎样的(包括对称加密、非对称加密)?与 HTTP 有什么不同点?(已完成)

操作系统

  • 进程与线程的区别是什么?哪些资源是共享的?进程之间的通信方式有哪些?(已完成)
  • 了解协程吗?简单介绍一下2。(已完成)
  • 死锁的条件是什么?如何解决死锁问题?2

数据库

  • 手写一个 SQL 查询语句,涉及子查询、GROUP BYHAVING子句2。(已完成)
  • 如何查看数据库语句的执行效率?索引的实现原理是什么?(已完成)
  • 数据库的事务是什么?ACID 特性分别代表什么?如何实现事务的隔离性?
  • 数据库的连接池有什么作用?如何实现一个简单的数据库连接池?

框架与中间件

  • 如果你使用过 Spring 框架,说说 Spring 的加载过程,加载了哪些配置文件,生命周期是怎样的,关键注解有哪些?4
  • 了解 Redis 吗?在项目中为什么使用 Redis?Redis 的数据结构有哪些?分别适用于什么场景?
  • 用过消息队列吗?如 Kafka、RabbitMQ 等,说说它们的工作原理和应用场景。
  • 什么是微服务架构?微服务之间如何进行通信?有哪些常见的服务治理措施?