
简介
该用户还未填写简介
擅长的技术栈
未填写擅长的技术栈
可提供的服务
暂无可提供的服务
【实战源码】生产级通用缓存安全工具类:彻底解决缓存穿透、击穿、雪崩(附完整流程图 + 源码解析)
缓存穿透:查询不存在的数据,绕过缓存直接打数据库;缓存击穿:热点 Key 过期瞬间,大量并发请求直连 DB;缓存雪崩:大量 Key 同时过期,数据库压力骤增。普通缓存get -> 判断 -> 查库简易写法,完全无法应对线上高并发流量。本文基于 12306 开源项目生产级safeGet安全缓存查询方法,完整拆解「布隆过滤器 + 分布式锁 + 双重检查 + 自动回填」的万能缓存方案,附带执行流程图、核
ReentrantLock 与 synchronized 底层实现对比图解
在日常开发中,常规的同步场景优先使用 synchronized,它使用简单、无手动释放锁的风险,JVM 会自动做优化,也是 Java 官方推荐的首选同步方案。只有当业务场景需要 synchronized 不支持的高级特性时,才选择 ReentrantLock,比如需要公平锁、可中断等待、超时获取锁、多条件精准唤醒的复杂并发场景,比如自定义同步组件、生产者消费者模型、限流熔断等场景。
【JVM】什么是运行时数据区?
运行时数据区指的是JVM所管理的内存区域,其中分成两大类:线程共享 –方法区、堆方法区:存放每一个加载的类的元信息、运行时常量池、字符串常量池。堆:存放创建出来的对象。线程不共享 –本地方法栈、虚拟机栈、程序计数器本地方法栈和虚拟机栈都存放了线程中执行方法时需要使用的基础数据。程序计数器存放了当前线程执行的字节码指令在内存中的地址。直接内存主要是NIO使用,由操作系统直接管理,不属于JVM内存。

到底了







