自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot Starters 学习记录

1、简化依赖,它可以整合很多jar依赖,然后统一引入,这样当你需要的时候就可以引入一个starter 就完成了相关依赖的导入,比如spring-boot-starter-web,只包含了spring-webmvc,sping-web,hibernate-validator,spring-boot-starter-tomcat(内嵌tomcat)

2023-09-06 14:55:43 48 1

原创 HashMap源码学习

HashMap ,是一种散列表,存储key-Value 键值对,又称哈希表。HashMap 是一种散列表结构,底层采用数组+链表+红黑树来实现存储。HashMap 默认的大小是 16,只有在第一次插入元素的时候才会分配空间,并且分配的大小一定是二的整数次幂。HashMap扩容的时候,节点位置需要重新计算,(位置要不不变,要不在原位置+上个桶的长度的)HashMap是一个槽一个槽进行计算的(e.hash & oldCap ==0 说明位置没有变,否则移到下一个位置)。

2023-09-03 18:19:32 96

原创 LinkedList源码学习

LinkedList基于节点实现的双向链表的List,每个节点都指向前一个和后一个节点从而形成链表。LinkedList提供队列、双端队列、栈的功能LinkedList 随机访问平均时间复杂度是 O(n) ,查找指定元素的平均时间复杂度是 O(n)。LinkedList 移除指定位置的元素的最好时间复杂度是 O(1) ,最坏时间复杂度是 O(n) ,平均时间复杂度是 O(n)。LinkedList 添加元素的最好时间复杂度是O(1),最坏时间复杂度是O(n),平均时间复杂度是O(n)。

2023-08-13 17:24:45 83 1

原创 ArrayList 源码学习

ArrayList 是基于[]数组实现的 List 实现类,支持在数组容量不够时,一般按照1.5倍自动扩容。同时,它支持手动扩容、手动缩容。ArrayList 随机访问时间复杂度是 O(1) ,查找指定元素的平均时间复杂度是 O(n)。ArrayList 移除指定位置的元素的最好时间复杂度是 O(1) ,最坏时间复杂度是 O(n) ,平均时间复杂度是 O(n)。最好是在末尾(不需要移动元素)。ArrayList 移除指定元素的时间复杂度是 O(n)。需要遍历,然后移动元素。

2023-08-12 23:09:27 29

原创 JAVA实现阻塞队列

引入synchronized 关键字,保证同一方法,同一时刻只能被一个线程所调用。需要判断队列是否为空,或者是否占满,然后去阻塞对应的方法。以上就是一个简单的阻塞队列的代码实现,希望能够帮助到你。废话不多说直接上代码。

2023-08-06 16:26:20 85

原创 JAVA实现CAS原理

CAS有3个操作数,旧的预期值A,内存地址中的值V,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做,可以理解它为一种乐观锁。System.out.println("最终结果值: " + casTest.getValue());System.out.println("返回的是修改前的值:" + getInt);//这个值实际上应该是通过old对象和引用地址偏移量获取到的真实内存值,2、do while 循环进行比较并修改内存值,保证修改变量的原子性。

2023-08-06 12:17:10 88

空空如也

空空如也

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

TA关注的人

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