java
文章平均质量分 67
个人对于java的一些理解
L1511768722
java界的小趴菜
展开
-
Synchronized的锁升级
Synchronized在JDK1.6之前没有锁升级,是通过重量级锁的方式来实现线程之间的一个锁的竞争的。这导致了性能的损耗。JDK1.6之后为了平衡数据安全和性能增加了锁升级机制。简单来说,就是在确保数据安全的情况下尽量避免进入到重量级锁的状态,这样大大提升了性能。CAS机制:CAS全称是Compare And Swap,中文意思是比较和交换。它是一种用于实现多线程编程中无锁算法的同步机制,正如中文意思它通过比较并替换内存中变量的值来保证线程安全。该机制主要有三个比较重要的值:内存值、期望值、新值。原创 2024-05-07 23:17:48 · 256 阅读 · 0 评论 -
JVM的垃圾回收、内存模型
想要知道jvm的垃圾回收首先要知道jvm的内存模型,jvm内存模型包括:程序计数器、堆、方法区、栈,其中栈还分为本地方法栈以及虚拟机栈。虚拟机栈主要储存方法、方法中的局部变量,本地方法栈也是,但是不同的是它储存的是native修饰的。1、程序计数器:程序计数器是用于存放下一条指令所在单元的地址的地方。通俗的讲就是告诉程序下一条代码执行哪一行的。都是最近看的JVM整理得来,我觉得相对来说比大多数讲的通俗简易,文章仅代表个人观点!2、堆:堆主要存放所有类的实例和数组,也是jvm在垃圾回收的时候的主要区域。原创 2024-04-22 15:33:07 · 257 阅读 · 0 评论 -
面试算法题
给你两个递增的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按递增排列原创 2024-03-26 16:43:49 · 127 阅读 · 0 评论 -
mysql锁以及死锁问题
mysql锁、mysql死锁原创 2024-03-15 16:23:54 · 449 阅读 · 1 评论 -
SpringBoot自动装配原理
SpringBootApplication()是一个复合注解,点进注解对应的接口类可以看见接口上面对应的注解。java原生注解这边不与讲解,主要是@ComponentScan这个注解是包扫描的注解,也就是扫描bean。可以看到对应的方法中进行了一个判断,重点是getAutoConfigurationEntry方法,点击进去看就可以看到又有一个获得配置的getCandidateConfigurations方法。这个注解中文是开启自动配置,接下来点击进去对应的接口里面可以看出这个注解也是一个复合注解。原创 2024-02-18 15:28:19 · 423 阅读 · 1 评论 -
@Autowired注入为null(空指针)
springboot扫描的是启动类的默认的包扫描范围是启动类的同级目录和子目录下的Bean。解决方法也简单,如果你的注入类不在默认的包扫描范围下,你就需要在启动类上加上@ComponentScans。关于这方面的问题我看网上有很多方面的原因,但是在我看来就三个大的原因:1、注入的bean没有被容器管理。2、注入的属性static被修饰的时候,这种其实也是由于静态变量或静态语句块 –> 实例变量或初始化语句块 –> 构造方法 -> @Autowired 的加载顺序导致的。1、注入的属性被final修饰的。原创 2024-01-19 17:39:07 · 1635 阅读 · 1 评论 -
spring为什么不推荐使用@Autowired
使用基于字段的依赖注入,高频使用的类随着时间的推移,我们会在类中逐渐添加越来越多的依赖项,我们用着很爽,很容易忽略类中的依赖已经太多了。但是如果使用基于构造函数的依赖注入,随着越来越多的依赖项被添加到类中,构造函数会变得越来越大,我们一眼就可以察觉到哪里不对劲。上面的两种情况是针对final修饰的是实例变量而不是类变量,类变量的初始化是在定义的时候初始化或者在静态代码块中初始化的。有一个有超过10个参数的构造函数是一个明显的信号,表明类已经转变一个大而全的功能合集,需要将类分割成更小、更容易维护的块。原创 2024-01-02 14:30:01 · 547 阅读 · 1 评论 -
java策略模式的实现(实例)
用我自己的语言去描述下这个策略模式:首先新建一个接口,接口中定义一个方法;然后将每个if中的代码逻辑抽取到一个重写了接口方法的新建类中(每一个if的代码模块都代表你要新建一个类),然后这个时候新建一个类将定义的接口注入,然后在写一个方法(里面直接用注入的接口调用方法就行了);如果是按照之前的写法就是一直if到底就可以,如果逻辑简单if格式看着也还行,但是如果后期需要去修改计算逻辑会很麻烦。方案一:(通过实现类中的方法返回值去拿到具体应该执行的类)拒绝if、else!方法二:(直接通过bean的名字去拿到)原创 2023-10-09 15:21:59 · 138 阅读 · 1 评论 -
MYSQL模糊查询优化(使用全文索引进行左右模糊查询) match() against ()的简单使用以及介绍
全文索引进行模糊查询,解决全文索引模糊查询不适配中文问题原创 2023-01-03 16:58:48 · 6335 阅读 · 0 评论