53 归档分页
370 留言互动
4 核心专题

最近更新

Java 2022-03-16

Java面试必会知识点

抱歉,我无法直接访问该链接中的内容。请您把文章的正文粘贴在这里,我会根据提供的文本为您生成符合要求的摘要。

JVM Redis HashMap ConcurrentHashMap Spring 设计模式 多线程 MySQL MyBatis 阅读全文
Java 2022-02-28

面试现场【JVM篇】

本文系统梳理了 JVM 面试常见要点,包括运行时内存结构(程序计数器、虚拟机栈、本地方法栈、堆、方法区、直接内存),垃圾回收原理(引用计数、根可达、GC Roots 分类),四种引用类型,分代收集假设与记忆集,标记‑清除、复制、整理三大算法及 STW、Safe‑point、OopMap 的作用。随后简介了 Serial、ParNew、Parallel Scavenge、Parallel Old、CMS、G1 等主流收集器的特点与适用场景,并简述对象栈上分配、内存布局、类加载双亲委派等概念,为面试提供完整参考。

JVM 面试 阅读全文
Java 2022-03-15

面试现场【综合篇】

本篇面试指南围绕系统设计与实现展开,涵盖项目亮点、零拷贝原理、五大IO模型及NIO与多路复用区别、Future阻塞获取结果机制、ReentrantLock 与 synchronized 的实现与差异、AQS、乐观/悲观锁、Paxos 协议、B+树特性、TCP 拥塞控制、JVM 实践、数据库分库分表及其缺点、分布式事务(TCC)方案、RocketMQ 消息可靠性保证,以及常见算法题。通过概念阐释与实现细节,帮助读者系统复习面试热点。

JVM 面试 多线程 MySQL IO 阅读全文
Java 2022-03-16

Synchronized详解

synchronized 用于对共享可变资源实现互斥访问,其本质是对象的 monitor 锁。JVM 将 synchronized 编译为 monitorenter/monitorexit 指令,进入对象的 Monitor 并在退出时释放。每个对象的 Mark Word 保存锁状态,锁可在无锁、偏向锁、轻量级锁和重量级锁之间单向升级;为降低竞争开销,JVM 进一步提供锁粗化、锁消除、偏向锁、轻量级锁、自旋等优化。通过这些机制,synchronized 在 JDK 1.5 以后已能与显式 Lock 的并发性能基本持平。

Synchronized 阅读全文
Java 2022-03-15

看一遍就理解:零拷贝详解

零拷贝是一种 I/O 优化技术,避免 CPU 在用户态与内核态之间复制数据,从而减少上下文切换和拷贝次数。传统读写需四次切换、四次拷贝;零拷贝利用虚拟内存映射或 DMA 直接在内核缓冲区与网络/磁盘之间传输数据。实现方式包括 mmap+write、sendfile,以及支持 DMA scatter/gather 的 sendfile,后者实现真正的全 DMA 零拷贝。Java NIO 通过 MappedByteBuffer(映射 mmap)和 FileChannel 的 transferTo/transferFrom(封装 sendfile)提供相应 API,广泛用于 Kafka、RocketMQ 等高性能系统。

Java 2022-03-14

聊聊幂等设计

幂等指一次或多次请求产生相同副作用,常用于防止超时重试导致的重复操作。为保证幂等,需要为每个请求生成全局唯一ID(如UUID、Snowflake),并在业务层通过唯一索引、主键冲突、状态机、独立防重表、token、悲观/乐观锁、分布式锁等八种方式实现过滤重复。接口超时可先查询结果或直接重试前提是下游提供幂等保障。文中还说明了 HTTP 方法的幂等性:GET、HEAD、OPTIONS、DELETE、PUT 为幂等,POST 不具幂等。

Redis MQ 阅读全文