2017年2月13日

摘要: 前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。 阅读全文

posted @ 2017-02-13 15:50 文轶 阅读(224) 评论(0) 推荐(0) 编辑

摘要: 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的, 阅读全文

posted @ 2017-02-13 15:47 文轶 阅读(131) 评论(0) 推荐(0) 编辑

摘要: 0.参考文献 http://blog.csdn.net/liulin_good/article/details/6213815 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如Abstrac 阅读全文

posted @ 2017-02-13 15:18 文轶 阅读(4474) 评论(1) 推荐(0) 编辑

摘要: 一、为什么要编码? 由于人类的语言太多,因而表示这些语言的符号太多,无法用计算机的一个基本的存储单元 byte来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。 byte一个字节即8个bit,所以能表示的字符范围是0~255个,这满足不了人类的需要,要解决这个矛盾必须需要一个新的数据结构 阅读全文

posted @ 2017-02-13 15:15 文轶 阅读(3733) 评论(0) 推荐(0) 编辑

摘要: 本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17.4.5. Happens-before Order、深入理解Java内存模型以及Happens b 阅读全文

posted @ 2017-02-13 15:10 文轶 阅读(1650) 评论(0) 推荐(0) 编辑

摘要: ConcurrentHashMap完全允许多个读操作并发进行,读操作并不需要加锁。(事实上,ConcurrentHashMap支持完全并发的读以及一定程度并发的写。)如果使用传统的技术,如HashMap中的实现,如果允许可以在hash链的中间添加或删除元素,读操作不加锁将得到不一致的数据。但是Con 阅读全文

posted @ 2017-02-13 15:04 文轶 阅读(2948) 评论(0) 推荐(0) 编辑

摘要: 术语定义 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。如以下代码: 01 final HashMap<String, String> map = new HashMap<String 阅读全文

posted @ 2017-02-13 15:01 文轶 阅读(15212) 评论(0) 推荐(2) 编辑

摘要: 本文是作者原创,首发于InfoQ:http://www.infoq.com/cn/articles/ConcurrentLinkedQueue 1. 引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞 阅读全文

posted @ 2017-02-13 14:56 文轶 阅读(839) 评论(0) 推荐(0) 编辑

摘要: Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 阅读全文

posted @ 2017-02-13 14:54 文轶 阅读(234) 评论(0) 推荐(0) 编辑

摘要: 概要 学完了Map的全部内容,我们再回头开开Map的框架图。 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/E 阅读全文

posted @ 2017-02-13 14:50 文轶 阅读(773) 评论(0) 推荐(0) 编辑

摘要: 概要 前一章,我们学习了HashMap。这一章,我们对Hashtable进行学习。我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable。第1部分 Hashtable介绍第2部分 Hashtable数据结构第3部分 Hashtable源码解析(基于JD 阅读全文

posted @ 2017-02-13 14:48 文轶 阅读(811) 评论(0) 推荐(0) 编辑

摘要: ConcurrentHashMap的目的 多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。虽然已经有一个线程安全的HashTable,但是HashTable容器使用synchronized(他的get和put方法的实现 阅读全文

posted @ 2017-02-13 14:43 文轶 阅读(194) 评论(0) 推荐(0) 编辑

摘要: 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 阅读全文

posted @ 2017-02-13 14:38 文轶 阅读(193) 评论(0) 推荐(0) 编辑

摘要: Java集合 HashSet的源码分析 一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于Has 阅读全文

posted @ 2017-02-13 14:36 文轶 阅读(213) 评论(0) 推荐(0) 编辑

摘要: 一、HashMap概述二、HashMap的数据结构三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 7、Fail-Fast机制 一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映 阅读全文

posted @ 2017-02-13 14:32 文轶 阅读(257) 评论(0) 推荐(0) 编辑

摘要: Java集合 LinkedList源码解析 一、源码解析1、 LinkedList类定义2、LinkedList数据结构原理3、私有属性4、构造方法5、元素添加add()及原理6、删除数据remove()7、数据获取get()8、数据复制clone()与toArray()9、遍历数据:Iterato 阅读全文

posted @ 2017-02-13 14:23 文轶 阅读(221) 评论(0) 推荐(0) 编辑

摘要: Java集合 ArrayList的实现原理 目录: 一、 ArrayList概述 二、 ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 6) 调整数组容量 7)转为静态数组toArray 总结 一、 ArrayList概述: ArrayLis 阅读全文

posted @ 2017-02-13 14:14 文轶 阅读(2097) 评论(0) 推荐(1) 编辑

摘要: volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文

posted @ 2017-02-13 13:34 文轶 阅读(233) 评论(0) 推荐(0) 编辑

摘要: 第一部分: For-each Loop Purpose The basic for loop was extended in Java 5 to make iteration over arrays and other collections more convenient. This newer  阅读全文

posted @ 2017-02-13 13:22 文轶 阅读(8148) 评论(0) 推荐(3) 编辑

摘要: 1.什么是内部接口 内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,Entry接口定义在Map接口里面,如下代码: public interface Map { interface Entry{ int getKey(); } void clear(); } 2.为什么要使用内部接 阅读全文

posted @ 2017-02-13 11:36 文轶 阅读(600) 评论(0) 推荐(0) 编辑