10 2017 档案

摘要:概述 ConcurrentLinkedQueue是一种基于链表实现的无界非阻塞线程安全队列,遵循先入先出规则。 线程安全队列有两种实现方式: 阻塞方式:对入队和出队操作加锁。阻塞队列。 非阻塞方式:通过自旋CAS实现。例如:ConcurrentLinkedQueue 下面从源代码中分析Concurr 阅读全文
posted @ 2017-10-24 22:27 在周末 阅读(7950) 评论(3) 推荐(1) 编辑
摘要:引子 1、不安全:大家都知道HashMap不是线程安全的,在多线程环境下,对HashMap进行put操作会导致死循环。是因为多线程会导致Entry链表形成环形数据结构,这样Entry的next节点将永远不为空,就会产生死循环获取Entry。具体内容见HashMap随笔。 2、不高效:Collecti 阅读全文
posted @ 2017-10-22 16:22 在周末 阅读(3473) 评论(0) 推荐(0) 编辑
摘要:常见三种使用方法: 1)普通同步方法,锁是当前实例; 2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁; 3)对于同步代码块,锁是synchronized括号里配置的对象。 Java中的每个对象都可以作为锁。当一个线程访问同步代码块时,需要首先获取锁,退出 阅读全文
posted @ 2017-10-20 17:45 在周末 阅读(7762) 评论(1) 推荐(1) 编辑
摘要:语法糖之四:内部类 内部类:顾名思义,在类的内部在定义一个类。内部类仅仅是编译时的概念,编译成字节码后,内部类会生成单独的Class文件。 四种:成员内部类、局部内部类、匿名内部类、静态内部类。 1、成员内部类(member inner class) 常见用法:1、List、Set集合中的迭代器类; 阅读全文
posted @ 2017-10-12 09:08 在周末 阅读(349) 评论(0) 推荐(0) 编辑
摘要:概述 语法糖(Syntactic Sugar):主要作用是提高编码效率,减少编码出错的机会。 解语法糖发生在Java源码被编译成Class字节码的过程中,还原回简单的基础语法结构。 语法糖之一:泛型(Generics) Java中的泛型又称为类型擦除,它只在Java源码中存在,被编译成字节码后,就已 阅读全文
posted @ 2017-10-12 09:07 在周末 阅读(199) 评论(0) 推荐(0) 编辑