- 博客(83)
- 收藏
- 关注
原创 证券交易所交易全解析
交易所会员是指经批准在交易所从事证券交易的金融机构,拥有交易席位等权利,同时需遵守交易所规则。交易席位是会员进行交易的具体通道,从有形席位演变为电子权限。会员需先获得资格才能申请席位。交易费用包括佣金、印花税等,影响投资回报。交易过程涉及下单、撮合、清算等步骤,信息透明度对市场公平至关重要。现代市场运作高度电子化,交易所会员制和席位制度是市场风险管理和技术进步的核心体现。
2025-10-22 20:23:52
652
原创 证券市场全景解读:从基础概念到生态结构
证券市场是股票、债券等有价证券发行和交易的场所,具有融资、投资和定价三大核心功能。按市场职能可分为一级市场(发行)和二级市场(流通);按交易对象分为股票、债券、基金和衍生品市场;按组织形式分为交易所和场外市场。主要参与者包括资金需求方(政府、企业)、资金供给方(机构和个人投资者)、中介机构(投行、经纪商)以及监管服务机构。中国多层次资本市场体系包括主板、科创板、创业板、北交所等,为不同企业提供融资渠道。
2025-10-22 19:49:33
979
原创 Commit后还没Push,突然发现错误!别慌,IDEA中这样回退!
摘要:本文介绍了在IDEA中撤销已commit但未push提交的5种方法:1)Amend Commit(小修改);2)Soft Reset(保留修改);3)Hard Reset(丢弃修改);4)回退到指定提交;5)Revert(创建反向提交)。重点推荐方法二(Soft Reset)的详细步骤,并对比了不同重置类型的区别。注意事项包括确认未push、备份代码和团队协作考量,建议根据需求选择合适方法,其中Soft Reset是最安全常用的方案。(150字)
2025-09-28 18:16:54
1176
原创 给定一个二维数组matrix,可以从任何位置出发,走向上下左右四个方向,返回能走出来的最大长递增链长度。
摘要 本文介绍了三种求解矩阵中最长递增路径的方法:1) DFS+记忆化搜索,通过深度优先遍历和缓存结果优化性能;2) 拓扑排序,将矩阵视为有向图进行层次遍历;3) 动态规划,按值排序后递推计算。三种方法的时间复杂度均为O(mn),其中DFS+记忆化搜索最为简洁高效,能够避免重复计算并快速找到最长路径。该问题可应用于路径规划、图像处理等场景。
2025-09-28 17:46:15
160
原创 每日算法之:一个数组中只有两种字符‘G‘和‘B‘,可以让所有G都放在左侧,所有B都放在右侧 或者让所有G都放在右侧,所有B都放在左侧,但只能在相邻字符之间进行交换操作,返回至少需要交换几次?
一个数组中只有两种字符'G'和'B',可以让所有的G都放在左侧,所有的B都放在右侧或者可以让所有的G都放在右侧,所有的B都放在左侧,但是只能在相邻字符之间进行交换操作,返回至少需要交换几次
2025-09-12 01:31:52
264
原创 工厂模式 vs 抽象工厂:秒懂!两大创建型模式的核心差异与选型指南
本文通过家具的比喻和代码示例,对比了工厂模式和抽象工厂模式的核心区别。工厂模式专注于单一产品的创建(如专门生产椅子),每个工厂只负责一种产品;而抽象工厂模式关注产品族的创建(如整套现代风格家具),一个工厂能生产一整套相关联的产品。二者的主要差异在于职责粒度:工厂模式是"专家",抽象工厂模式是"总承包商"。抽象工厂模式通常用工厂模式实现,能确保产品风格的统一性,适用于需要创建配套产品的场景。
2025-09-11 00:50:45
463
原创 每日算法之:给定一个文件目录的路径,写一个函数统计这个目录下所有的文件数量并返回,隐藏文件也算,但是文件夹不算
给定一个文件目录的路径,写一个函数统计这个目录下所有的文件数量并返回,隐藏文件也算,但是文件夹不算
2025-09-11 00:18:19
187
原创 每日算法之:给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度,返回绳子最多压中几个点? 即使绳子边缘处盖住点也算盖住
给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度,返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住
2025-09-10 16:28:33
176
原创 你的Spring事务为什么没回滚?这8个坑踩中一个就完蛋!
Spring事务失效的八大场景及解决方案非public方法:事务仅对public方法生效同类自调用:this调用绕过代理,需拆Service或使用AopContext异常处理不当:默认只回滚RuntimeException,需指定rollbackFor或重新抛出数据库引擎不支持:MySQL需使用InnoDB引擎传播行为错误:NOT_SUPPORTED等行为会挂起事务非容器管理对象:new创建的对象无事务多数据源冲突:需显式指定事务管理器异步方法:@Async与事务线程上下文分离
2025-09-07 01:10:37
957
原创 看了很多文章还分不清策略和模板模式?这篇保姆级图解带你彻底搞懂!
策略模式 vs 模板模式核心区别 策略模式:动态替换整个算法("做什么"),通过组合实现,运行时灵活切换。 模板模式:固定算法骨架("怎么做"),通过继承实现,子类重写特定步骤。 典型场景: 策略模式:需运行时切换不同算法(如金融风险计算的多种独立算法)。 模板模式:需复用固定流程但允许步骤微调(如报告生成流程固定,仅计算逻辑可变)。 选择依据: 需替换完整算法 → 策略模式 需保持流程统一 → 模板模式 比喻:策略模式是换厨师(整套做法不同),模板模式是换调料。
2025-09-04 10:28:04
978
原创 LangChain4j vs Spring AI:JavaAI框架巅峰对决,谁才是你的最佳选择?
LangChain4j与Spring AI对比摘要(148字) LangChain4j是专业化AI工具库,提供链式API、智能体工具和记忆管理等精细化功能,适合复杂AI应用开发,学习曲线较陡。Spring AI作为Spring生态的官方集成框架,采用声明式API,与Spring Boot无缝兼容,简化AI能力调用,适合快速对接主流模型。核心差异:LangChain4j侧重灵活构建复杂工作流,Spring AI强调标准化集成。选择建议:复杂智能体选LangChain4j,Spring项目快速集成选Spring
2025-09-04 01:00:12
1332
1
原创 你确定你的线程池里的线程都还‘活着’吗?
摘要: 线程池通过双重机制确保线程不丢失: 任务不丢失:采用队列缓冲平滑流量,配合拒绝策略(如CallerRunsPolicy或自定义持久化策略)处理饱和任务,避免静默丢弃。 线程不终止:工作线程内部捕获任务异常(RuntimeException),仅记录日志而不退出循环,维持线程存活。核心设计通过Worker的异常隔离和队列协同,保障高并发下的稳定性,适用于需可靠执行的场景(如批量计算)。自定义拒绝策略(如任务落库重试)可进一步强化容错能力。
2025-09-04 00:33:09
808
原创 接口保证幂等性你学废了吗?
接口幂等性是指多次调用接口对资源的影响一致,防止重复操作导致数据错误。常见方案包括:1) Token机制:客户端获取唯一Token提交请求,服务器校验后删除Token;2) 数据库唯一索引:利用唯一键约束防止重复插入;3) 乐观锁/悲观锁:通过版本号或行锁控制并发更新;4) 状态机约束:基于业务状态流转限制操作条件。金融场景中常组合使用(如Token+乐观锁),其中Token机制适合前端提交,唯一索引适用于插入,乐观锁适合扣减,状态机用于订单流程。选择时需权衡场景、性能与实现复杂度。
2025-09-03 21:48:09
889
原创 HR “人类观察实验室”:7月最后一天的候选人行为艺术大赏
本文摘要: 数据库优化方面,介绍了SQL语句优化策略(如避免SELECT *、合理使用索引)和表设计优化(合理分库分表、数据类型选择)。针对轨迹数据查询场景,提出了空间索引、轨迹预聚合和Redis数据结构优化方案。Java垃圾回收部分,解释了标记-清除、标记-整理和复制算法的特点及应用场景,并阐述了分代垃圾回收机制的设计原理。最后详细讲解了单例模式的五种实现方式,重点分析了双重检查锁定机制解决线程安全问题的原理。全文涵盖数据库性能优化、空间数据处理、JVM内存管理和设计模式等关键技术点。
2025-07-31 15:08:07
642
原创 springboot3.X 项目使用bootstrap失效问题 No spring.config.import property has been defined
摘要:针对"Nacos配置未定义spring.config.import属性"问题,提供了两种解决方案。推荐方案一是在application.yml中显式声明配置导入,使用optional:nacos:格式指定配置路径;方案二通过添加bootstrap依赖并创建bootstrap.yml来兼容旧版方式,同时禁用新机制检查。两种方案均需正确配置Nacos服务地址、命名空间等参数,推荐优先采用方案一的显式导入方式。
2025-07-30 00:41:39
550
原创 服务消费者调用服务提供者时,报错UnknownHostException, I/O error on GET request for “http://nacos-provider/xxx“
摘要:本文分析了Spring Cloud Alibaba服务调用时出现的UnknownHostException问题。问题表现为服务消费者无法解析提供者URL,即使添加了@LoadBalanced注解。根本原因是Spring Cloud Alibaba 2023.x版本默认移除了Ribbon支持。解决方案是显式引入Spring Cloud LoadBalancer依赖(版本4.2.1),重启后问题解决。该异常通常由版本兼容问题引起,建议检查Spring Boot与Spring Cloud Alibaba的版
2025-07-29 19:43:39
434
原创 Caused by: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
Spring Boot项目启动时报错"ClassNotFoundException: ConfigurationBeanFactoryMetadata",主要原因是Spring Boot 3.x移除了该2.x内部类,导致版本不兼容。提供三种解决方案:1)推荐升级Spring Cloud Alibaba至2023.x版本以适配Spring Boot 3.x;2)降级Spring Boot至2.7.x版本保持兼容;3)排除冲突依赖。文末附版本兼容对照表。
2025-07-29 10:19:58
589
原创 别再乱用校验注解!@NotNull、@NotEmpty和@NotBlank的正确使用姿势
Java校验注解@NotNull、@NotEmpty和@NotBlank的核心区别与应用场景。@NotNull仅检查对象引用非null,适用于任何类型;@NotEmpty额外要求字符串/集合长度>0;@NotBlank专门校验字符串去空格后非空。三者严格程度递增,应根据业务需求选择。使用时需添加validation依赖,通过@Valid触发校验,并处理MethodArgumentNotValidException。最佳实践建议:数据库字段用@NotNull,必填文本用@NotBlank,集合类用@No
2025-07-28 02:23:02
882
原创 @Data、@NoArgsConstructor和@AllArgsConstructor的区别及应用场景
本文主要讲解:@Data、@NoArgsConstructor、@AllArgsConstructor 的关系与区别
2025-07-26 22:52:20
585
原创 IntelliJ IDEA 中左上方未显示项目根目录问题
摘要 IDEA项目中根目录未显示问题可通过以下步骤解决:进入Project Structure设置,为根目录添加Content Root(若报错需先删除子项目的source folder)。操作后即可正确显示项目层级结构。
2025-07-26 17:41:23
471
原创 动态递归之正则表达式
本文介绍了两种解决正则表达式匹配问题的方法。第一种是带记忆化的递归方法,通过递归函数match(i,j)判断子串s[i:]和模式p[j:]是否匹配,并使用哈希表存储中间结果避免重复计算。第二种是动态规划方法,构建二维数组dp[i][j]表示s前i个字符和p前j个字符的匹配情况,特别处理了''的两种匹配方式(匹配0次或多次)。两种方法都能正确处理'.'和''的特殊匹配规则,其中动态规划方法通过自底向上的方式更高效地解决了问题,时间复杂度为O(mn)。
2025-07-23 12:38:37
1011
原创 动态规划之最长回文子串
本文介绍了求解最长回文子串的两种方法:递归和动态规划。递归方法通过检查子串是否为回文并比较左右子串结果,但效率较低易超时。动态规划方法使用二维数组dp记录子串回文状态,先处理单个字符和双字符情况,再逐步扩展子串长度。关键点在于状态转移方程:当首尾字符相同且内部子串为回文时,当前子串为回文。该方法时间复杂度O(n^2),空间复杂度O(n^2),能高效解决问题。实际应用中推荐动态规划实现。
2025-07-19 10:38:16
513
原创 MyISAM 与 InnoDB: 全面解析与对比
MySQL存储引擎对比:MyISAM vs InnoDB 摘要: MyISAM和InnoDB是MySQL两大经典存储引擎。MyISAM由MySQL AB开发,采用表级锁,不支持事务,适合读密集型场景;InnoDB由Innobase开发后被Oracle收购,支持ACID事务、行级锁和崩溃恢复,适合高并发事务处理。
2025-07-13 07:29:00
1119
原创 @ComponentScan注解中排除@Service注解不生效问题
在Spring配置中,使用@ComponentScan排除@Service注解的bean未生效。经排查发现,是由于项目中存在多个@ComponentScan配置相互覆盖导致。解决方案是注释掉其他扫描配置后,排除配置恢复正常生效。关键点在于检查组件扫描范围是否有冲突,并确保唯一生效的扫描配置。
2025-07-11 17:52:46
371
原创 Annotation-specified bean name ‘userDao‘ for bean class [com.dao.UserDao] conflicts with existing
Spring容器初始化时出现同名Bean冲突,接口UserDao与实现类UserDaoImpl都被注册为"userDao"。解决方案包括:1)移除接口上的@Repository注解;2)为接口和实现类指定不同名称;3)限制组件扫描范围排除接口包。MyBatis用户应使用@Mapper注解接口而非Spring组件注解。关键点在于确保接口和实现类不同名注册,通常只需在实现类上使用组件注解。
2025-07-11 17:00:11
431
原创 spring中直接对接口进行@Autowired自动注入情况分析
摘要本文详细介绍了Spring框架中接口注入的8种常见场景及实现方式:单实现类自动注入(最常见情况)多实现类时使用@Primary指定主实现多实现类时使用@Qualifier精确指定字段名匹配Bean名称的注入方式动态代理接口注入(如MyBatis/RPC框架)集合方式注入所有实现类使用Map注入命名实现无实现类时的注入失败情况
2025-07-11 01:19:05
810
原创 MapperScannerConfigurer中报错:No qualifying bean of type ‘com....AccountDao‘ available
Spring整合MyBatis时出现无法自动装配DAO的问题,核心原因是@Bean方法命名与MapperScannerConfigurer预期不匹配。默认情况下,@Bean的方法名会成为Bean名称,而MapperScannerConfigurer默认寻找名为"sqlSessionFactory"的Bean。解决方案见详情
2025-07-10 21:33:53
972
原创 在 IntelliJ IDEA 中,如何快速显示代码Structure结构?
快速定位IDEA中类的方法和属性: Structure窗口:显示当前文件结构(类方法/属性或XML节点) 快捷键: Windows/Linux: Alt+7 macOS: Command+7 菜单操作: View → Tool Windows → Structure (注:图片示意可参考原文)
2025-07-07 00:31:41
415
原创 spring加载外部properties文件属性时,读取到userName变量值和properties文件的值不一致
摘要:Spring属性注入时,${userName}读取到系统环境变量而非properties文件值,原因是系统变量优先级更高。解决方案:1)重命名属性(如改为db.userName)避免冲突;2)Spring 4.3+可通过配置PropertySourcesPlaceholderConfigurer,设置localOverride=true并确保其作为首个bean定义,强制本地属性覆盖系统变量。注意BeanFactoryPostProcessor的执行顺序会影响配置效果。(149字)
2025-07-05 23:05:53
358
原创 bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
摘要:Spring配置中使用<list>标签注入属性时,默认创建LinkedList实例,若属性声明为ArrayList类型会导致类型不匹配报错。解决方案:1)推荐修改属性类型为List接口;2)在配置中显式指定ArrayList实例;3)使用util命名空间定义ArrayList。最佳实践建议使用接口类型List而非具体实现类,同时注意泛型兼容性以避免类型转换异常。(149字)
2025-07-05 18:25:27
570
原创 java: 无法访问org.springframework.boot.SpringApplication,类文件具有错误的版本 61.0, 应为 52.0
摘要 Spring Boot 3.x版本与JDK版本不兼容问题解决方案。当出现"类文件具有错误的版本61.0,应为52.0"错误时,表明使用的是JDK8但需要JDK17+。解决方法包括:1)升级JDK至17或21版本;2)在IDEA中修改Project Structure设置,将SDK和语言级别调整为对应版本。文中提供了JDK升级指南链接和详细的IDEA配置截图,并附有Spring Boot各版本与JDK的兼容性对照表,其中3.x版本最低要求JDK17。
2025-07-04 12:02:34
628
原创 JDK8升级为JDK21
摘要: JDK 21的升级带来多项革命性改进:1)虚拟线程(Virtual Threads)显著提升高并发性能,内存占用更低;2)现代化语言特性如模式匹配、记录类简化代码;3)分代式ZGC和向量API优化性能;4)序列化集合、字符串模板提升开发效率;5)增强安全性与维护性。建议新建项目直接采用JDK 21,旧系统分阶段升级。升级时需注意模块化兼容性、依赖库适配及参数调整。安装步骤包括下载JDK 21、修改JAVA_HOME环境变量并验证版本。
2025-07-04 11:39:20
2056
原创 RESTful 规范风格
RESTful是一种基于HTTP协议的软件架构风格,强调以资源为核心的设计理念。其核心特点包括无状态通信、统一接口(使用标准HTTP方法)、资源抽象化、可缓存机制和URI指向资源。在设计URL时应遵循小写字母、层级关系明确、不含动词等规范。常用注解如@RestController、@GetMapping等简化开发,HTTP状态码如200、404等规范响应结果。实际应用中,通过不同HTTP方法(GET/POST/PUT/DELETE)实现对资源的操作,避免在URL中出现动词。RESTful架构使API更简洁、
2025-07-03 02:18:26
826
原创 记录Idea运行控制台乱码处理方案
解决Idea控制台乱码的4种方法:1) 修改运行配置的VM选项,添加UTF-8编码参数;2) 代码中强制设置输出流编码为UTF-8;3) 永久解决方案:检查全局编码设置、修改IDE启动参数、确保文件编码为UTF-8;4) 终极排查:删除IDEA缓存或重置注册表。每种方法都配有详细操作步骤和图示说明,建议按顺序尝试解决乱码问题。
2025-06-25 18:24:58
544
原创 kafka中启动zookeeper报错:Unable to create data directory \tmp\dataDir\zookeeper\version-2
kafka中启动zookeeper报错:Unable to create data directory \tmp\dataDir\zookeeper\version-2
2023-09-26 00:28:40
1213
原创 jmeter压力测试报错:Non HTTP response message: Illegal character in path at index 43: 请求路径
jmeter压力测试报错:Non HTTP response message: Illegal character in path at index 43: 请求路径
2023-04-02 16:23:12
1092
原创 后台调度器admin和执行器executor已经跑起来了,而且没有报错,但是XXL-Job中执行器任务没有注册到调度器中,找不到执行器
XXL-Job中执行器任务没有注册到调度器中,找不到执行器
2023-01-07 20:32:42
2278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅