- 博客(17)
- 收藏
- 关注
原创 微信小程序支付的一些细节
(通常包含支付金额、订单简要信息,并提供“确认支付”“取消”等操作按钮),等待用户进行下一步的支付确认(如输入支付密码、刷脸等,具体取决于用户的支付设置)。此时,小程序会把包含签名的支付参数(如订单号、支付金额、商户信息、签名等)传递给微信支付系统,请求微信支付系统弹出支付授权界面。,通过签名机制,在技术上确保了支付请求的“真实性”和“完整性”,为后续用户顺利、安全地完成支付提供基础。商家小程序在接收到商户系统后台返回的“带签名支付信息”(第8步)后,会调用微信提供的小程序支付接口。
          2025-09-24 16:33:59
           885
885
        
原创 MySQl——对group by 的严格限制
[42000][1055] Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 在使用分组后不要去取查询那些不确定的字段,这样就能保证查询结果的唯一性和可预测性,避免因随机取值导致的业务逻辑错误。
          2025-08-21 10:00:39
           347
347
        
原创 ThreadLocal的基本原理和应用场景
是的,会因为线程池中的长生命周期线程持有强引用的值。ThreadLocal 的工作原理基于每个线程内部维护的一个 ThreadLocalMap(一个特殊的 HashMap),其中键(key)是 ThreadLocal 实例本身(使用弱引用),值(value)是线程本地存储的对象。ThreadLocal 是 Java 中提供的一种线程本地存储机制(Thread Local Storage,简称 TLS),它允许每个线程拥有自己独立的变量副本,从而实现线程间的数据隔离。:默认不继承父线程的值。
          2025-08-19 14:23:15
           692
692
        
原创 Java中强引用、软引用、弱引用和虚引用的区别
Java中的引用类型位于java.lang.ref包,主要用于管理对象在内存中的生命周期和垃圾回收(GC)行为。
          2025-08-19 14:01:50
           613
613
        
原创 @sun.misc.Contended和伪共享(False Sharing)
伪共享是多核 CPU 系统中因缓存一致性机制导致的性能问题。CPU 缓存机制:现代 CPU 使用缓存(cache)来加速内存访问。缓存以缓存行(cache line)为单位(通常 64 字节)从主内存加载数据。多个变量可能共享同一个缓存行。问题场景:当多个线程在不同 CPU 核心上并发修改位于同一缓存行的不同变量时,会触发缓存一致性协议(如 MESI),导致缓存行在核心间频繁失效和同步,即使线程修改的变量是独立的。这种现象称为伪共享,因为线程看似操作独立变量,实际上因共享缓存行而产生竞争。性能影响。
          2025-08-18 16:08:06
           583
583
        
原创 LongAdder——高性能底层逻辑实现
LongAdder是 Java 并发工具箱中的一颗明珠,专为高并发计数场景设计,通过分散竞争(base + cells)、空间换时间和最终一致性,显著提升吞吐量。其设计理念源于“分而治之”,受 striped counters 启发,权衡了内存开销和一致性以换取性能。适合高并发、写多读少的场景(如统计、监控),但在低并发、强一致性或频繁读总和的场景中需谨慎选择。
          2025-08-18 15:51:15
           1325
1325
        
原创 CountDownLatch 的使用方法
是协调多线程执行顺序的高效工具,通过简单的“计数器增减”机制,实现了线程间的等待通知。在初始化协调、并发测试、任务拆分等场景中非常实用,核心是理解“等待线程”与“事件线程”的角色划分。
          2025-08-15 10:35:54
           596
596
        
原创 RabbitMQ——延迟队列插件配置
使用 docker-compose 启动包含延迟插件的 RabbitMQ 容器服务_docker-compose rabbitmq 延迟插件-CSDN博客。
          2025-08-14 16:53:59
           1074
1074
        
原创 Java类名冲突的两种解决方式
两种方式都能有效解决类名冲突,核心是通过明确包路径或自定义别名来区分不同来源的类。Java 10 及以上版本支持为导入的类指定别名,通过。:依赖 Java 10+ 版本,低版本不支持。:避免全类名的冗长,代码更简洁。
          2025-08-13 16:10:22
           219
219
        
原创 Spring 三级缓存——解决循环依赖
存早期引用(ObjectFactory 生产的对象),避免重复创建代理。存最终完全初始化的 Bean(可能是代理)。详细执行过程(以 A → B → A 的循环依赖为例)不直接存“半成品 Bean”,而是存。三级缓存的实现主要依赖于 Spring 容器的。Spring 发现完全没缓存 →。→ 支持动态生成代理对象。
          2025-08-12 10:29:39
           403
403
        
         
      
空空如也
         
      
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
 RSS订阅
RSS订阅