自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程安全的Map----------ConcurrentHashMap(1.8)----------干戈的想法

文章目录ConcurrentHashMap成员存储一个节点putValueConcurrentHashMapConcurentHashMap大致构造与HashMap一样,都是数组 + 链表或者红黑树。但是HashMap是线程不安全的,ConcurrentHashMap是线程安全的。现在我们来进一步了解它的工作原理。成员我们来了解几个成员。// 这是map最大的容量 privat...

2020-03-25 16:36:10 397

原创 LinkedList源码解析----------干戈的想法

文章目录LinkedList成员Node添加一个元素add方法LinkedListLinkedList与ArrayList一样都是线程不安全的。ArrayList是数组形式的,而LinkedList是链表形式的,并且是不带头双向链表。成员// 链表存储元素的个数 transient int size = 0; // 链表的头节点 transient Node&lt...

2020-03-20 13:53:35 138

原创 LinkedBlockingQueue----------干戈的想法

文章目录LinkedBlockingQueue成员构造方法Node节点添加一个元素put(E e)方法offer(E e)删除一个元素take()poll()remove(Object o)LinkedBlockingQueue上次看了数组队列,这次来看链表形式的队列。温馨提示:这个链表是单向的。先来了解下类的成员成员 // capacity表示队列的大小 private fi...

2020-03-19 17:00:29 183

原创 ArrayBlockingQueue源码解析----------干戈的想法

文章目录ArrayBlockingQueue成员构造函数添加一个元素add(E e) 方法和 offer(E e)方法put(E e)方法删除一个元素poll()take()ArrayBlockingQueue我们都知道这是一个队列,之前对这个类了解的不多,后来看了源码之后才发现与自己想的不一样。本文带大家了解ArrayBlockingQueue的工作原理。首先我们来了解这个类的成员们。成员...

2020-03-18 17:33:04 124

原创 关于ArrayList和CopyOnWriteArrayList,线程不安全与安全----------干戈的想法

ArrayList类关于这个类想必大家已经非常熟悉了,是我们编写代码的好帮手。今天我们来从源码的角度在深入熟悉我们的ArrayList.并且对比CopyOnWriteArrayList比较两者之间区别。首先我们先来看ArrayList。ArrayList的构造函数// 这是类的成员们 // DEFAULT_CAPACITY这个是默认数组的大小。前提是我们并没有设置数组的长度 pri...

2020-03-17 18:20:26 372

原创 线程池ThreadPoolExecutor工作原理----------干戈的想法

文章目录ThreadPoolExecutor线程池的组成worker类线程池工作原理源码execute方法addWorker方法runWorker方法getTask方法ThreadPoolExecutor优点:在某些应用场合下,我们会产生大量的线程,想必大家都遇到过。当时用的时候没怎么在意。看了线程池之后就觉得直接产生大量的线程,这种做法是不明智的。在产生大量线程的情况下我推荐使用线程池,因...

2020-02-28 20:50:31 211

原创 关于HashMap中的红黑树----------干戈的想法

红黑树接上篇hashmap的后续,关于红黑树的操作。优点:红黑树查找方便,时间复杂度是树的高度。红黑树的基本原理,大家应该都知道,我这里再写一遍:树上的每个节点不是黑色就是红色根节点是黑色叶子节点是黑的一个红色节点他的两个子节点都是黑的任意一个节点到他叶子节点任意一条路包含的黑色节点数目是相同的。来吧我们就来看看红黑树的形成与删除、左旋、右旋、查找。基本结构 st...

2020-02-21 20:19:05 732

原创 了解HashMap1.8源码----------干戈的想法

HashMap这几天看了HashMap的源码,着重了解了HashMap的增加一个节点,删除一个节点这些工作原理。于是写下这个博文。HashMap的基本信息首先了解有关于HashMap的基本信息。1....

2020-02-20 20:31:23 169

原创 关于多文件传输----------干戈的想法

多文件传输简介解释:在编写多文件传输时,首先要明确我们多文件传输的目的,它的功能是什么。当一个节点请求某一项资源时,不会是只有一个服务器向它发送资源,只要是拥有这个资源的节点就可以发送。每一个节点发送不同的部分。优点:这样做大大降低了服务器的压力,不用多文件传输的话,常常一个服务器可能会不停的向节点发送资源。多文件的话会有别的节点帮助服务器一起发送,服务器甚至可以选择不参与发送节点。请求资源...

2020-02-12 17:10:30 300

原创 Spring IOC实现原理----------懒汉模式

原创文章要实现Spring,我们要先知道这个工具是用来干什么的。Spring是提前实例化一个类的对象并保存起来,等到我们用的时候就可以直接调用把这个对象找出来直接用就好了。妈妈再也不用担心我忘记实例化对象。我们采用的是懒汉模式,就是先将扫描到先放进去,并不注入,等我开始取对象的时候再开始注入。既然要保存那么我们就需要建立一个工厂来保存。我用的是注解的方式,当然如果你喜欢XML文件的方式也是可...

2019-10-05 14:15:16 681

原创 分发器-----action与反射机制--------cs_framework------大青龙

本博客为原创cs框架就是服务器和客户机之间用来信息的来往而制作的一套供外部(界面)使用的工具。cs框架一共有三层,加上界面就是四层。分为通信层(communication),会话层(conversation),服务器和客户端。通信层用来做最基本的信息的往来,read和write;会话层有serverConversation和clientConversation,在这一层用来进行信息的具体操作(...

2019-09-28 15:50:06 285

原创 Java——锁与wait与notif——线程与线程的运行顺序

此博客为原创浅浅了解了一下加锁时候的wait和notif与线程之间的运行顺序。今天写下来记录一下,若是有任何疑问可以提出来,大家一起讨论。在两个不同的线程之间,存在着运行先后和协作的问题,假设一个线程启动了,另一个线程才能执行其他的代码。例如在cs_framework中的通信层的一段代码。建立通信信道这是一个线程(我们暂称为次线程),它在构造函数中将被启动,而构造函数又属于另一个线程中的...

2019-09-19 22:36:33 374

空空如也

空空如也

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

TA关注的人

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