自定义注解
本文介绍如何在Spring项目中实现自定义注解,结合AOP与过滤器应用于日志、权限控制等场景。通过@Target、@Retention等元注解定义注解,配合Spring AOP或拦截器实现功能增强,提升代码可读性与复用性。
01丨核心原理:能否画张图解释下 RPC 的通信流程?
RPC(远程过程调用)是一种实现跨服务透明调用的技术,屏蔽网络通信细节,让开发者像调用本地方法一样调用远程服务。它通过序列化、协议解析和动态代理等机制完成远程调用,是微服务架构的“经络”,广泛应用于分布式系统中,提升开发效率与系统解耦能力。
查找对应的 SSTable 文件
通过分层结构与二分查找快速定位SSTable,结合BloomFilter过滤和索引区加速查询。利用table cache与block cache缓存机制,减少磁盘IO,提升检索效率。整个过程高效有序,适用于大规模数据检索场景。(238字)
5.7 线程池的核心参数
线程池七大参数:核心线程数(常驻)、最大线程数(救急上限)、非核心线程存活时间、工作队列(缓存任务)、线程工厂(定制线程)、拒绝策略(队列满时处理方式,含报错、推脱、弃老、直接丢弃)。
特别加餐丨倒排检索加速(二)
本文深入讲解倒排索引中联合查询的四大加速方法:调整次序法通过优化求交/并集顺序降低计算代价;快速多路归并法利用跳表提升多列表合并效率;预先组合法对高频查询提前计算结果;缓存法则借助LRU机制缓存最新查询,结合哈希表与双向链表实现高效存储与访问,全面提升复杂检索性能。
Java基础
重载指方法名相同但参数不同,发生在编译期;重写指父子类中同名同参方法,发生在运行期。String不可变,StringBuilder非线程安全,StringBuffer线程安全,适用于多线程场景。
什么是跨域
跨域是指浏览器限制脚本向不同源服务器发起请求的安全策略。CORS(跨域资源共享)是W3C标准,通过服务器设置响应头,允许浏览器安全地进行跨域请求。支持简单请求与需预检的复杂请求,兼容现代浏览器,较JSONP更灵活强大。
Map
本文介绍Java开发中的6个实用技巧:避免HashMap初始化容量误区,推荐Guava工具;禁用Executors创建线程池以防OOM,建议手动定义参数;Arrays.asList返回不可变列表,禁止修改操作;遍历Map优先使用entrySet提升性能;SimpleDateFormat非线程安全,应避免static使用;并发更新记录时合理选用乐观锁或悲观锁机制。
Java基础
初始化Map宜用Guava指定预期大小,避免扩容;禁用Executors创建线程池,防止OOM,推荐手动定义或使用Guava;Arrays.asList返回不可变列表,禁止修改操作;遍历Map优先使用entrySet或forEach;SimpleDateFormat非线程安全,建议用Java 8时间类替代;并发修改记录需加锁,推荐乐观锁配合version机制。