自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Synchronized的锁升级

Synchronized在JDK1.6之前没有锁升级,是通过重量级锁的方式来实现线程之间的一个锁的竞争的。这导致了性能的损耗。JDK1.6之后为了平衡数据安全和性能增加了锁升级机制。简单来说,就是在确保数据安全的情况下尽量避免进入到重量级锁的状态,这样大大提升了性能。CAS机制:CAS全称是Compare And Swap,中文意思是比较和交换。它是一种用于实现多线程编程中无锁算法的同步机制,正如中文意思它通过比较并替换内存中变量的值来保证线程安全。该机制主要有三个比较重要的值:内存值、期望值、新值。

2024-05-07 23:17:48 234

原创 JVM的垃圾回收、内存模型

想要知道jvm的垃圾回收首先要知道jvm的内存模型,jvm内存模型包括:程序计数器、堆、方法区、栈,其中栈还分为本地方法栈以及虚拟机栈。虚拟机栈主要储存方法、方法中的局部变量,本地方法栈也是,但是不同的是它储存的是native修饰的。1、程序计数器:程序计数器是用于存放下一条指令所在单元的地址的地方。通俗的讲就是告诉程序下一条代码执行哪一行的。都是最近看的JVM整理得来,我觉得相对来说比大多数讲的通俗简易,文章仅代表个人观点!2、堆:堆主要存放所有类的实例和数组,也是jvm在垃圾回收的时候的主要区域。

2024-04-22 15:33:07 233

原创 SpringCloud + Nacos配置文件优先级详解以及本地配置覆盖远程方法

shared-configs(共享配置文件)、extension-configs(扩展配置文件)、${spring.application.name}.yaml(项目名配置文件)、${spring.application.name}-{profile}.yaml(项目名环境配置)扩展配置和共享配置都符合下面配置的优先级比上面配置的优先级高,即config2.yml的优先级比config1.yml的优先级高,共享配置同理。需要注意这个配置要写在远程配置中心中!shared-configs(共享配置文件)

2024-04-12 15:09:20 1772

原创 Spring Cloud feign的底层代码分析,以及feign本地调用方法。

类中我看来比较重要的两个方法是:registerFeignClients和registerFeignClient,这两个方法名有点神似,从英文的解释来看都是注册feign客户端,但是一个是单数,一个是复数。可以看到cv的我没写什么注释,主要是这段代码逻辑很清晰,主要就是将扫描到的BeanDefinition中的元信息提取出来,然后构造成一个FeignClientFactoryBean,后面我们每次获取容器中的FeignClient时,就会通过该FactoryBean的getObject()方法中获取。

2024-04-02 15:54:58 657 1

原创 面试算法题

给你两个递增的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按递增排列

2024-03-26 16:43:49 110

原创 mysql锁以及死锁问题

mysql锁、mysql死锁

2024-03-15 16:23:54 425 1

原创 git将远程分支的提交合并到另外一个远程分支

以前工作中基本是git一个人一个分支开发某一个功能,然后最后合并到主分支,或者一堆人都在一个分支开发,所有功能开发好后合并到主分支。但是今天遇到了一个比较怪的需求,将A分支中我提交的代码合并到B分支。总体就是合并后再通过cherry-pick去移动,如果你不想改变原来的分支的提交,你可以去创建一个新的分支来合并,合并新分支后再移动。或者是你想移动分支中中间段的提交,你也可以去创建一个你想要移动的最后一个提交记录的分支进行合并,合并后再移动。同时在百度中还学到了另一个批量将A分支中一连串提交合并到B分支中。

2024-02-21 17:24:03 480 1

原创 SpringBoot自动装配原理

SpringBootApplication()是一个复合注解,点进注解对应的接口类可以看见接口上面对应的注解。java原生注解这边不与讲解,主要是@ComponentScan这个注解是包扫描的注解,也就是扫描bean。可以看到对应的方法中进行了一个判断,重点是getAutoConfigurationEntry方法,点击进去看就可以看到又有一个获得配置的getCandidateConfigurations方法。这个注解中文是开启自动配置,接下来点击进去对应的接口里面可以看出这个注解也是一个复合注解。

2024-02-18 15:28:19 408 1

原创 @Autowired注入为null(空指针)

springboot扫描的是启动类的默认的包扫描范围是启动类的同级目录和子目录下的Bean。解决方法也简单,如果你的注入类不在默认的包扫描范围下,你就需要在启动类上加上@ComponentScans。关于这方面的问题我看网上有很多方面的原因,但是在我看来就三个大的原因:1、注入的bean没有被容器管理。2、注入的属性static被修饰的时候,这种其实也是由于静态变量或静态语句块 –> 实例变量或初始化语句块 –> 构造方法 -> @Autowired 的加载顺序导致的。1、注入的属性被final修饰的。

2024-01-19 17:39:07 1327 1

原创 maven报错pkix path build failed异常记录,maven依赖拉取问题。

之前的工作基本都是在外网环境中的,所以也是第一次遇见这个问题。产生的主要的原因是拉取的是私库的依赖包,自己的Java环境没有相关网站的证书而导致。解决的方案就是在下面截图滴地方加上-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true。

2024-01-10 14:29:20 432 1

原创 spring为什么不推荐使用@Autowired

使用基于字段的依赖注入,高频使用的类随着时间的推移,我们会在类中逐渐添加越来越多的依赖项,我们用着很爽,很容易忽略类中的依赖已经太多了。但是如果使用基于构造函数的依赖注入,随着越来越多的依赖项被添加到类中,构造函数会变得越来越大,我们一眼就可以察觉到哪里不对劲。上面的两种情况是针对final修饰的是实例变量而不是类变量,类变量的初始化是在定义的时候初始化或者在静态代码块中初始化的。有一个有超过10个参数的构造函数是一个明显的信号,表明类已经转变一个大而全的功能合集,需要将类分割成更小、更容易维护的块。

2024-01-02 14:30:01 502 1

原创 Python爬虫入门(demo)

看完后去制作了一个简单的脚本(识别图标后自动点击功能),原意是准备去做一个魔兽怀旧服的自动钓鱼脚本,但是做到一半发现里面的逻辑没有之前想的那么简单,里面的具体逻辑复杂,自己玩过魔兽怀旧服的人可以琢磨琢磨。很明显将浏览器中的h.a替换成CryptoJS就可以了,同时需要去下载 crypto-js库替换完成后执行代码会发现有报错,即r["e"]和r["i"]这两个变量没定义的报错,这时候去浏览器进行断点调试。比如返回的密文是data的值,这时候我们就去搜索下data然后一步一步的看,会麻烦很多,但是没办法。

2023-12-21 17:19:34 1415

原创 python语法(三)适合从java自学python

这是python基础语法的最后一期啦,主要讲解的是类,以及方法这些定义。两周前就差不多跟着学完了,但是一直没时间去更新。最近在学习opencv和pyautogui;还有个小demo一个管理系统,感觉对于从java转到python的人来说没什么必要去看那个了。下周有空会更新opencv和pyautogui。不过多讲解,个人的看法全都在代码注释中。

2023-11-23 17:29:12 81

原创 There are test failures.打包install的时候遇见的报错

但是我更加推荐简单粗暴的方法:直接给整个测试删除了,打包完在撤回删除,这种比较适合测试用例没什么用处的。报错原因:测试用例(unit tests)中至少有一个失败了。解决方案:修复测试用例中的bug。

2023-11-13 17:43:16 335

原创 Cannot resolve com.oracle:ojdbc6:11.2.0.3

Dfile记得去修改成你的jar包的名称,我是mac的电脑所以加上了sudo去启动超级管理员权限,windows需要去用管理员启动cmd。今天拉取了公司的一个项目,install的时候一直报错Cannot resolve com.oracle:ojdbc6:11.2.0.3。,知道是依赖的问题但是一直下载也没下载下来。后来发现是这个包在maven的远程仓库中没有下载权限。下面是解决的方法(直接下载到本地)。首先去下载地址下载一下这个jar包。注意这个是我项目需要的版本。

2023-11-13 16:19:58 765

原创 python语法(二)适合从java自学python

今天偷懒了一下,单纯的把之前写的cv过来了(自己也看了一遍算是温习下吧)。在努力的坚持着,争取一周一更新吧。这周记录上周看的列表、字典、元组、集合以及字符串的基本方法。二:字典:(类似java的hashmap)1、创建:(不可变!

2023-11-09 16:27:18 56 1

原创 python语法(一)适合从java自学python

这段代码的允许逻辑就是进入循环,如果三次循环中都进入了else则循环结束了进入与for平级的那个else(for _ in range(3)这个无关紧要,只是for循环的另外一种生声明,表示循环中的index无关紧要,也就是无法取到index值,用i的效果一样)。可以看出和java不同的是python变量的定义比较的宽松,不需要像java那样什么变量类型,并且变量定义以后还可以改变变量的数据类型,这在java是不允许的。不同于java的是,else if改成了elif简写了一下,然后括号去掉改成了缩进。

2023-11-03 16:53:59 49

原创 java策略模式的实现(实例)

用我自己的语言去描述下这个策略模式:首先新建一个接口,接口中定义一个方法;然后将每个if中的代码逻辑抽取到一个重写了接口方法的新建类中(每一个if的代码模块都代表你要新建一个类),然后这个时候新建一个类将定义的接口注入,然后在写一个方法(里面直接用注入的接口调用方法就行了);如果是按照之前的写法就是一直if到底就可以,如果逻辑简单if格式看着也还行,但是如果后期需要去修改计算逻辑会很麻烦。方案一:(通过实现类中的方法返回值去拿到具体应该执行的类)拒绝if、else!方法二:(直接通过bean的名字去拿到)

2023-10-09 15:21:59 93 1

原创 使用vue3和ts和elementplus搭建的简单聊天的页面

简单的网页聊天页面

2023-09-26 13:44:03 2256

原创 VUE3+TS+ElementPlus项目的搭建(适合从后端来的前端萌新,大佬勿喷)

VUE3+TS+ElementPlus项目的简单搭建

2023-09-20 12:03:08 377 1

原创 springBoot项目本地运行成功,但是打WAR包部署到tomcat启动失败。(springboot和tomcat的版本对应关系)

java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [ch.qos.logback.core.status.WarnStatus]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate t

2023-08-08 10:51:33 1180

原创 MYSQL模糊查询优化(使用全文索引进行左右模糊查询) match() against ()的简单使用以及介绍

全文索引进行模糊查询,解决全文索引模糊查询不适配中文问题

2023-01-03 16:58:48 6071

原创 XXL-JOB日志目录无法被创建bug;[rCallbackThread] c.x.j.c.l.XxlJobFileAppender: No such file or directory

XXL-JOB运行时候报错log日志文件就会报错

2022-11-22 22:17:39 3812 1

空空如也

空空如也

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

TA关注的人

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