自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

持之以恒

致力于理解技术底层原理,专注后端领域,微服务、分布式、缓存、大数据、网络、操作系统 ... 目前死抠 redis、netty、springcloud

  • 博客(9)
  • 资源 (7)
  • 收藏
  • 关注

原创 生产者消费者模型

描述:共享变量池大小为5,生产者从池中放入一个物品,消费者从池中拿去一个物品。一:定义共享资源:public class PublicResources { private int count = 0; // max = 5 public void reduce() { //消费者消费 synchronized(this) { w...

2018-06-29 23:00:06 418

原创 线程间的协同(生成者/消费者模型)

线程间除了同步互斥使用共享代码块或者共享资源外,有时需要线程间的通信来控制共享信息。生产者/消费者模型就是很好的例子;提供一个资源池,生产者向里面生产资源、消费者负责消费;资源池满,生产者线程等待,消费者消费资源后调用特定方法唤醒生产者线程;反之,资源池为空,消费者线程等待,生产者向资源池生产资源后,调用特定方法唤醒消费者线程。这里实现使用java中 显示锁 Lock锁定共享变量,生产者write...

2018-06-20 18:42:33 243

原创 模拟HashSet底层实现

GitHub源码地址(https://github.com/BradenLei/MyHashSet)1、基本概念:1)HashSet和HashMap唯一的不同之处在于,HashMap以键值对作为一个条目存储在散列表中,而HashSet则以元素的形式存储在散列表中;HashSet相当于HashMap的简化版。2)MySet继承自java.lang.Iterable,实现了其方法,故MyHashSet...

2018-06-18 21:58:00 566

原创 模拟HashMap底层实现

1、概念:1)散列:使用一个散列函数,将一个键映射到一个索引上。2)散列函数:将键映射到散列表中的索引上的函数称为散列函数。3)冲突:当两个键映射到散列表中的同一个索引上,冲突发生a:使用开发地址法解决处理冲突(线性探测、二次探测法、再哈希法)b:使用链地址法处理冲突:将具有同样的散列索引的条目都放在一个位置,每个位置使用一个桶来放置多个条目;通常使用LinkedList来实现一个桶。4)装填因子...

2018-06-18 09:15:58 523

原创 模拟平衡二叉查找树底层实现(AVL)

1、基本概念及操作:1)平衡二叉查找树:在二叉查找树的基础上满足平衡因子为-1,0,1的树结构2)平衡因子:右子树的高度减去左子树的高度;-1表示左偏重,+1表示右偏重3)重新平衡数:从AVL树中插入或者删除一个元素后,如果树变得不平衡了,执行一次旋转操作来重新平衡该树,有四种方式:LL旋转、RR旋转、LR旋转、RL旋转以 LL说明:两个L表示两次左偏重4)AVL树的设计:由于AVL树是二叉查找树...

2018-06-17 16:44:15 306

原创 模拟二叉查找树底层实现

二叉查找树:当前结点的左子树所有结点值小于当前结点值,而右子树所有结点值都大于当前结点实现方法:search()、insert()、delete()、前中后序遍历等。其中delete过程稍稍复杂。接口:package binary;public interface Tree<E> extends Iterable<E>{ /**查找某个元素是否存在*/ pub...

2018-06-16 16:44:29 234

原创 堆、队列、优先队列底层实现

1、通过ArrayList实现大根堆:堆:有大根堆和小根堆,对于大根堆来说,其左右子元素比根元素小1)添加操作:首先将它添加到堆的末尾,然后按以下方式建树:将最后一个结点作为当前结点while(当前结点大于它的父节点){将当前结点和它的父结点交换;现在当前结点往上进一个层次;}2)删除操作:删除之后将最后一个结点成为当前根结点,然后维护该数,其余操作和添加操作类似package shixian;...

2018-06-15 23:55:00 2910

原创 模拟栈的底层实现(用数组线性表实现)

由于栈只允许在栈顶进行插入与删除操作,所以用数组线性表来实现栈比用链表来实现效率更高:接口:package shixian;public interface MyStack<E> { /**返回栈的大小*/ public int size(); /**出栈操作*/ public E pop(); /**进栈操作*/ public void push(E e); ...

2018-06-11 13:46:19 339

原创 模拟ArrayList、LinkedList底层实现

1、MyList接口:package shixian;public interface MyList<E> extends Iterable<E> { /**添加一个新元素在list末尾*/ public void add(E e); /**添加一个新元素在指定的索引处*/ public void add(int index,E e); /**clear...

2018-06-09 17:58:34 214

channel_v3.json

sublime text3在下载package install无反应,原因是: perforences->package setting->package controll->settings-default下有"https://packagecontrol.io/channel_v3.json",该文件由于网络缓慢导致;因此先现在到本地,然后在 perforences->package setting->package controll->settings添加绝对路径即可

2019-01-21

google chrome插件, 用于yapi的接口测试所需插件-2.8.0

cross_request, chrome插件, 用于yapi的接口测试所需插件-2.8.0

2019-01-20

sql server2008 jdbc驱动

sql server2008 jdbc驱动、 sql server2008 jdbc驱动、

2018-01-03

hibernate注解开发所需的jar包

hibernate注解开发所需的jar包 包括 ejb3-persistance.jar、hibernate-commons-annotations.jar、hibernate-annotations.jar

2017-12-30

cglib-3.1.jar 、asm-6.0.jar

Mabatis 使用懒加载所需要的两个jar包 cglib 和 asm,最新版本

2017-11-28

jackson-core-2.7.4.zip

jackson-core-2.7.4.zip 包含了三个jar包,jackson-core-2.7.4.zip 包含了三个jar包

2017-10-16

SpringMVC开发jar包

SpringMVC开发所需jar包,包含spring4.3.10发布的版本和hibernate4.1.4发布的版本

2017-10-07

空空如也

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

TA关注的人

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