强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 【前言】        从开源中国的对Java各个版本使用投票可以看出,目前Java8还是以67%的压倒性优势遥遥领先(Java 11 已正式发布,你在使用 Java 的哪个版本?);众所周知,Stream是Java8中的一大亮点,现在分享一下自己在工作中用它解决一个需求。 【业务场景及实现】         一、业务场景:有一个学生…

2021年1月14日 0条评论 41点热度 阅读全文

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 【前言】         今天在优化通知平台的路由部分时发现每次当路由初始化到Redis时异常慢,早就听闻Pipeline是redis批量操作的利器,正好这次用Pipeline进行优化; 【整合Redis实战】          一、原理分析            …

2019年5月28日 0条评论 16点热度 阅读全文

线程锁好比传统线程模型中的synchronized技术,但是比sychronized方式更加面向对象,与生活中的锁类似,锁本身也应该是个对象。两个线程执行的代码片段如果要实现同步互斥的效果,它们必须用同一个锁对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中。这一篇博文主要总结一下线程锁技术中Lock锁、ReadWriteLock锁的使用。 1. Lock的简单使用    有了synchronized的基础,Lock就比较简单了,首先看一个实例: ```java public class LockTe…

2016年6月4日 0条评论 15点热度 阅读全文

我们知道,使用synchronized关键字可以有效的解决线程同步问题,但是如果不恰当的使用synchronized关键字的话也会出问题,即我们所说的死锁。死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。   下面写一个死锁的例子加深理解。先看程序,再来分析一下死锁产生的原因: public class DeadLock { public static void main(String[] args) { Business busi…

2016年5月29日 0条评论 11点热度 阅读全文

我们继续分析TreeMap的源码 1.TreeMap源码分析(续) 1. 存取方法         TreeMap中的存取方法本质上就是对红黑树的插入和删除操作,从源码里体现的更为明显,其实就是对红黑树的插入和删除(可以参考:红黑树),下面简单看下源码: /*************************** put和remove **********************************/ //将key-value对添加到…

2016年4月25日 0条评论 12点热度 阅读全文

本文为博主原创文章,转载请注明出处:http://blog.csdn.net/eson_15/article/details/51154989                上一章总体分析了Map架构,并简单分析了一下AbstractMap源码,这一章开始我们将对Map的具体实现类进行详细的学习。本章先研究HashMap。依然遵循以下步骤:先对HashMap有个整体的认识,然后…

2016年4月15日 0条评论 10点热度 阅读全文

        前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,由于Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set。首先我们看下Map架构图:         从图中可以看出:         1. Map是…

2016年4月14日 0条评论 13点热度 阅读全文

Collection是一个接口,它主要的两个分支是List和Set。如下图所示:         List和Set都是接口,它们继承与Collection。List是有序的队列,可以用重复的元素;而Set是数学概念中的集合,不能有重复的元素。List和Set都有它们各自的实现类。 为了方便,我们抽象出AbstractCollection类来让其他类继承,该类实现类Collection中的绝大部分方法。AbstractList和AbstractSe…

2016年4月13日 0条评论 9点热度 阅读全文

         上一章学习了ArrayList,并分析了其源码,这一章我们将对LinkedList的具体实现进行详细的学习。依然遵循上一章的步骤,先对LinkedList有个整体的认识,然后学习它的源码,深入剖析LinkedList。 LinkedList简介     首先看看LinkedList与Collection的关系:       &nb…

2016年4月12日 0条评论 10点热度 阅读全文

    上一章学习了Collection的架构,并阅读了部分源码,这一章开始,我们将对Collection的具体实现进行详细学习。首先学习List。而ArrayList又是List中最为常用的,因此本章先学习ArrayList。先对ArrayList有个整体的认识,然后学习它的源码,深入剖析ArrayList。 1. ArrayList简介     首先看看ArrayList与Collection的关系:     A…

2016年4月11日 0条评论 12点热度 阅读全文