全网最全、最细的Java面试题(含答案)【150+高频考点】(4)


二十、网络与协议篇

51. ​TCP三次握手与四次挥手的详细过程及状态变迁?

答案:​

  • 三次握手
    1. SYN:客户端发送SYN=1, seq=x → 状态SYN_SENT
    2. SYN+ACK:服务端回复SYN=1, ACK=1, seq=y, ack=x+1 → 状态SYN_RCVD
    3. ACK:客户端发送ACK=1, seq=x+1, ack=y+1 → 双方进入ESTABLISHED
  • 四次挥手
    1. FIN:主动方发送FIN=1, seq=u → 进入FIN_WAIT_1
    2. ACK:被动方回复ACK=1, ack=u+1 → 主动方进入FIN_WAIT_2,被动方进入CLOSE_WAIT
    3. FIN:被动方发送FIN=1, seq=v → 进入LAST_ACK
    4. ACK:主动方回复ACK=1, ack=v+1 → 双方关闭连接。

52. ​HTTP/2的核心优化特性?

答案:​

  • 多路复用:一个TCP连接并行处理多个请求,解决队头阻塞。
  • 头部压缩:HPACK算法压缩HTTP头部,减少冗余传输。
  • 服务器推送:服务端主动推送资源(如CSS/JS),减少客户端请求。
  • 二进制分帧:数据以二进制帧传输,解析高效且扩展性强。

二十一、数据库进阶篇

53. ​MySQL的索引失效场景及优化方案?

答案:​

  • 失效场景
    1. 对索引列使用函数或运算(如WHERE YEAR(create_time)=2023)。
    2. 模糊查询以%开头(如LIKE '%keyword')。
    3. 联合索引未遵循最左前缀原则。
  • 优化方案
    1. 避免索引列参与计算,改为范围查询。
    2. 使用覆盖索引或全文索引优化模糊查询。
    3. 调整联合索引顺序,高频查询条件放在左侧。

54. ​Redis持久化机制RDB与AOF的优缺点对比?

答案:​

特性RDB(快照)AOF(追加日志)
数据完整性可能丢失最后一次快照后的数据可配置为秒级同步,数据更安全
恢复速度快(直接加载二进制文件)慢(需重放日志)
磁盘占用小(压缩存储)大(日志文件持续增长)
适用场景容忍分钟级数据丢失,追求快速恢复要求高数据可靠性,可接受性能损耗

二十二、设计模式与架构

55. ​分布式系统CAP理论的实际应用取舍?

答案:​

  • CA:传统单机数据库(如MySQL),放弃分区容忍性(无分布式)。
  • AP:多数NoSQL(如Cassandra、Eureka),允许短暂数据不一致。
  • CP:强一致性系统(如ZooKeeper、Etcd),牺牲可用性保证一致性。

56. ​微服务拆分的原则及常见陷阱?

答案:​

  • 拆分原则
    1. 单一职责:按业务领域(如用户、订单、支付)拆分。
    2. 数据自治:服务独占数据库,通过API通信。
    3. 演进式拆分:初期粗粒度,逐步细化。
  • 常见陷阱
    1. 过度拆分导致调用链复杂(可用分布式链路追踪解决)。
    2. 分布式事务处理不当(最终一致性代替强一致性)。

二十三、云原生与DevOps

57. ​Kubernetes的Pod调度策略有哪些?

答案:​

  • 节点亲和性(NodeAffinity)​:优先调度到特定节点(如SSD磁盘节点)。
  • Pod亲和性/反亲和性(PodAffinity)​:同一拓扑域部署或避免共存。
  • 污点与容忍(Taints/Tolerations)​:节点标记“污点”,Pod需声明容忍才能调度。
  • 资源限制:通过requestslimits控制CPU/内存分配。

58. ​Docker镜像优化最佳实践?

答案:​

  1. 多阶段构建:分离编译环境和运行环境,减小镜像体积。
  2. 最小化基础镜像:使用Alpine Linux等轻量镜像。
  3. 合并RUN指令:减少层数,利用缓存加速构建。
  4. 清理无用文件:删除临时文件、缓存和依赖包。

二十四、算法与数据结构

59. ​快速排序的稳定性及时间复杂度分析?

答案:​

  • 稳定性:不稳定(相同元素可能交换位置)。
  • 时间复杂度
    • 平均:O(n log n)
    • 最坏(已排序数组):O(n²),可通过随机选择基准值优化。

60. ​LRU缓存淘汰算法的实现思路?

答案:​

  • 数据结构:双向链表(维护访问顺序) + 哈希表(快速定位节点)。
  • 操作逻辑
    1. 访问数据:若存在则移动到链表头部。
    2. 插入数据:若满则删除链表尾部节点,新节点加入头部。
  • Java实现:可直接用LinkedHashMap(重写removeEldestEntry方法)。

二十五、前沿技术探索

61. ​Service Mesh的核心组件及作用?

答案:​

  • 数据平面(Data Plane)​:如Envoy代理,处理服务间通信(流量控制、熔断)。
  • 控制平面(Control Plane)​:如Istio,管理策略(路由规则、安全认证)。

62. ​Serverless架构的优缺点及适用场景?

答案:​

  • 优点:按需计费、免运维、自动扩缩容。
  • 缺点:冷启动延迟、调试复杂、状态管理困难。
  • 适用场景:事件驱动型任务(图片处理、定时任务)、低频访问应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值