自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bean的生命周期

第 8~10 步,第 8 步其实也可以算到销毁阶段,但不是真正意义上的销毁,而是先在使用前注册了销毁的相关调用接口,为了后面第 9、10 步真正销毁 Bean 时再执行相应的方法。:初始化的阶段的步骤比较多,5、6 步是真正的初始化,第 3、4 步为在初始化前执行,第 7 步在初始化后执行,初始化完成之后,Bean 就可以被使用了;上面的三个方法效果都是一样的,开发中选择其中一种方式就行,我们选择2、3方法中的一个。上面的三个方法效果都是一样的,开发中选择其中一种方式就行,我们选择1、3方法中的一个。

2024-03-04 18:33:29 123

原创 设计模式之中介者模式

(行为性):中介者可以更进一步的对同事之间的关系进行封装,同事可以一致地和中介者进行交互,而不需要指明中介者需要具体怎么做,中介者根据封装在自身内部的协调逻辑对同事的请求进行进一步处理,将同事成员之间的关系行为进行分离和封装。优点: 1. 简化了对象之间的交互,它用中介者和同事的一对多交互代替了原来同事之间的多对多 交互,将原本难以理解的网状结构转换成相对简单的星型结构。Mediator: 抽象中介者 (中介者接口,声明了中介者向同事开放的各“事件通知”接口方法。

2024-03-01 13:22:13 747

原创 Spring IOC理解

在传统的Java应用程序中,通常由程序员负责创建对象实例并通过代码直接管理它们之间的依赖关系。而在使用Spring框架时,这种控制权发生了反转:对象的创建和初始化以及它们相互间的依赖关系不再由程序员直接处理,而是交给Spring容器(即IOC容器)来统一管理和维护。综上所述,Spring IoC通过提供容器和服务定位机制,极大地简化了Java应用的开发和维护工作,促进了松耦合、高内聚的设计原则在实际项目中的落地实施。代码耦合度太高,我们修改一处代码,往往要修改很多出相关联的代码。引出IOC(控制反转)

2024-02-26 13:23:23 323

原创 List底层源码解析

ArrayList 的底层数据结构是一维数组,而且是动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList 继承于 AbstractList ,实现了 List , RandomAccess , Cloneable , java.io.Serializable 这些接口。

2023-11-29 08:10:59 60 1

原创 Java中构造方法详解

构造方法不能被static、final等关键字修饰,且不能有return返回语句。格式:构造方法名与类名相同,没有返回值,不用void修饰。例:public 构造方法名(参数类型 参数){方法体}在子类中使用super()调用。1.自动调用父类无参构造方法。2.手动调用父类无参构造。3.手动调用父类有参构造。

2023-11-23 07:55:53 157

原创 抽象类与接口

抽象方法: 可以定义 可以定义 -- 默认public abstract。非抽象方法: 可以定义 不可以定义非抽象(default)2.接口中不能有构造方法,不能有构造代码块,方法都是抽象方法。概念:在Java中,一个没有方法体的方法应定义为抽象方法,该类必须为抽象类。3.接口和接口是多继承。3.接口和实现类必须实现接口中的所有方法。

2023-11-16 19:35:46 143 1

原创 JDBC连接MySQL简单解析

在创建连接以后,通过Connection提供的createStatement()方法创建一个statement对象,使用该对象的executeQuery("sql语句")来执行一条sql语句,并返回查询到的结果集。执行SQL查询语句后,可以通过ResultSet对象获取查询结果,ResultSet对象提供了一系列的方法,用于遍历结果集并获取其中的数据。3.JDBC希望用相同的方式访问不同的数据库,让具体 的数据库操作与数据库厂商实现无关,从而在不同数 据库之间轻易的进行切换。对象的最初位置在行首。

2023-11-14 15:13:27 61 1

原创 MySQL学习笔记(第一天)

SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库 脚本文件的扩展名。MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。索引实际上是一种特殊类型的表,含有关键字段的值和指向实际记录位置的针,提高访问数据库的效率。针对数据统计有额外的常数存储。

2023-11-07 19:46:05 50

原创 Linux操作系统学习笔记(第一天)

3--主版本号 10--次版本号 0--修订版本号(奇数是开发版 偶数是稳定版) 后面是微调版本号。shell:shell是linux的外壳,是一个内核的解释器,让我们跟内核交流翻译的工具。终端:Linux的终端就是控制台,是用户和内核交互的平台。ls -i(inode)显示文件目录和目录的inode编号。mkdir -p aa/bb/cc 创建一个嵌套目录。tar -tf 在不解包的情况下查看文件或目录。ls -a(all) 显示包括隐藏目录。注意:白色框部分需要记下来!

2023-11-02 19:27:51 56

原创 常见报错异常总结

RuntimeException 运行时异常 : 运行时期会出现的异常 ,所有的运行时异常都会直接或者间接的继承自RuntimeException,可通过增强程序的健壮性处理 if判断。CheckException 编译时异常: 编译时期就会出现的异常 ,如果出现了编译时异常不处理,程序无法运行。Error:错误:一般是由虚拟机生成并脱出的,程序员无法解决。Exception: 异常。

2023-10-20 09:13:54 69 1

原创 HashMap扩容机制简单分析

会根据指定的正整数找到不小于指定容量的2的幂数,将这个数设置赋值给阈值(threshold)。第一次调用put方法时,会将阈值赋值给容量,然后让。空参数的构造函数:实例化的HashMap默认内部数组是null,即没有实例化。第一次调用put方法时,则会开始第一次初始化扩容,长度为16。如果不是第一次扩容,则容量变为原来的2倍,阈值也变为原来的2倍。首次put时,先会触发扩容(算是初始化),然后存入数据,然后判断是否需要扩容;不是首次put,则不再初始化,直接存入数据,然后判断是否需要扩容;

2023-10-16 09:01:08 53 1

原创 ArraysList 扩容机制

当我们向ArrayList添加元素时,如果当前容量不足以容纳新元素,ArrayList会自动进行扩容操作,即增加底层数组的长度。在使用ArrayList时,我们通常无法预先知道需要存储多少个元素,因此需要一个能够自动调整大小的数据结构来满足需求。增长因子:每次扩容时,ArrayList会根据增长因子来计算新的容量。默认情况下,增长因子为1.5,即每次扩容后容量变为原来的1.5倍。初始容量:创建ArrayList对象时,会分配一个初始容量,默认为10。扩容时,根据增长因子计算新的容量,并创建一个新的数组。

2023-10-12 17:00:32 46

原创 StringBuilder和StringBuffer扩容机制

2.一次追加长度不仅超过初始容量,而且按照当前容量*2+2扩容一次也不够,其容量会直接扩容到与所添加的字符串长度相等的长度。3.使用append()方法在字符串后面追加值的时候,如果长度超过了该字符串存储空间大小了就需要进行扩容:构建新的并且存储空间更大的字符串,将旧的复制过去。ensureCapacityInternal 这个方法进行是否扩容的判断,需要扩容就调用expandCapacity方法进行扩容。1.一次追加长度超过当前容量,则会按照当前容量*2+2扩容一次。

2023-10-09 07:46:36 122

空空如也

空空如也

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

TA关注的人

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