- 博客(113)
- 资源 (6)
- 收藏
- 关注

原创 模糊控制算法的C++实现
之前写过一篇关于使用样本数据获取模糊规则的博文,原文 的地址是:http://blog.youkuaiyun.com/shuoyueqishilove/article/details/71908410,大家可以参考,本篇文章适合对模糊控制算法有一定了解的人阅读,给大家提供一种如何用C++实现模糊控制的方法,仅供参考。
2017-07-01 10:26:35
22894
23
原创 deepseek:2025年Java面试必刷高频LeetCode题目
优先掌握链表、数组、动态规划类题目,再扩展至树和设计题。每类题目需至少掌握两种解法(如递归/迭代、暴力/优化),并注重代码规范(边界处理、变量命名)。
2025-03-15 20:59:57
297
原创 deepseek: 通过命令行将 Windows 11 的右键菜单改为 Windows 10 风格
要通过命令行将 Windows 11 的右键菜单改为 Windows 10 风格,可以使用 reg 命令直接修改注册表。通过以上方法,你可以快速使用命令行将 Windows 11 的右键菜单改为 Windows 10 风格,并随时恢复。修改注册表后,需要重启资源管理器以使更改生效。修改注册表有一定风险,建议提前备份重要数据或创建系统还原点。需要以管理员身份运行命令提示符或脚本,否则会提示权限不足。启用 Windows 10 风格的右键菜单。
2025-03-03 16:59:02
119
原创 Jetson Nano B01安装ubuntu20.04-LTS
jetson nano官方最高支持的ubuntu版本是18.04,这版本有点低,不支持ROS2 Foxy安装,ROS2 Foxy需要ubuntu版本为20.04及以上,支持Jetson Nano的ubuntu20.04-LTS镜像如下:Qengineering/Jetson-Nano-Ubuntu-20-image: Jetson Nano with Ubuntu 20.04 image下载镜像之后按照如下链接进行刷机:https://blog.youkuaiyun.com/IvoryDai/article/detai
2024-01-06 10:43:16
2376
1
原创 Ubuntu20.04安装ROS2 Foxy
如果这一步有问题,参考:https://blog.searchinfogo.com/2021/01/27/github-connection-refused/时访问packages.ros.org无法成功,主要的原因是没有外网,而自己整一个外网代理又非常麻烦,所以一般是通过设置国内源来实现。安装ROS2的教程在网上很多,但是我操作之后都有问题,大部分的问题是在。默认情况下,每次打开新shell终端时都必source安装文件,执行。替换为国内的镜像源的域名,这里我替换为清华大学源域名。启动listener。
2024-01-06 10:35:26
1871
1
转载 BeanFactory和FactoryBean的区别
但少数情况下,容器中的 bean 本身就是工厂,作用是产生其他 bean 实例。即一个Bean A如果实现了FactoryBean接口,那么A就变成了一个工厂,根据A的名称获取到的实际上是工厂调用getObject()返回的对象,而不是A本身,如果要获取工厂A自身的实例,那么需要在名称前面加上’&'符号。BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。
2023-10-23 19:48:28
180
原创 Sharding-JDBC分库分表-分布式事务-5
分库分表必然会涉及到分布式事务的问题,关于这方面,sharding JDBC为用户提供了两种分布式事务解决方案:XA事务和BASE事务,这两个的区别是:XA事务,追求强一致性,锁定的资源范围比较大,是个并发量要求不高、事务锁定时间短的场景;而BASE事务是一种柔性事务,它追求的是最终一致性,对资源锁定范围小,适合高并发的场景。sharding JDBC分布式事务介绍。
2023-09-12 22:46:51
523
1
原创 Sharding-JDBC分库分表-自定义分片算法-4
自定义分片算法时通过配置分片策略类型和算法类名,实现自定义扩展。允许向算法类内传入额外的自定义属性,传入的属性可以通过属性名为props的类实例取出。自定义分片算法有三种类型标准分片算法复杂分片算法hint分片算法算法分类需要实现接口说明标准支持单个分片键,需要实现精确和范围分片接口复杂支持多个分片键,但是分片键数据类型需要一样hint没有分片键,分片值通过hint注入而不是SQL。
2023-09-10 17:41:43
1127
1
原创 Sharding-JDBC分库分表-自动配置与分片规则加载原理-3
分片规则、审计规则、key生成规则都是通过SPI的方式加载,自动配置类ShardingSphereAutoConfiguration中创建ShardingSphereDataSource的时候,会加载配置的分片规则,创建核心配置类ShardingRule,在ShardingRule的创建中会通过SPI的方式加载分片规则。其中,创建数据源bean时会根据不同的模式创建不同的bean,本地模式直接从配置文件中加载,配置中心模式就从配置中心加载。
2023-09-03 18:44:46
923
原创 Sharding-JDBC分库分表-自定义分布式ID生成算法-2
Sharding JDBC自定义分布式ID生成算法通过SPI方式提供扩展能力,算法需要实现接口KeyGenerateAlgorithm
2023-09-02 22:47:53
915
原创 Sharding-JDBC分库分表-入门-1
Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强官网:https://shardingsphere.apache.org/index_zh.html官方样例:https://shardingsphere.apache.org/blog/cn/material/oct_12_4_updates_and_faq_your_1_minute_quick_start_guide_to_shardingsphere/
2023-08-29 23:38:44
307
原创 Git回滚代码到某个tag
开发中总会有人不小心将代码提交到错误的分支上,比如应该提到dev分支的代码提交到了master分支,可以使用git回滚到tag的方法进行回滚。2、寻找tag提交ID显示如下结果commit f2acd7b8e58fe053fbf4feadc8208a07b47d7d4d (tag: 22.5.0.3, tag: 22.5.0.2, tag: 22.5.0.1)commit后面就是提交ID4、推送到源仓库注意,这需要开启仓库的force push权限
2022-12-07 11:25:47
4001
原创 AOP核心
面相关切面编程,利用AOP可以对业务的各个部分进行隔离,使得业务逻辑各部分之间耦合度降低,提高开发效率。基于AspectJ实现AOP操作有两种方式实现:XML配置和使用注解。
2022-10-17 23:31:48
491
原创 MyBatis的Mapper接口自动注册原理
MapperScan注解提供了一种使用Java配置的方式来注入mapper接口,功能与在xml文件中通过MapperScannerRegistrar配置MapperScannerConfigurer是一样的,因为这个注解使用了@Import注解导入了MapperScannerRegistrar。如上所示的Mybatis的mapper接口,在定义之后,可以直接在service实现类中使用,那么这些Mapper是如何被加载的呢?整个Mapper的加载过程可以归纳为。注册Mapper接口。
2022-10-17 15:51:21
2132
原创 Spring IOC核心知识
控制反转(IOC: Inversion Of Control),把对象的创建和对象之间的调用过程都交给Spring管理,从而降低耦合度。
2022-10-10 20:32:40
946
原创 Spring事务执行的原理(@Transactional)
事务执行的原理(@Transactional)Spring框架默认使用基于CGLIB的AOP动态代理实现,根据前面的CGLIB动态代理原理的分析(Spring动态代理原理)。可以发现,应用启动的时候,在@EnableTransactionManagement注解的作用下会自动生成代理对象CglibAopProxy,并会为方法设置对应的拦截器链;当调用带有@Transactional注解的方法时,DynamicAdvisedInterceptor#intercept能够获取到该方法的拦截器链,由于方法带有事
2022-05-12 16:08:09
1095
原创 Spring的动态代理原理
Spring动态代理原理Spring动态代理有两种:CGLIB动态代理和JDK动态代理。JDK动态代理可以代理接口,不能代理没有实现接口的类;而CGLIB通过字节码技术可以动态生成被代理类的子类,从而可以代理没有实现接口的类;但是不能代理非public和final的方法,因为子类不可见。Spring框架中使用DefaultAopProxyFactory来确定使用CGLIB或者JDK的动态代理一般满足以下条件之一 就会进行CGLIB动态代理:optimize标志位被设定proxyTargetCl
2022-05-09 21:40:43
2213
原创 Spring事务原理之关键注解
Spring事务Spring事务通过AOP切面来增强目标方法的调用,控制事务的开启、提交和回滚。主要的接口有:TransactionManager:Spring事务管理器实现的标志接口,对标准事务和反应式事务都可用;TransactionStatus:代表事务的状态,事务代码可以使用它来获取事务的状态,也可以在失败的时候,编码式的请求一个回滚;他还包含了SavepointManager接口,用来访问保存点管理信息;注意只有底层事务管理器支持的时候,才能使用保存点管理器。TransactionDef
2022-05-07 20:59:46
587
原创 Feign使用和原理的总结
Feign总结使用引入依赖 <properties> <java.version>1.8</java.version> <spring-cloud.version>2021.0.1</spring-cloud.version> </properties> <dependencies> <dependency> <g
2022-04-22 17:45:30
2241
原创 SpringBoot启动原理
启动原理@SpringBootApplicationpublic class Application extends SpringBootServletInitializer { public static void main(String[] args) { // 新建SpringApplication SpringApplication app = new SpringApplication(Application.class); // 执行r
2022-04-19 19:19:28
443
原创 Ribbon负载均衡的原理
Ribbon依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</version> <relativePath/> <!--
2022-04-06 23:59:37
998
原创 基于模板模式与多线程的高效集成数据处理
高效处理集成数据从外部系统集成的数据一般需要经过一定的处理才能写入正式表,常见的实现需要满足下面几点:定时任务触发集成数据后处理防止定时任务频繁触发导致数据错乱处理数据要足够快大批量数据同时处理不能出现OOM定时任务平台回调反馈结果以上几点同时满足,集成数据才能准确。但是经过实践发现,团队写的代码很多都是重复的,可以考虑使用模板方法模式对集成数据进行优化。1、算法结构如图,抽象模板类AbstractIntegrateTemplate中的integrate方法定义了算法执行的
2022-03-22 14:40:04
651
原创 责任链模式
设计模式-责任链模式责任链模式(Chain of Responsibility Pattern):避免请求的发送者与接收者耦合,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。算法结构如上图,AbstractHandler定义了抽象方法handle(),具体的handle()业务逻辑交给子类HandlerA、HandlerB、HandlerC去实现,在AbstractHandler中的next字段可以将具体的Han
2022-03-12 18:20:52
724
原创 观察者模式
观察者模式:一个对象的状态发生改变,与此有对应关系的对象将对此作出相应的动作观察者模式:有点类似于微信朋友圈的模式,当你发布完一个朋友圈动态,你的联系人会看到你新发布的文章,这里的关键是你有一个联系人列表,至少你知道联系人的ID。订阅模式:订阅者跟发布者是弱关联模式,甚至发布者不需要知道订阅者的存在,这跟观察者模式有个本质的区别。订阅模式的耦合性较低,但是通信的质量较差,也不需确保通信的质量。监听器模式:它其实是两个观察者模式的实现,用于解耦观察者模式中的观察者和被观察者,相当于在中间加了个传话的人,
2022-03-10 23:06:17
320
转载 简单工厂-工厂方法-抽象工厂模式
工厂模式的本质就是对获取对象过程的抽象工厂模式主要可以分为三大类:简单工厂模式工厂方法模式抽象工程模式简单工厂模式工厂模式主要是用于对实现逻辑的封装,并且通过对公共的接口提供对象的实列画的服务,在我添加新的类时不需大动干戈,只要修改一点点就好。举个例子我之前所在的电商业务怎么创建创建商品的:在这个简单工厂里面,如果要创建活动商品1 以及活动商品2,我们要创建商品的时候只要调用简单工厂里面的创建商品方法,根据类型创建出不同的商品然后实列化返回就可以了。简单工厂几种实现方式:...
2022-03-09 23:44:26
493
原创 模板方法模式
模板方法模式由模板定义算法的框架,将共性的部分放在模板中实现,个性化的部分预留方法出来,交给子类去实现可以参考大神的博客:模板方法模式
2022-03-09 11:55:53
241
原创 策略模式使用
策略模式策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换;它可以替换继承关系,避免使用多重条件转移语句典型应用场景根据不同的类型选择不同的计费策略、处理机制参考:https://blog.youkuaiyun.com/u010247622/article/details/106220318/容错恢复机制,当程序出现错误时,使用备选方案参考:https://www.cnblogs.com/LoveShare/p/10953940.html算法结构如图,该算法,一般先定义
2022-03-08 16:06:02
363
原创 集成Mybatis-Plus
集成Mybatis-Plus引入依赖 <!-- mybatis-plus依赖 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency> <!-- a
2022-03-07 19:15:11
941
原创 Redisson原理
1、场景假设场景,多个线程并发(模拟并发)对库存数量进行扣减,现将库存预置在redis中,然后开启多线程对库存进行扣减private static final String PRODUCT = "MoonCake";private static final String PRODUCT_STOCK = PRODUCT + "Stock";@Autowiredprivate RedissonClient redissonClient;@Autowiredprivate RedisTempla
2022-01-12 14:53:57
1281
原创 程序员必备原理
1 Redis1.1Redis中的hash扩容原理采用渐进式的rehash扩容rehash原理1.2 Redis集群数据分片Redis采用Hash槽来进行数据分片,Redis Cluster包含了16384个哈希槽,每个Key通过计算后都会落在具体一个槽位上,而这个槽位是属于哪个存储节点的,则由用户自己定义分配Hash槽原理1.3 Redis数据复制原理主从,哨兵、集群数据赋值原理.........
2022-01-06 11:44:42
3884
原创 动态代理原理和实例
动态代理1、使用场景通过代理对目标类方法进行增强;使用RPC框架的时,框架本身并不能提前知道各个业务方要调用哪些接口的哪些方法 。这时,通过动态代理的方式建立一个中间人给客户端使用,方便框架搭建逻辑, 可以使客户端代码和框架解耦;Spring的AOP机制采用动态代理的机制来实现切面编程。2、JDK和CGLIB动态代理的区别CGLIB动态代理是JDK动态代理的补充,JDK动态代理只能代理具有接口的实现类,不能代理没有接口的Java类中的方法,CGLIB既可以代理接口,亦可以代理普通JAVA类
2022-01-03 15:21:29
219
模糊控制器 C++实现
2018-05-24
自适应模糊PID代码 C++实现
2018-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人