自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 03、ConcurrentHashMap怎么保证HashMap的线程安全呢?

Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,保证了数据安全,而每一个Segment元素存储的是 数组+链表,这个和HashMap的数据存储结构一样;根据key进行hashCode值计算,找到对应的Node,如果为空表示当前位置可以写入数据,利用CAS尝试写入,失败则自旋保证成功,如果非空,则利用synchronized锁写入数据。优化了底层数据结构,降低了锁的粒度,仅仅使用一次hash就能获取到桶的位置,提高了执行和并行效率,提高吞吐量;

2023-05-23 09:19:46 232 1

原创 02、什么是HashMap?有了解过吗?!

先说一下jdk1.7中hashMap的底层结构,再说1.7中可能存在的问题,最后说:jdk1.8中针对问题做了哪些优化点!

2023-05-22 19:41:17 48 1

原创 01、ArrayList 和 LinkedList 区别

所以链表的增删效率是要优于数组的,因此,LinkedList 在增删元素方面会比ArrayList快。你的逻辑有更多的插入和删除元素操作,更少的读取数据,可以选择LinkedList。链表的时间复杂度是O(n),从头节点开始遍历,找到对应元素存储的位置;增删场景下,数组是需要重排数据的,重排数据意味着要更改数组的数据结构;数组的时间复杂度是O(1),通过数组下标,直接获取数据;你需要先找到n-1的元素中的next才能找到第n个元素,因此,在内存方面,相对于链表,占用的空间应该会大一些,

2023-05-19 09:16:38 63

原创 线程和进程的区别

进程 是操作系统中的具有一定独立功能的程序。线程 是进程的一个实体,是比进程更小的 可以独立运行的基本单位。

2022-08-23 17:28:30 34

空空如也

空空如也

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

TA关注的人

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