自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 For循环中的++i与i++的区别

在刷LeetCode中参考最佳解法时观察到官方在for循环中会经常用到++i,而不是我们从一开始接触java就建立的用i++的习惯,当我第一次看见前者这种用法时,会对自己产生怀疑,难道他们的用法真的有区别吗?for循环中i++:java中i++是先返回i的值后再自增i,所以在每次for循环时都会花费额外的内存和时间去开辟新的临时变量空间来转存,故其效率会更低。for循环中++i:java中++i是直接将i自增后再返回,省去了开辟新的临时变量的额外消耗,故其效率比i++高。

2025-02-07 14:16:52 198

原创 【SpringBoot】【log】 自定义logback日志配置

SpringBoot官方建议使用logback-spring.xml作为logback框架的自定义日志配置文件,使用logback-spring.xml而不是logback.xml,因为带-spring后缀的配置文件可以使用使用Spring扩展profile支持,提供profile多环境日志输出得功能。日志记录器(Logger)的行为是分等级的,日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。

2024-11-21 20:13:57 2781

原创 mybatis更新后立即获取更新记录的自增主键

修改 Mapper XML 文件: 在 标签中添加 useGeneratedKeys="true" 和 keyProperty="id" 属性。假设 SysDutyType 的主键字段名为 id。在 MyBatis 中,如果你希望在插入数据后获取生成的主键值,可以通过配置 useGeneratedKeys 和 keyProperty 来实现。在插入数据后,可以直接通过 sysDutyType.getId() 获取生成的主键值。

2024-10-21 13:35:38 311

原创 解决nvm use无效问题

问题出在安装nvm的时候,自定义安装目录的时候,node应用默认在nvm文件下(并且不能修改),但是setting文件的node配置应用的是nvm下的nodejs文件。解决办法 :自己按setting文件中的nodejs的路径新建nodejs文件就好了。这里应该算是一个bug。

2024-10-17 14:04:14 373

原创 MySQL datetime不同长度的影响

DATETIME(N) (N 为 1 到 6),表示存储日期时间直到 N 位小数秒。, 长度为0,在进行插入数据时,MySQL会对该字段进行舍入操作。DATETIME 默认不带括号内的数字,表示存储日期时间直到秒。1.创建一张测试表,里面有两个时间字段都是。中某张表的某个字段类型设置。,但其中一个长度为3。

2024-10-17 13:52:43 873

原创 Node卸载干净

默认是C:\Program Files\nodejs,也可能在其他盘,主要取决于安装时的选择。在键盘上按下win + R ,输入cmd ,然后点击回车键,在命令行中输入node -v。C:\Users\用户名\AppData\Roaming\npm-cache。用户变量的Path删除->系统变量的NODE_PATH里的node删掉。C:\Users\用户名\AppData\Roaming\npm。5、打开系统设置,检查系统环境变量,将node相关的配置都删掉。4、逐一查看一下文件是否存在,存在就删除。

2024-10-17 10:13:21 642

原创 redisTemplate 配置和简单应用

2.应用1.常用方法2.String类型3.Hash类型4.List类型5.Set类型6.zSet类型Redis常用的数据类型:String、Hash、List、Set、zSet1.RedisTemplate常用方法//判断是否有key所对应的值,有则返回true,没有则返回false//有则取出key值所对应的值//删除单个key值//其中keys:Collection keys//将当前传入的key值序列化为byte[]类型。

2024-10-16 15:41:36 1087

原创 redisson 锁

【代码】redisson 锁。

2024-10-16 14:31:55 96

原创 redisson 锁,通用锁切面

【代码】redisson 锁,通用锁切面。

2024-10-16 14:06:50 109

原创 redisson 集群模式配置

【代码】redisson 集群模式配置。

2024-10-16 13:31:33 524

原创 Rdis的应用,示例,四种模式单机模式、主从模式、哨兵模式、集群模式

为此, Redis 提供了复制(replication)功能,可以实现当一台数据库中的数据更新后,自动将更新的数据同步到其他数据库上。主从模式在很多系统设计时都会考虑,一个master挂在多个slave节点,当master服务宕机,会选举产生一个新的master节点,从而保证服务的高可用性。从上面很容易就想到一个问题,既然主从复制,意味着master和slave的数据都是一样的,有数据冗余问题。替换原来的故障节点。刚刚提到了,主从模式,当主节点宕机之后,从节点是可以作为主节点顶上来,继续提供服务的。

2024-10-16 11:14:53 807

原创 合并提交记录(review 的时候非常nice)

1.鼠标放在自己的第一次提交上右键点击:Interactively Rebase from Here2.点击Squash如图3.点击Start Rebasing

2024-10-15 16:55:47 327

原创 区别dateById(),updateByPrimaryKey、updateByPrimaryKeySelective、updateByExampleSelective、updateByExample

方法:updateByPrimaryKey 更新对象的字段为null也会被更新,数据库数据被覆盖。结论:按条件更新,满足条件的数据库表数据,都会更新成对象的值,没有给值的字段也会被更新到数据库中。结论:按条件更新成对象中有字段的值,没有给值的字段不会被更新到数据库中,只会更新对象中有值字段。结论:更新的对象中,没有给值的字段不会被更新到数据库中,只会更新对象中有值字段。结论:更新的对象中,没有给值的字段也会被更新到数据库中。

2024-10-14 16:42:05 294

原创 Canal、SpringBoot、Kafka实战

解析来就可以去mq接收消息啦。

2024-10-10 17:17:52 338

原创 kafka快速入门系统学习示例

Broker:消息中间件处理节点,⼀个Kafka节点就是⼀个broker,⼀个或者多个 Broker可以组成⼀个Kafka集群。partition:通过partition将⼀个topic中的消息分区来存储。这样的好处有多个:分区存储,可以解决统⼀存储⽂件过⼤的问题 提供了读写的吞吐量:读和写可以同时在多个分区中进⾏。副本:副本是为了为主题中的分区创建多个备份,多个副本在kafka集群的多个broker中,会有⼀个 副本作为leader,其他是follower。

2024-10-10 15:58:45 555

原创 kafka创建多个分区时,分区会自动分配到多个不同的broker

1.分区只有一个时所有的消息生产和消费都集中在单个Broker上,多个broker只是提高了抗风险能力(因为副本存在不同的broker上,主节点挂掉,可以重新选取副本为主节点)。2.没有消息顺序性要求可以多个分区,注意消费者数量应小于等于分区数,太多无用,因为一个分区在一个消费者组中最多被一个消费者消费。

2024-10-10 15:19:23 429

原创 MySQL数据库明明表中字段存在,但是查询的时候就是提示(> 1054 - Unknown column ‘id‘ in ‘field list‘),造成的原因和解决方法如下。

可能是建表的时候字段有空格,特殊符号,仔细检查下就啦。

2024-10-09 17:27:05 415

原创 dataphin是什么及其简单使用示例

dataphin使用示例

2024-06-03 18:02:35 2489

原创 什么是Feign以及用法

声明式 API:Feign 提供了一种声明式的 API 定义方式,让开发者可以通过简单的 Java 接口描述服务之间的调用。使用 Feign 时,只需定义一个 Java 接口,接口中声明需要调用的远程服务的方法和参数,而无需编写具体的 HTTP 请求和响应的处理逻辑。在上面的例子中,我们注入了ExampleFeignClient接口的实例,并使用它来调用远程服务。通过Feign,我们可以轻松地在微服务架构中实现服务之间的通信,并利用负载均衡和容错机制来提高系统的可靠性和性能。在上面的示例中,我们使用了。

2024-05-29 17:38:40 684

原创 SpringCloud系列——Feign+Ribbon配置实战篇

一般情况下,Feign和Ribbon我们都是结合使用的。Feign是网络请求客户端,Ribbon用于,feign底层实现了ribbon。

2024-05-28 18:02:38 796

原创 nginx和feign负载均衡并不冲突

3、客户端负载:ribbon是集成在服务消费端,他的负载是,首先去注册中心获取到可以提供服务的列表,把这个服务列表缓存到本地,然后自己决定去调用哪一个服务;(这里列表是存在(注册中心客户端),所以一般称为客户端负载)(所以在微服务中,如果注册中心运行期间宕机,短时间之内并不影响服务消费者向服务生产者的调用。默认用的是轮循,如果需要修改,首先启动类里边实例化一个IRule,实例化他的不同接口,就可以实现不同的负载算法(7种)ribbion的负载,是代码中微服务的负载(客户端负载);这两个负载并不冲突。

2024-05-28 11:29:32 434

原创 redis分布式锁的实现方式之一+lua脚本保证操作的原子性

【代码】redis分布式锁的实现方式之一+lua脚本保证操作的原子性。

2024-05-17 10:58:02 136

原创 mybatis-plus代码生成器-线上项目用

【代码】mybatis-plus代码生成器-线上项目用。

2024-05-15 17:25:10 265

原创 int和Integer boolean和Boolean

int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null。boolean只有true和false,Boolean是引用类型可以为null。

2024-05-11 17:44:18 169

原创 单元测试某个类的内部类或者某个类的私有方法

Method method = class.getDeclaredMethod("方法名",参数类型1.class,参数类型2.class,...);在进行单元测试时,我们往往需要直接访问某个类的内部类或者某个类的私有方法,此时正常的调用就无能为力了,因此我们可以使用反射进行调用。Class class = Class.forName("类名") 或 Class class = 类实例.getClass()method.invoke(类实例,参数1,参数2,...);使用反射调用类的私有方法。

2024-05-07 11:28:08 524

原创 Request.Options options接口超过一定时间直接返回

【代码】接口超过一定时间直接返回。

2024-04-26 17:58:04 289

原创 json格式的请求体

【代码】json格式的请求体。

2024-04-23 14:58:17 138

原创 @Resource 和 @Autowired 的区别

注入方式@Autowired默认按类型注入,@Resource默认按名称注入。来源和兼容性@Autowired是Spring特有的,而@Resource是JSR-250规范的一部分,可以在任何支持JSR-250的容器中使用。配置选项@Autowired提供了更多的配置选项,@Resource相对简单。注解位置@Autowired的使用范围更广,可以用于构造器、字段、setter方法和其他方法,而@Resource通常用于字段和setter方法。

2024-04-07 17:23:53 303

原创 线程池的配置使用示例

【代码】线程池的配置使用示例。

2024-04-07 17:19:50 156

原创 JDK、JRE和JVM的理解

JDK是Java开发工具包,它包含了JRE以及编译器(javac)、调试器(jdb)、Java文档生成器(javadoc)等开发工具。如果您需要开发Java程序,您需要安装JDK,因为它提供了编译、调试、运行和部署Java应用程序所需的所有工具。:JVM是Java程序的运行环境,它负责将Java字节码(.class文件)解释或编译成机器码,并在计算机上执行程序。如果您只是要运行Java程序而不是开发程序,通常只需要安装JRE即可。而JVM是JDK和JRE的核心组件,用于执行Java程序。

2024-04-07 16:34:20 289

原创 JVM(Java虚拟机)和 HotSpot 虚拟机的关系

HotSpot是Oracle JDK 和 OpenJDK 中使用的一种优化技术,是JVM的一种实现。HotSpot虚拟机通过即时编译(JIT)技术将Java字节码转换为本地机器码,以提高程序的执行效率。HotSpot还包括了许多优化技术,如垃圾回收器的优化、代码缓存、内联优化等,帮助提升Java应用程序的性能。因此,可以说HotSpot是JVM的一种实现,它通过优化技术提高了Java程序的性能。在实际应用中,我们经常听到提到的“HotSpot虚拟机”,指的就是使用了HotSpot技术的Java虚拟机。

2024-04-07 16:14:04 675

原创 什么是jvm?

JVM是一个在物理计算机上模拟运行Java字节码的虚拟机,它负责将Java源代码编译成字节码并在运行时执行这些字节码。总的来说,JVM作为Java程序的运行环境,起着承上启下的关键作用,它为Java程序提供了跨平台运行、内存管理、性能优化等重要功能,使得Java成为一种广泛应用的编程语言。:由于JVM的存在,Java程序具有跨平台性,即一次编译,到处运行。:JVM提供了安全性机制,包括字节码校验器(Bytecode Verifier)等,以确保Java程序的安全性。

2024-04-07 16:04:53 368

原创 静态编译执行、动态编译执行、动态解释执行

1.程序执行的方式一般有三种,包括静态编译执行、动态编译执行、动态解释执行。编译指的是将程序编译成可让操作系统直接执行的机器码。在java语言中,程序的执行方式是以动态解释为主,动态编译为辅(静态编译执行类似C语言,编译成可执行文件(windows一般是exe,Linux一般为sh),里面存的都是机器码)。1.1字节码与机器码的区别:机器码:是CPU直接读取的机器指令,运行速度非常快。字节码:一种中间状态的二进制文件,需要直译器转译后才能变成机器码。

2024-04-03 18:03:45 601 1

原创 编译执行和解释执行

将源代码逐条转换为目标代码同时逐条执行的过程,每次程序运行时随时翻译随时执行(类似于同声传译)编译是讲源代码一次性转换为目标代码的过程,一次性翻译,之后就不需要源代码了(类似于英文翻译)执行解释过程的程序叫做解释器(interpreter)执行编译过程的程序是编译器(compiler)

2024-04-03 17:56:03 146 1

原创 canal的应用示例

1.canal应用可以配置发送mq消息,业务接收消息即可。

2024-04-02 17:15:36 279 1

原创 分布式锁(redis)示例

【代码】分布式锁(redis)示例。

2024-04-01 15:46:47 94

原创 Spring面向切面编程(AOP)的简单实例

【代码】Spring面向切面编程(AOP)的简单实例。

2024-04-01 14:15:59 230

原创 feign应用调用简单案例

3.feign实现类。

2024-03-29 15:02:29 590 1

原创 MemoryAnalyzer快速入门案例

1.配置生成hprof 文件。

2024-03-29 11:15:33 143 1

原创 Xxljob示例

【代码】Xxljob示例。

2024-03-28 17:54:41 352 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除