- 博客(28)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【Spring】Spring循环依赖的处理
循环依赖是指两个或多个组件之间相互依赖,形成一个闭环,从而导致这些组件无法正确地被初始化或加载。这种情况可能会在软件开发中引起问题,因为循环依赖会导致初始化顺序混乱,组件之间的关系变得复杂,甚至可能引发死锁或其他不稳定行为。在编程中,循环依赖通常出现在模块、类、或者组件之间的相互引用上,导致编译、加载或初始化过程中的问题。在依赖注入(DI)框架中,循环依赖可能会导致对象的创建和初始化失败。A 依赖于 B,而 B 也依赖于 A,形成了循环依赖。如果没有适当的处理,初始化这两个类的实例可能会导致问题。
2023-08-22 21:11:43
1480
10
原创 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
Docker 是一种容器化平台,用于快速构建、部署和运行应用程序。Docker的基本概念包括镜像、容器和仓库。
2023-10-23 14:14:26
392
原创 【Spring】Spring bean定义及其作用域
Bean的类定义:在Spring容器中,Bean的定义通常是通过XML配置文件、Java配置类或注解来进行的。你可以指定Bean的类,告诉Spring容器应该创建哪个类的对象。依赖关系定义:你可以定义Bean之间的依赖关系,使一个Bean可以引用另一个Bean。这通常通过属性注入或构造函数注入来实现。作用域定义:你可以定义Bean的作用域,控制Bean的生命周期和可见性。初始化方法和销毁方法:你可以定义初始化方法和销毁方法,以在Bean的创建和销毁过程中执行特定的操作。其他元数据。
2023-10-06 15:38:23
209
原创 【Spring】Spring事务失效原因及解决方法
在某些Spring版本中,可能存在特定的问题或错误,可能会导致事务失效。方法,事务可能不会生效,因为Spring默认使用基于代理的AOP,而不是CGLIB代理。确保数据源的配置正确,并且与事务管理器的配置匹配。如果Spring AOP代理不正确地织入了您的bean,事务也可能会失效。如果没有配置Spring的事务管理器,或者配置不正确,事务将无法生效。如果一个受检查异常被捕获并在方法内部处理,事务可能会失效。如果嵌套事务的配置不正确,可能会导致事务失效。等,具体取决于您的应用中使用的数据访问技术。
2023-09-28 14:58:33
515
原创 【Java】Java数组转换为集合
当将Java数组转换为集合时,可以使用不同的方法来满足不同的需求。例如Arrays.asList、···
2023-08-20 17:33:45
4629
1
原创 synchronized锁的升级
synchronized 是 Java 中用于实现多线程同步的关键字,用于确保在多线程环境下共享资源的安全访问。在讨论synchronized锁升级过程时,主要是指从无锁状态到有锁状态的升级,以及从偏向锁或轻量级锁升级到重量级锁的过程。
2023-08-19 20:42:03
409
1
原创 【Redis】缓存雪崩、缓存击穿、缓存穿透
在使用 Redis 缓存时,常常会遇到三个主要的问题,分别是缓存雪崩、缓存击穿和缓存穿透。这些问题都可能导致缓存系统的性能下降或数据不一致性的问题。
2023-08-19 19:56:07
530
1
原创 为什么重写equals()方法之后要重写hashCode()方法?
当 hashCode() 方法没有正确重写时,即使对象在逻辑上相等,由于哈希码不同,可能会增加哈希冲突的概率,影响哈希表的性能。哈希表查找失败:哈希表在查找对象时首先会根据对象的哈希码去对应的位置查找,如果两个对象在逻辑上相等( equals() 返回true),但哈希码不相等,哈希表无法正确找到这两个对象,导致查找失败。重复存储:当哈希表插入逻辑上相等的对象时,由于哈希码不相等,哈希表会将它们存储在不同的位置,导致重复存储相同的逻辑对象,增加了存储的冗余性。
2023-08-02 21:08:16
390
1
原创 【JVM】Java虚拟机内存结构
永久代(JDK 8及之前版本)或元空间(JDK 8之后版本):在JDK 8之前的版本中,Java虚拟机使用永久代来存放类信息、常量池、方法和字段等。Survivor区:Survivor区也是新生代的一部分,通常有两个Survivor区(通常称为From区和To区),它们之间会进行对象的交换。Eden区:Eden区是新生代中的一部分,它是新对象最初被分配的区域。一旦Eden区满了,就会触发垃圾回收,未被回收的对象会进入Survivor区或者老年代。通常,老年代中的对象是经过多次垃圾回收仍然存活下来的对象。
2023-08-02 20:51:39
287
原创 【AOP】SpringBoot之AOP编程
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它允许将应用程序的横切关注点(Cross-cutting Concerns)从核心业务逻辑中分离出来,使得关注点的处理可以独立于业务逻辑进行模块化。横切关注点包括日志记录、事务管理、安全性检查、性能监控等通用功能,它们通常会散布在应用程序中的多个模块中。AOP的目的是通过切面(Aspect)将这些横切关注点集中在一起,提高代码的复用性、可维护性和可读性。
2023-07-31 20:16:12
393
3
原创 【Git】git详细命令分类汇总
将git命令以仓库初始化和克隆、提交和修改、查看信息、分支管理、远程仓库、标签管理、搜索和过滤分类,并列取了相关的命令。
2023-07-31 19:49:30
386
1
原创 【Java】打印矩阵的几种方法
1、使用两个增强for循环遍历;2、使用两个增强for循环遍历;3、使用一个增强for循环和toString方法
2023-07-27 19:10:31
2039
6
原创 【MyBatis】${}和#{}的区别
{}是预编译,用?作为占位符。${}是字符串替换,直接拼接Mybatis在处理#{}的时候,会将sql当中的#{}替换成?并且调用PreparedStatement来赋值#{}是自带引号的由于${}是直接把传字符串,所以会有安全问题,比如在输入密码时输入:123 or 1=1,这样子就算密码不是123也能进去。
2023-07-19 16:48:07
503
1
原创 【Java】从源码角度分析128陷阱
128 陷阱” 的原因:当整数值超过了 -128 到 127 范围时,两个不同的整数值被装箱后得到的 Integer 对象不再是同一个缓存对象,因此在使用 == 运算符比较时,会返回 false。而在范围内的整数值会从缓存池中获取,因此它们引用的是同一个缓存对象,使用 == 运算符比较时会返回 true。
2023-07-18 10:45:17
803
3
原创 【Java】简述下HashMap1.7 和1.8 put值的流程
在 1.8 中,当链表长度达到一定阈值(默认为 8),会进行链表转化为红黑树,以提高查找性能。6、如果链表长度大于 8,并且当前数组容量(table 数组的长度)大于等于 64,则会进行链表转化为红黑树,以提高查找性能。4、如果该索引位置已经有元素,说明发生了hash冲突,几多个key的哈希值相同导致他们在数组中的索引位置相同。7、如果插入的 key 已经存在于链表或红黑树中,则用新的 value 替换旧的 value,并结束。3、如果该索引没有元素,直接在该位置插入新元素,并结束。
2023-07-17 21:20:38
609
2
原创 【Java】拆箱和装箱(附示例代码讲解)
装箱(Boxing): 装箱是指将基本数据类型转换为对应的包装类对象。这是通过调用包装类的构造函数或静态工厂方法来完成的。装箱过程将基本数据类型的值封装成一个包装类对象。拆箱(Unboxing): 拆箱是指将包装类对象转换为基本数据类型。这是通过调用包装类的 xxxValue() 方法来完成的。拆箱过程将包装类对象中的值提取出来,转换为对应的基本数据类型。拆箱和装箱可以在基本数据类型和包装类之间实现无缝转换,这在 Java 中很常见,尤其是在泛型和集合类中,因为集合类只能存储对象而不支持基本数据类型。
2023-07-17 20:38:12
1266
1
原创 【Java】==和 equals() 的区别
1、’ == '比较的是对象的引用,用于判断两个对象是否指向同一个内存地址。2、equals() 方法比较的是对象的值,用于判断两个对象的内容是否相等。在一些类中,equals() 方法可能被重写,以使其比较对象的值而不是引用。
2023-07-17 19:47:47
393
3
原创 【HTML+CSS+jQuery】实现轮播图详细代码及详解(带左右切换和分页)
创建了图片对应的圆点导航按钮,并为每个按钮绑定了点击事件,点击按钮时通过。事件来在鼠标悬停在轮播容器上时停止自动轮播,离开时重新开始自动轮播。方法,在图片列表的首尾分别插入了复制的图片,实现无缝轮播的效果。创建了左右切换按钮,并为其绑定了点击事件,通过点击按钮来切换图片。实现自动轮播功能,每隔3000毫秒(3秒)切换到下一张图片。函数来处理图片的动画滑动,实现了无缝轮播的效果。函数来切换图片,并高亮显示对应的按钮。来实现左右切换和图片对应的圆点导航。容器来包裹轮播图片,使用。在图片初始化时,使用了。
2023-07-16 16:45:03
3297
1
原创 【JavaScript】正则表达式
方法:在一个字符串中执行正则表达式匹配操作,并返回匹配的结果。该方法返回一个数组,其中包含了匹配的字符串和一些有关匹配信息的其他属性。如果没有匹配到,则返回null。方法:返回一个字符串中所有匹配的子字符串,并以数组形式返回。如果没有匹配到,则返回null。方法:测试一个字符串是否匹配正则表达式。该方法返回一个布尔值,true表示匹配成功,false表示匹配失败。方法:替换一个字符串中匹配正则表达式的部分。方法:搜索一个字符串中匹配正则表达式的第一个位置,并返回匹配的索引。如果没有匹配到,则返回-1。
2023-07-16 16:29:58
527
1
原创 【JavaWeb】jQuery函数绑定方式(附示例代码)
1、 jQuery 函数绑定方式一,其中该方式可以使用js中大部分事件类型 比如click,mouseenter,mouseleave,mouseup,mousedown,dblclick。。。2、jQuery 函数绑定方式二,其中该方式可以使用js中大部分事件类型 比如click,mouseenter,mouseleave,mouseup,mousedown,dblclick.......
2023-07-16 15:23:45
522
2
原创 【JavaWeb】HTML+JS+CSS实现导航栏下拉菜单(详细)
方法来切换子菜单的显示状态,如果子菜单是隐藏的,则显示它;如果子菜单是显示的,则隐藏它。: 这是一个选择器,它选中所有具有"class"为"menu"的元素中的直接子元素的。: 这是一个悬停事件的回调函数。当鼠标悬停在匹配的菜单项上时,这个函数会被执行。: 这是jQuery的快捷方式,用于在DOM加载完成后执行代码。来获取当前鼠标悬停的菜单项元素。(无序列表,也就是子菜单)元素。,表示代码会在页面加载完成后执行。: 在悬停事件回调函数中,首先使用。方法会为显示和隐藏添加动画效果。元素添加悬停事件的监听。
2023-07-16 15:10:35
3358
3
原创 CHARINDEX(charindex()用法)
通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置i(有效位置范围为1<= i <= length(input)),否则返回0。中包含 “apple” 的位置,然后我们使用 WHERE 子句将仅返回检索到的记录。函数在 SQL Server 中用于查找指定字符串在目标字符串中首次出现的位置。我们想要查找包含关键字 “apple” 的产品。这样,CHARINDEX() 函数将返回。的表,其中有一个名为。
2023-07-14 18:57:10
8670
原创 现在有一个学生表student,需要回收所有机器的nkw用户对学生表student所在数据库user的update和insert权限,则下列语句中能够实现这一功能的语句是()
grant和revoke
2023-07-14 15:37:48
528
1
原创 【Linux】Linux必会命令(超详细)
非正常逻辑推出使用【ctrl+z】,即可强制退出,但是要恢复正常状态,要删除交换文件。编辑文件内容,但不想保存了,在非编辑状态下,输入【:q!举例:在用户目录(root)使用ls可以查看用户目录里的文件及文件夹。举例:查看test.html cat test.html。没有编辑文件内容,在非编辑状态,输入【:q】,即可退出文件。挂 " / " 都是绝对路径,不带的都是相对的路径。作用:创建空文件或者编辑已经存在的文件。作用:查看当前所在的目录的绝对路径。作用:显示当前目录的文件和文件夹。
2023-03-06 10:46:39
614
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人