- 博客(9)
- 收藏
- 关注
原创 为什么InnoDB存储引擎选择使用B+tree索引结构?
相较于B-tree只有叶子结点存储数据,这样就不会挤占结点空间,影响指针存储,也就不会影响层级。相较于hash索引,可以进行范围查询和排序。相较于二叉树层级少,查询效率高。
2024-09-15 22:00:04 110
原创 什么是类加载器?类加载器有哪些
要想理解什么是类加载器首先要了解一个java文件是如何运行起来的类加载器:用于装载字节码文件(.class文件运行时数据区:用于分配存储空间执行引擎:执行字节码文件或本地方法垃圾回收器:用于对JVM中的垃圾内容进行回收类加载器JVM只会运行二进制文件,而类加载器()的主要作用就是将字节码 文件加载到中,从而让Java程序能够启动起来。
2024-09-13 21:55:51 467
原创 Spring事务的传播行为
如果当前没有事务,就创建一个新事务,如果当 前存在事务,就 加入该事务,该设置是最常用的设置。如果当前存在事务,则在嵌套事务内执行。支持当前事务,如果当前存在事务,就加入该事 务,如果当前不 存在事务,就以非事务执行。支持当前事务,如果当前存在事务,就加入该 事务,如果当前 不存在事务,就抛出异常。以非事务方式执行操作,如果当前存在事 务,就把当前 事务挂起。创建新事务,无论当前存不存在事务,都创 建新事务。以非事务方式执行,如果当前存在事务,则抛出异 常。
2024-09-10 08:26:05 180
原创 什么是AOP
AOP就是面向方法编程也可以说是面向切面编程,可以在不影响源代码的基础上对方法进行增强。那什么又是面向方法编程呢,为什么又需要面向方法编程呢?来我们举个例子做一个说明:比如,我们这里有一个项目,项目中开发了很多的业务功能。然而有一些业务功能执行效率比较 低,执行耗时较长,我们需要针对于这些业务方法进行优化。那首先第一步就需要定位出执行耗 时比较长的业务方法,再针对于业务方法再来进行优化。此时我们就需要统计当前这个项目当中每一个业务方法的执行耗时。那么统计每一个业务方法的执 行耗时该怎么实现?
2024-09-10 08:16:32 644
原创 ArrayList和LinkedList的区别
ArrayList在增删时会牵扯到大量元素的移动效率慢,LinkedList在链表两端的增删效率快,其他位置的增删效率也很慢,因为需要根据指针信息找到下一个元素。由于ArrayList存储时是一段连续的空间查询效率快,LinkedList是散列空间,需要根据指针信息查找下一个元素位置,效率慢。ArrayList占用空间小于LinkedList,因为LinkedList除了存储需要的数据外还要存储前后两个结点的指针信息。
2024-09-08 14:55:52 162
原创 Java中HashMap集合put方法的执行流程
在添加键值对的过程中,如果哈希表的大小超过了负载因子(负载因子可以简单理解为一个比值,例如现在负载因子是0.5,底层数组长度是6,两者乘积就是3,也就是说长度超过3就扩容)与当前容量的乘积,`HashMap`会进行扩容操作。总的来说,`HashMap`的`put`方法通过哈希函数确定键值对的存储位置,并处理可能的冲突和扩容情况,以高效地存储和检索键值对。通过对哈希值进行运算(通常是取模操作,与哈希表的容量减一进行与操作,也就是和底层数组的长度做取模运算),得到在哈希表中的索引位置。
2024-09-08 09:09:41 429
原创 Redis常用的五种数据类型
键值对的集合,适合存储对象信息。例如存储用户信息,键可以是用户 ID,值是包含用户各种属性的哈希表。在原始value的基础下,可以有新的key-value。每个元素都关联一个分数(score)的集合,元素按照分数从小到大排列。常用于排行榜等场景。按照插入顺序排序的字符串列表。可以在列表的两端进行插入和弹出操作,实现队列或栈的功能。最基本的数据类型,可以存储任何形式的字符串,如文本、数字等。无序的、不重复的字符串集合。可以进行交集、并集、差集等操作。5. 有序集合(Sorted Set)4. 集合(Set)
2024-09-07 14:24:51 198
原创 SpringBoot自动装配原理
总之,Spring Boot 的自动装配原理是通过扫描类路径、分析依赖关系和使用条件注解来自动选择和加载合适的配置类,从而实现快速、简洁的应用程序开发。
2024-09-07 09:06:52 563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人