摘要: 前面已经讲解过docker的一些基础使用,镜像创建的操作过程,如果大量容器需要同时部署,一个一个容器进行服务器上的部署,估计要疯掉,在使用上我们需要找到更好更便捷的使用方式,今天要讲解的容器编排工具docker-compose就是其中之一 阅读全文
posted @ 2019-09-13 16:11 freeorange 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 今天继续来讲解阻塞队列,一个比较特殊的阻塞队列SynchronousQueue,通过Executors框架提供的线程池cachedThreadPool中我们可以看到其被使用作为可缓存线程池的队列实现,下面通过源码来了解其内部实现,便于后面帮助我们更好的使用线程池 阅读全文
posted @ 2019-09-07 15:46 freeorange 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 之前已经了解了docker的基本使用方式,简单的上手,也能让大部分人了解到这个技术的使用方法,今天继续说明docker如何构建自己所需要的镜像,开发人员掌握使用基础即可,有兴趣的可以自行深入研究 阅读全文
posted @ 2019-08-31 14:13 freeorange 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 今天继续说一说阻塞队列的实现,今天的主角就是优先级阻塞队列PriorityBlockingQueue,从命名上看觉得应该是有序的,毕竟是优先级队列,那么实际上是什么情况,我们一起看下其内部实现,提前说明下,因为PriorityBlockingQueue涉及到了堆排序的相关使用,如果没了解清楚,可以参考我之前写的关于堆排序的相关说明 阅读全文
posted @ 2019-08-24 16:56 freeorange 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 算法和数据结构可能是大多数初级程序员都不喜欢了解的知识,毕竟涉及到很多数学算法,之前曾经看过一些老师讲解的课程,讲解了程序员应该了解的数学知识,如果仔细了解的话,应该会发现,无论什么编程语言都包含了数学概念,而且,越深入学习越需要了解更多的算法和数据结构知识 阅读全文
posted @ 2019-08-17 15:21 freeorange 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 今天继续讲解阻塞队列,涉及到了常用线程池的其中一个队列LinkedBlockingQueue,从类命名部分我们就可以看出其用意,队列中很多方法名是通用的,只是每个队列内部实现不同,毕竟实现的都是同一个接口BlockingQueue,可以自行查看接口源码,下面我们一起看下LinkedBlockingQueue实现的源码部分 阅读全文
posted @ 2019-08-10 16:07 freeorange 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 线程在JDK中是非常重要的一块内容,所有的应用服务都离不开线程的相关操作,对于大量线程的使用都是推荐使用线程池来进行操作和管理,JDK本身提供的线程池在服务中经常被使用到,以往经常使用Executors来创建,但是阿里规范中也指出了其存在的隐患,从源码来看,内部大量使用了队列相关的类,所以在深入线程部分之前,我们需要了解队列相关的内容,本文就以ArrayBlockingQueue开始对JDK中的常用的队列进行说明 阅读全文
posted @ 2019-07-28 13:36 freeorange 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章已经就ConcurrentHashMap进行了部分说明,介绍了其中涉及的常量和变量的含义,有些部分需要结合方法源码来理解,今天这篇文章就继续讲解并发ConcurrentHashMap 阅读全文
posted @ 2019-07-06 19:32 freeorange 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 前面已经说明了HashMap以及红黑树的一些基本知识,对JDK8的HashMap也有了一定的了解,本篇就开始看看并发包下的ConcurrentHashMap,说实话,还是比较复杂的,笔者在这里也不会过多深入,源码层次上了解一些主要流程即可,清楚多线程环境下整个Map的运作过程就算是很大进步了,更细的底层部分需要时间和精力来研究,暂不深入 阅读全文
posted @ 2019-06-23 16:57 freeorange 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 公司内部一直在使用Docker进行服务的部署和应用的升级,从开始使用Docker一直到线上的部署以及一些基础服务的开发本人都有参与,而且自己的网站也是在Docker的基础之上进行构建的,想想也需要总结下,才能更好的使用这个工具,本篇就先进行一些简单的基础说明以便新人了解 阅读全文
posted @ 2019-05-25 13:08 freeorange 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 前面已经讲解集合中的HashMap并且也对其中使用的红黑树结构做了对应的说明,这次就来看下简单一些的另一个集合类,也是日常经常使用到的ArrayList,整体来说,算是比较好理解的集合了,一起来看下 阅读全文
posted @ 2019-05-11 13:02 freeorange 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 前面几篇文章已经讲解过HashMap内部实现以及红黑树的基础知识,今天这篇文章就讲解之前HashMap中未讲解的红黑树操作部分,如果没了解红黑树,请去阅读前面的两篇文章,能更好的理解本章所讲解的红黑树源码操作,全文默认读者已经了解红黑树的相关知识,接下来,就以HashMap.TreeNode来说明红黑树的源码操作。 阅读全文
posted @ 2019-05-03 09:16 freeorange 阅读(689) 评论(2) 推荐(0) 编辑
摘要: 说到HashMap,就一定要说到红黑树,红黑树作为一种自平衡二叉查找树,是一种用途较广的数据结构,在jdk1.8中使用红黑树提升HashMap的性能,今天就来说一说红黑树,上一讲已经给出插入平衡的调整操作,这一讲就说说更为复杂的删除平衡操作。 阅读全文
posted @ 2019-04-13 15:26 freeorange 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 说到HashMap,就一定要说到红黑树,红黑树作为一种自平衡二叉查找树,是一种用途较广的数据结构,在jdk1.8中使用红黑树提升HashMap的性能,今天就来说一说红黑树。 阅读全文
posted @ 2019-04-05 11:26 freeorange 阅读(393) 评论(0) 推荐(0) 编辑
摘要: HashMap,开发中算是最常用的结构之一了吧,笔者对这个也是看了好几遍,写下这篇文章一方面是为了促使自己能深入,另一方面也是给一些新人一些指导,不求有功,但求无过,有错误的地方请在评论中指出,我会及时验证修改,谢谢。 阅读全文
posted @ 2019-03-05 19:41 freeorange 阅读(250) 评论(0) 推荐(1) 编辑