- 博客(76)
- 收藏
- 关注
原创 AVL平衡二叉树
AVL,是一种自平衡二叉树。对于二叉树来所,如果一直插入比前一个数小的数,那么二叉树可能会退化成一个链表。因此,为了保证查询的效率,我们需要时刻保持二叉树的平衡。对于AVL数来说,平衡的条件是左右子树的深度不会超过一。
2023-10-13 15:42:20
266
原创 BST二叉搜索树
二叉搜索树,它具有以下的特性,树节点具有一个key属性,不同节点之间key是不能重复的,对于任意一个节点,它的key都要比左子树的key大,比右子树的key小。
2023-10-13 15:13:22
188
原创 缓存算法及其代码实现
要实现这个功能,我们首先就要去维护这样一个队列,队列的头是刚刚加入或修改过的key,而尾部是最久没有使用的key。我们需要在修改key的同时,将这个key放到队伍的头部,并将原先位置的key删除。这样我们只需要在访问次数最小的链表的寻找要淘汰的数据就可以了。同时,我们还可以将双向链表的结点作为一个hash表的value,这样,我们我们就可以实现o(1)时间复杂度的查找。显然这个队列需要进行大量的数据的删除,添加,因此我们需要采用一个双向的链表。当我们的缓存满了以后,将最久没有使用的过的数据淘汰。
2023-09-25 18:41:18
195
原创 python入门
class Student : # 用两个下划线开头的成员变量为私有成员变量 __password = None # 构造方法 def __init__(self , name , age , gender , password) : # 成员变量 self . name = nameself . __password = password # 成员方法 def show(self) : print(f'学生的名字是 {self . name } ,学生的年龄是 {
2023-06-29 13:01:27
1027
原创 spring的aop
aop,面向切面编程。面向对象编程时对一个对象进行抽象。而面向切面编程时对不同的事物进行抽象,例如将不同的类中的方法都统一提出来,集中对这些方法进行操作。
2023-04-12 14:56:11
516
原创 spring自定义命名空间
在了解上述的过程后,你也可以写一个自己的命名空间了。首先,你需要一个在资源目录下,创建一个META-INF文件夹这个sechemas文件是用来指向我们的约束文件所在的地方,在约束文件中写的就是我们的提供的标签名字所以接下来,我们就要在指定的同样的在资源目录下创建一个config文件夹,不过要注意自己的目录层次只要早里面填上之前指定的命名空间地址就可以接下来指定一下自己的标签名就可以了</之后我们只要创建一个handler以及对应的标签解析器就可以。
2023-04-11 10:00:13
699
原创 spring的三级缓存
Spring的循环引用有时候我们可能会涉及到两个bean对象互相引用的情况,通过对bean的实例化过程的了解,我们知道spring会先将这个bean对象所有的实例属性填充完毕,才会将这个bean实例化。于是这样便会产生一个死锁问题。对于这种情况,spring内部采用了三级缓存机制来解决上述问题。举个例子</</</</
2023-04-01 13:58:21
360
原创 instanceof关键词
如果编译器可以直接判断左边的对象和右边的引用类没有关系,那么会直接给你报一个编译错误,就像上面例子中的son和wang一样。所以当右边的类为左边的引用对象的本上或是其父类时返回一个true,其余则会返回一个false。最近在看学RTTI是看到了instanceof关键词,发现这个关键词的使用会爆出很多的异常,于是就想着整理一下这些的异常。当我们左边的引用对象为空时,无论如何我们都会返回一个null。同样左边只能为引用类型,若是为基本数据类型,也同样会报错。但是荣国我们右边的类型为null时,则会直接报错。
2023-03-30 09:05:51
117
原创 代 理 模 式
就像我们的生活中存在许多的中介一样,中介为厂家提供了销售,推广等一系的活。在程序设计中,我们为了让一个类就专注于他应该干的事,我们就引入一个代理类来执行一些额外的操作。通过代理类我们可以做到保护原有的类的方法不被入侵,你无论怎么的折腾代理类,不会该变你原有的类的功能。其次代理类可以增强我们原有类的功能,例如加一个计算该程序运行时长的功能,这个功能显然不是我们原先类期望有的,交给代理类去实现,无疑可以让原先类的代码逻辑更加的清晰。
2023-03-28 21:51:36
125
原创 java的可变参数列表
有时我们可能会不确定要几个参数,或者有想在之后添加上新的参数,这时候我们如果还想之前一样的将参数一个个写死在上面就显得很麻烦。于是java很贴心的为我们提供了和c一样的可变参数列表。[在这里插入图片描述](https://img-blog.csdnimg.cn/f586b446e5624466917584f82c0a886b.png。如果我们java没有提供,我们该如何写呢?当然还可以与普通的参数一起使用。
2023-03-23 10:11:59
387
原创 再学内部类
内部类可以帮助我们实现多重继承,每一个内部类都可以独立的继承一个(接口)实现,所以在一个类中定义多个不同的内部类,分别区实现不同的类,就相当于我们继承了多个抽象类或具体的类。如果内部类是嵌套在别的内部类中,只需要简单的将他们的名字加在其外围标识符与’$'后面。如果一个内部类要调用一个外部类对象的引用,可以在外部类的名字后面跟一个.this。可以将一个类的定义放在另一个类中就是内部类。匿名内部类简单来说就是一个没有名字的类。我们可以把他看成对类的一个继承。内部类的继承需要用到特殊的语法。
2023-03-23 09:56:14
294
原创 spring的beanfactory与applicationContext的区别以及继承关系
applicationContext的继承关系以及与beanFactory的区别
2023-03-09 11:34:18
509
原创 spring的注解开发
用于指定要注入的依赖bean,@Qualifier(“name”),根据bean的名字查找。@ComponentScan(“com”)用于扫描注解。@Configuration用于替换配置文件。创建一个SpringConfig类。相当于这样的bean标签的配置。自动装配依赖注入,默认根据类型。用于基本数据类型的依赖诸注入。创建对象也要用对应的注解接口。
2022-11-01 14:44:50
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人