- 博客(23)
- 收藏
- 关注
原创 Java面试复习 Day 5
策略名称是否丢任务是否抛异常谁执行任务核心作用典型场景是是无快速失败,强制感知支付、核心交易(需配合重试)否否提交线程降级限流,自我保护日志、非实时重要任务是否无静默丢弃,保系统监控采样、非关键日志是(旧任务)否线程池(新任务)优先处理最新数据实时行情、状态上报生产环境最佳实践建议在实际生产中,默认的 AbortPolicy 往往不够用,因为单纯的异常抛出可能导致业务中断。
2026-07-17 15:50:23
372
原创 Java面试复习 Day 4
二叉树二叉树:仅适合教学入门学习,生产环境几乎不会直接使用,只有经过平衡优化的红黑树等变种,会用于Java的HashMap等内存场景,完全不适合磁盘数据库做索引。B树:属于过渡型的磁盘索引结构,相比二叉树大幅减少了磁盘IO次数,但因为范围查询效率低,现在已经很少在主流数据库中作为主索引使用,部分旧文件系统会采用该结构。B+树。
2026-07-06 16:36:07
188
原创 Java面试复习 Day 3
区域线程归属核心存储内容是否参与GC常见异常程序计数器私有指令地址否无虚拟机栈私有栈帧、局部变量否本地方法栈私有Native方法状态否堆共享对象实例、数组是 (核心)OOM方法区共享类元数据、常量、静态变量是 (少量)OOM口诀:对象存堆,局部变量存栈,类和静态放方法区,行号记在计数器,native方法走本地栈。。
2026-07-03 19:09:08
179
原创 Java面试复习Day 2
JDK 1.8 的 put 流程通过引入红黑树和尾插法,在保持高效插入的同时,显著提升了极端冲突下的查询性能,并消除了并发扩容的死循环隐患。在实际开发中,若涉及高并发场景,仍建议使用 ConcurrentHashMap。
2026-07-02 18:30:39
322
原创 Java面试复习 Day 1
1. 定义:抽象类可以包含抽象方法(没有方法体的方法)和具体方法(有方法体的方法)。它还可以包含字段、构造器等。2. 继承:一个类只能继承一个抽象类。3. 访问修饰符:方法和字段可以有不同的访问修饰符。4. 示例:区别总结- 继承:一个类只能继承一个抽象类,但可以实现多个接口。- 方法实现:接口只包含抽象方法,抽象类可以包含抽象方法和具体方法。- 字段:接口中的字段默认是`public static final`,而抽象类可以包含任意类型的字段。
2026-07-01 16:08:30
226
原创 分布式锁小记
可重入锁(Reentrant Lock)是指同一线程可以多次获取同一把锁,而不会导致死锁。特性一般实现带看门狗的实现锁过期固定时间,可能提前释放业务执行期间自动续期适用场景业务执行时间确定且短业务执行时间不确定复杂度简单较复杂,需要定时任务可靠性低高使用Redisson替代或者增加看门狗续期机制设置合理的超时时间,宁可设置长一点也不要太短。
2026-06-29 21:10:19
211
原创 List、Set、Map
本文总结了Java中List转Set的两种实现方式,对比了List与Set的特性差异,分析了HashSet相对于List在查找效率和自动去重方面的优势。同时深入比较了HashMap与HashSet的底层实现及适用场景,强调HashSet在语义清晰度和内存占用上的优势。针对多线程环境,详细介绍了ConcurrentHashMap.newKeySet()等线程安全方案,并解析了ConcurrentHashMap的分段锁机制及其在JDK7与JDK8中的优化。
2026-06-28 18:53:22
149
原创 Maven
总结:两个模块都引入fastjson不会导致重复引入问题,Maven会自动处理。4.parent pom:管理“如果子模块要引入,用哪个版本”;1.parent pom的dependencyManagement只负责版本统一管理,不会真的引入依赖。3.只在parent中统一管理所有依赖的版本号;在子模块中按需引入需要的依赖,不需要重复写版本号。2.service pom的dependencies 负责“真的”引入依赖到该模块。背景:一个项目中,不同模块分别引入了相同的jar包,是否会存在重复引入问题。
2026-06-22 21:31:35
176
原创 Processor注解
3.关联操作类型枚举:clazz=UserTypeEnum.class,指定了操作类型的枚举类,用于定义和验证操作类型。2.定义操作类型:operateType="query_user",表示这个处理器专门处理查询用户的操作。@Processor是一个自定义注解,用于标识一个类是业务处理器,并定义其处理的业务类型和操纵类型。1.标识业务类型:bizType = XXX,表示这个处理器处理的是XXX业务。
2026-06-18 15:17:09
165
原创 TR、MGW、HTTP接口
本文比较了三种常见接口类型的特点与应用场景:1)TR接口是内部RPC框架,采用二进制TCP协议,适合高性能同步服务调用;2)MGW消息网关基于消息中间件,实现系统异步解耦;3)HTTP接口采用标准RESTful协议,便于外部系统集成。三种接口在通信方式、协议、性能、调试难度等方面各具特点:TR适合内部微服务调用,MGW适用于事件驱动场景,HTTP则面向外部系统或用户服务。建议根据具体需求选择,TR侧重性能,MGW强调解耦,HTTP注重通用性。
2026-06-14 15:00:17
297
原创 今日小知识-USB-C
它采用对称设计的24针椭圆形可正反插拔接口,支持更高的数据传输速率(如USB3.2、USB4)、大功率电力传输(最高可达240W,符合USB PD3.1规范)以及多种音视频协议(如DisplayPort Alt Mode、HDMI)。USB-C不仅用于数据传输和充电,还可作为多功能扩展接口,广泛应用于智能手机、笔记本电脑、平板、外设及显示器等设备。需注意:USB-C仅定义接口形状与引脚布局,其实际性能(如速度、供电能力)取决于所实现的协议版本和线缆/设备支持能力。
2026-06-14 14:29:11
164
原创 Win11 桌面故障排查
PS:以下内容来自AI整理,本人还未经验证,仅做记录。建议排查顺序:先从软件开始(重装驱动、禁用启动项、清理后台进程),若问题依旧存在再考虑硬件检测。建议先从任务管理器开始,查看是哪个资源(CPU/内存/磁盘)占用最高,以此定位问题方向。问题:Windows11系统桌面卡顿、文件夹自动关闭问题。五、IDE(idea)卡死专项。
2026-06-11 20:58:51
227
原创 今日小点-热发布
热发布是指在不中断服务、不停止系统运行的情况下,将新版本的代码或配置更新部署到生产环境的过程。它允许系统在持续对外提供服务的同时完成升级,从而提升可用性、降低发布风险,并支持快速迭代与故障回滚,(它通常依赖于支持动态加载、模块热替或流量灰度切换等技术机制)。常见于微服务架构、容器化环境(如Kubernetes)及支持动态加载/重载机制的中间件或应用框架中。
2026-06-11 20:21:01
189
原创 今日小点-代码脚手架
代码脚手架是为快速启动软件开发而预先构建的基础模板,包含项目结构、配置文件、依赖管理、工具链集成和样板代码等。它能减少重复工作,统一开发规范,提升效率和一致性,广泛应用于前端(如Vue CLI)、后端(如Spring Initializr)和全栈框架(如Next.js)中。(98字)
2026-06-10 20:45:08
231
原创 策略模式详解
策略模式是一种行为型设计模式,通过在运行时动态选择不同算法来实现业务逻辑的灵活切换。其核心在于将算法封装为独立策略类,实现客户端代码与具体策略的解耦。该模式具有三大优势:1)符合开闭原则,便于扩展新策略;2)各策略可独立测试;3)支持运行时动态切换策略。在Spring框架中的典型实现步骤包括:定义策略接口、实现策略类并标注@Component、自动注入策略Map、根据条件获取并执行策略。策略接口主要通过命名约定(Strategy后缀)、接口定义和多实现类来标识,本质上是通过接口+多态+依赖注入实现的经典设计
2026-06-10 20:37:48
180
原创 AI提示词的一些小要点
摘要: 本文总结了7条提升AI使用效率的实用建议:1)拆分任务至最小粒度;2)提供清晰具体的输入信息;3)为AI设定专业角色增强输出质量;4)定期新开会话避免误差累积;5)采用测试驱动开发(TDD)模式;6)遇到问题优先切换整体方案而非局部修复;7)遵循“角色+上下文+任务+约束”的提示词公式,明确技术栈、代码风格等要求。核心逻辑是通过精准的任务设计、充分的信息输入和结构化提示,最大化AI的上下文理解能力与输出专业性。
2026-06-08 20:54:44
202
原创 悲观锁与乐观锁
文章摘要: 悲观锁(FOR UPDATE)适用于高并发写冲突场景,通过事务内加锁确保数据一致性,但存在性能开销和死锁风险,建议短事务和索引优化。乐观锁通过CAS机制实现无锁竞争,适合高读场景,但需处理ABA问题和竞争开销,推荐随机重试和监控竞争率。两者选择取决于冲突概率:悲观锁适合强一致性场景(如订单创建),乐观锁更适配低冲突高并发场景(如余额扣减)。优化时需权衡锁粒度、事务时长和重试策略。
2026-06-04 21:26:37
285
原创 CAS更新
CAS(Compare and Swap)是一种无锁同步机制,通过比较当前值是否等于预期值来决定是否更新,实现原子操作。其核心原理是先比较再交换,数据库中使用类似update ... where语句实现。相比悲观锁,CAS在低冲突场景性能更高,但存在ABA问题(值被改回原值),可通过版本号或时间戳解决。CAS优点包括无阻塞、无死锁和轻量级,适合读多写少场景;缺点是自旋开销大且只能保证单变量原子性。最佳实践包括限制重试次数、退避策略和单向状态设计等。
2026-06-04 20:49:51
207
原创 Spring入参校验@Validated与@Valid结合使用
NotEmpty(message="成绩不能为空", groups = {Teacher.addOne.class})@NotBlank(message="姓名不能为空",groups={Teacher.addOne.class})@NotBlank(message="姓名不能为空", groups = {addOne.class})@NotEmpty(message="学生不能为空", groups = {addOne.class})//检验通过,返回200。//校验失败,返回字符串打印和错误提示。
2025-09-11 16:37:27
594
原创 Oracle 存储过程
insert into al_log(id,create_date,sp_name,error_msg)values(主键,日期,存储过程名,错误信息);insert into tbl_test(id,name)values(1,'张三');v_date_in in varchar2,--入参(入参个数0-N)v_ret_out out varchar2--出参(出参个数0-N)--此段写业务sql。二、存储过程调用方式。
2025-09-03 09:55:35
622
原创 springboot上传文件报超出大小限制
针对以上情况将原配置排除在外,在Application.java的启动类上加入注解@ComponentScan(value="com.java",excludeFilters={@ComponentScan.Filter(type=FilterType.REGEX,pattern="com.java.config.MultipartConfig")})//pattern是引入项目的bean配置的.java路径。#file-size-threshold: 0 #不设限,最后这种并没有用到,只是记录一下。
2023-06-29 09:40:03
2354
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅