自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不瘦十斤不换名字

记录一下吧

  • 博客(5)
  • 收藏
  • 关注

原创 Java并发-再探JMM

Java内存模型 个人理解,Java内存模型应该是Java并发编程中最难理解的一个概念之一。由于最近准备换工作,所以,按照惯例有复习了一下Java并发相关的知识(《Java并发编程的艺术》以及极客时间王宝令老师的《Java并发编程实战》),在复习的过程中,我发现《Java并发编程的艺术》中介绍JMM时,引入了很多晦涩难懂的知识,比如内存屏障等等,让人看的一头雾水,所以决定从更加宏观的角度去总结JM...

2019-08-21 23:11:28 189

原创 数据结构与算法-AVL树

AVL树实际上是为了解决二分搜索树在极端情况下退化成链表的问题。AVL树通过自动调节左右子树的高度可以保证查找时间复杂度在O(logN)。 在AVL树中,新增节点的默认高度是1,新增节点的父节点默认高度是2,以此类推。左子节点的高度与右子节点的高度差成为平衡因子。在AVL树中,要求所有节点的平衡因子都小于等于1。 由于节点的平衡因子是通过左右子树的高度计算的,所以我们就需要在节点中记录当前节点的高...

2019-08-21 18:24:35 134

原创 数据结构与算法-二叉搜索树

描述 二叉搜索树的主要目标是优化链表的搜索效率。在链表中查找一个元素的时间复杂度为O(N),在二叉搜索树中查找一个元素的时间复杂度则为O(logN)。 在二叉搜索树中 左子节点的值小于根节点的值 右子节点的值大于根节点的值 我个人理解时,把二分搜索树理解为二分查找。 对于二叉搜索树的操作主要包括插入、查找、删除、遍历等。下面直接看代码。 代码实现 package loop; import j...

2019-08-21 14:03:02 145

原创 数据结构与算法-堆

堆的特点 堆是一棵完全二叉树 父节点大于子节点 堆的实现 package geektime.sort; import java.util.ArrayList; import java.util.List; // 大顶堆 public class MaxHeap<E extends Comparable<E>> { private List<E>...

2019-08-20 23:16:41 125

原创 数据结构与算法-哈希表

文章目录数组和链表的特点哈希表哈希函数解决哈希冲突链地址法开放地址法 数组和链表的特点 数组支持随机存取; 分配数组需要连续的内存空间; 链表不支持随机存取; 链表不需要连续的内存空间; 哈希表 由于数组和链表具有各自的优缺点和适用场景,所以为了进一步提高数据的读写性能,哈希表就诞生了,即哈希表就是”数组+链表“,数组构成hash bucket,链表解决hash冲突。然而这里所说的链表已经不是狭义...

2019-08-18 19:21:01 188

空空如也

空空如也

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

TA关注的人

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