自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 synchronized的使用方式以及锁膨胀

synchronized的使用方式以及锁膨胀

2023-07-27 14:44:53 41

原创 volatile关键字的理解以及代码验证

volatile字面翻译,就是不稳定的,是JAVA语法中的一个关键字,为实例字段的同步访问提供了一种免锁机制,如果声明一个字段为volatile,那么不同线程之间对该字段的读写操作是正确的和同步的。使用volatile,比起使用显示的创建锁和使用synchronized来讲,代码会更加简洁,同时,性能开销也会更小。

2023-07-18 16:39:04 47

原创 HashMap源码解读

遍历树节点,将节点数据分别放入低位链表与高位链表中,分别放入新数组中,低位链表的位置在原下标位置上,高位链表的位置在原下标+旧数组长度的位置上,然后分别判断,如果低位链表和高位链表的下标上,节点个数是否小于6,如果小于6,那么就转换为链表形式放入,否则,以红黑树的形式放入。如果该Node有多个Node的链表,那么分为高位链表与低位链表,分别放入新数组中,低位链表的位置在原下标位置上,高位链表的位置在原下标+旧数组长度的位置上。这里,我们看到,如果tab如果为空,那么,就去创初始化一个Node数组,

2023-07-14 09:46:11 43

原创 LinkedList的特点以及使用场景

可以看出,随机访问,对于LinkedList来讲,还是相当缓慢的,需要遍历,时间复杂度为O(n),如果你的下标更靠近头结点,那么就从头节点开始遍历,如果更靠近尾结点,那么从尾结点开始遍历。LinkedList 适用于频繁插入与删除的场景,并且,不存在扩容的问题,但是,并不擅长随机访问,由于内存的不连续性,不存在内存碎片的问题,接下来,我们看一下get方法,看一下,LinkedList是如何查询元素的。不需要连续的地址空间,不容易产生内存碎片。老样子,看原来,先从成员变量看起。接下来,我们来看看源码。

2023-07-11 09:38:29 307

原创 ArrayList的特点

ArrayList 底层是数组,有初始容量以及最大容量的限制,适用于频繁随机访问的场景,并不适用于频繁插入以及删除的场景,会有浪费空间的可能.

2023-07-10 10:54:49 52

原创 String,StringBuffer,StringBuilder的区别

请说一下String,StringBuffer,StringBuilder的相同点和不同点。

2023-07-06 16:35:47 31

原创 一文弄懂Integer值相等问题

一文帮你彻底弄懂Integer值比较的文档

2023-07-05 17:42:45 355

原创 编写jar包完成SpringBoot自动装配的测试案例

编写jar包完成SpringBoot自动装配的测试案例1.新建项目就新建了一个项目,里面什么依赖都没有加2.修改Maven配置添加依赖这个依赖是为了在编写yml配置文件的时候有提示<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</ar

2021-06-07 22:49:27 286

空空如也

空空如也

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

TA关注的人

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