- 博客(28)
- 收藏
- 关注
原创 JMH (Java Microbenchmark Harness)
JMH 是 Java 的微基准测试工具,由 OpenJDK 团队开发,专门用于编写、运行和分析 Java 代码的微基准测试(microbenchmark)。
2025-06-27 22:45:03
296
原创 多级缓存策略
策略:本地缓存设置短TTL(如30秒)+ Redis Pub/Sub 通知失效。:优先查询应用进程内缓存(如Caffeine),命中则直接返回。:若Redis未命中,从数据库加载数据,并异步写入Redis。:若本地未命中,查询Redis集群,命中后回填本地缓存。:分布式缓存作为后备,防止本地缓存失效导致雪崩。方法:系统启动时加载高频数据到本地和Redis。:热点数据由本地缓存直接响应,减少网络IO。:用户发起数据请求(如商品详情)。:存放静态化页面片段(如轮播图)。雪崩:分层缓存TTL随机化。
2025-06-23 11:30:00
262
原创 Java中的异步与CPU密集型任务处理示例
区分任务类型I/O密集型:使用异步I/O(NIO)和默认线程池CPU密集型:使用专用线程池或并行流线程池配置原则// I/O密集型(大量等待)// CPU密集型(与核心数相关)避免阻塞事件循环// 错误做法(阻塞默认线程池)// 正确做法资源清理// 使用后关闭线程池监控与调优// 监控线程池状态System.out.println("活跃线程: " + executor.getActiveCount());
2025-06-23 11:30:00
410
原创 深入理解“回调地狱“(Callback Hell)
回调地狱(Callback Hell/Pyramid of Doom)是指:多层嵌套的回调函数形成的代码结构代码向右缩进越来越深,形成金字塔形状导致代码可读性差、难以维护和调试。
2025-06-22 16:57:47
426
原创 同步与异步的概念解析
定义:操作按顺序执行,必须等待前一个操作完成后才能开始下一个操作特点:阻塞式(Blocking)、顺序执行、执行流程明确类比:打电话时,双方必须同时在线才能交流。
2025-06-22 16:47:49
1048
原创 流量网关与业务网关详解
业务网关更侧重于业务逻辑的处理,是业务请求的"业务处理中心",通常包含特定的业务规则和处理逻辑。流量网关主要关注网络流量的分发、路由和基础网络层面的功能,是网络流量的"交通指挥中心"。云服务:AWS ALB/NLB、Azure Load Balancer。软件:Nginx、HAProxy、Envoy。算法:轮询、加权轮询、最小连接数、哈希等。示例:商品详情页聚合商品信息、库存、评价。示例:Nginx的upstream配置。业务网关执行业务逻辑处理后调用后端服务。自建业务网关(如Kong)处理业务逻辑。
2025-06-22 16:43:32
398
原创 Java常见异常详解及解决方案(十)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-19 11:30:00
931
原创 代码耦合(Coupling)详解
高耦合意味着模块间紧密依赖,低耦合(松耦合)则代表模块相对独立。:通过Kafka/RabbitMQ异步解耦服务(如订单服务发消息,库存服务消费)。:修改一个模块可能引发连锁反应,需同步修改多个依赖模块。:间接调用(如接口方法)比直接调用略慢(通常可忽略)。:通过接口、事件、DI等方式减少直接依赖,提升灵活性。:高层模块不应依赖低层模块,二者都应依赖抽象。:模块无法单独测试,必须模拟所有依赖项。:修改一个模块时,是否需要改动其他模块?:模块间直接依赖具体实现,维护成本高。模块间通过接口交互,隐藏实现细节。
2025-06-19 11:30:00
1050
原创 Java常见异常详解及解决方案(八)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-18 11:30:00
853
原创 Java常见异常详解及解决方案(九)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-18 11:30:00
414
原创 Java常见异常详解及解决方案(六)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-17 11:30:00
433
原创 Java常见异常详解及解决方案(七)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-17 11:30:00
2477
原创 无界队列与OOM问题详解
队列容量 = 预期最大堆积量(如根据历史峰值流量 × 平均任务处理时间估算)。当线程池拒绝任务时,记录日志并触发降级处理(如返回友好提示或存入重试表)。:任务中持有未释放的资源(如数据库连接),加剧内存消耗。:如后台低频定时任务,确保任务提交速度不会超过处理能力。线程处理速度时,无界队列会不断堆积任务,最终耗尽内存(线程池只有2个线程处理任务,但队列无限增长,最终抛出。:需合理设置队列大小(太小可能导致频繁拒绝任务)。:且任务本身占用内存极小(如简单的日志记录)。:任务无限堆积 → 内存溢出(OOM)。
2025-06-16 23:19:41
272
原创 线程池(Thread Pool)详解
避免频繁创建和销毁线程带来的性能开销。在高并发场景(如Web服务器、微服务调用等)中,合理使用线程池能显著提升系统性能和稳定性。掌握线程池是Java高并发编程的基础,也是面试高频考点。)和实际场景(如Web服务器请求处理)加深理解。线程池是Java多线程编程中的核心组件,用于。无限制创建线程会导致资源耗尽(如内存溢出)。接口及其实现类提供线程池支持,核心实现类是。线程池的拒绝策略有哪些?,立即创建新线程执行任务。如果队列和线程池均满,触发。,创建临时线程执行任务。线程池的底层原理是什么?
2025-06-16 23:02:40
1249
原创 Session、Cookies 与 Token 的深度对比
头发送,浏览器自动存储并在后续请求中携带的小型文本数据(通常≤4KB):Service Mesh中的mTLS替代部分场景。传统Web兼容 → Cookie-Session。:Cookie-Session(简单直接)超高并发/微服务 → Token+短有效期。:Token(减少服务端存储压力):Token(天然支持分布式):Redis共享Session。需要跨域/解耦 → Token。:Token(更好支持跨域):JWT/OAuth2的普及。:无需额外处理(自包含):Tomcat集群广播。
2025-06-15 11:30:00
299
原创 IP、端口和域名的关系解析
理解IP、端口和域名的关系,是网络编程和系统运维的基础。三者协同工作,构成了互联网通信的基础框架,开发者应根据实际需求合理配置和管理这些网络要素。知名端口(0-1023):如HTTP(80)、HTTPS(443)、SSH(22)注册端口(1024-49151):如MySQL(3306)、Redis(6379)动态端口(49152-65535):临时使用。修改默认服务端口(如SSH改为非22端口)范围:0-65535(16位无符号整数):互联网上设备的唯一数字标识。私有IP(局域网内使用,如。
2025-06-15 11:30:00
959
原创 Spring Security 全面解析
Spring Security 是 Spring 生态系统中的安全框架,为 Java 应用提供全面的安全服务。下面我将从架构到实践全面解析这一重要框架。
2025-06-14 11:30:00
1112
原创 CSRF防护与CORS配置详解
理解CSRF和CORS的机制与配置方式,是构建安全Web应用的基础。正确配置这两项功能可以在保障安全性的同时,实现必要的跨域访问需求。每次修改请求(POST/PUT/DELETE等)必须携带有效令牌。攻击者诱使用户在已认证的Web应用中执行非预期操作。令牌存储在HTTPSession或Cookie中。:令牌存储在Session中,传统Web应用。服务器生成唯一的CSRF令牌(Token):令牌存储在Cookie中,适合前后端分离。必须确保CORS配置允许携带CSRF令牌。对状态修改请求强制启用CSRF。
2025-06-14 11:30:00
515
原创 HTTPS中的非对称加密:原理与工作机制详解
HTTPS(超文本传输安全协议)是HTTP的安全版本,其安全性主要依赖于非对称加密技术。下面我将全面解析HTTPS中非对称加密的工作原理和实现机制。
2025-06-13 15:37:17
1199
原创 Java常见异常详解及解决方案(四)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-12 11:30:00
414
原创 Java常见异常详解及解决方案(五)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-12 11:30:00
258
原创 Java常见异常详解及解决方案(三)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-11 14:24:28
420
原创 Java常见异常详解及解决方案(二)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-11 14:17:55
539
原创 Java常见异常详解及解决方案(一)
Java异常处理是编程中的重要部分,下面我将分类讲解常见的异常类型,通过具体示例说明其产生原因,并提供相应的解决策略。
2025-06-11 13:51:20
933
原创 关于-->(环境变量与【javac不是内部或外部命令】)
问题一在网上都有解答,也是搜索该错误的常客答案;众所周知,Java程序的执行有赖于JVM【我们所打出的是源文件,通过编译器或是黑窗口的(Javac 文件名.java)命令生成字节码文件,即以class结尾的文件,字节码文件的使用被称为”执行“,是依赖于虚拟机JVM的一个步骤,也是Java被称为跨平台语言的重要原因】,而JVM进程中需要有一个明确的类加载路径,这个路径就是我们在环境变量中配置的内容。二是现在删除时没删干净,但已经重装了JDK,此时先不动注册表信息,在环境变量中寻找是否有多余的信息,删掉。
2025-03-24 12:46:08
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人