Java异常(三) 《Java Puzzles》中关于异常的几个谜题
摘要:概要本章介绍《Java Puzzles》中关于异常的几个谜题。这一章都是以代码为例,相比上一章看起来更有意思。内容包括:谜题1: 优柔寡断谜题2: 极端不可思议谜题3: 不受欢迎的宾客谜题4: 您好,再见!谜题5: 不情愿的构造器谜题6: 域和流谜题7: 异常为循环而抛转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544353.html谜题1: 优柔寡断看看下面的程序,它到底打印什么?public class Indecisive { public static void main(String[] args) { Syste...
阅读全文
Java异常(二) 《Effective Java》中关于异常处理的几条建议
摘要:概要本章是从《Effective Java》摘录整理出来的关于异常处理的几条建议。内容包括:第1条: 只针对不正常的情况才使用异常第2条: 对于可恢复的条件使用被检查的异常,对于程序错误使用运行时异常第3条: 避免不必要的使用被检查的异常第4条: 尽量使用标准的异常第5条: 抛出的异常要适合于相应的抽象第6条: 每个方法抛出的异常都要有文档第7条: 在细节消息中包含失败 -- 捕获消息第8条: 努力使失败保持原子性第9条: 不要忽略异常它们对应原书中"第8章 异常"部分的第39-47条。转载请注明出处:http://www.cnblogs.com/skywang12345/
阅读全文
Java异常(一) Java异常简介及其架构
摘要:概要本章对Java中的异常进行介绍。内容包括:Java异常简介Java异常框架转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544168.htmlJava异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。 Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。Java异常机制用到的几个关键字:try、c..
阅读全文
Java多线程系列--“JUC线程池”06之 Callable和Future
摘要:概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544116.htmlCallable 和 Future 简介 Callable 和 Future 是比较有趣的一对组合。当我们需要获取线程的执行结果时,就需要用到它们。Callable用于产生结果,Future用于获取结果。1. CallableCallable 是一个接口,它只包含一个call()方法。Callable是一个返回结果并且可能抛出异常的任务。为了.
阅读全文
Java 时间日期系列目录
摘要:下面是Java的时间和日期相关文章目录:01.Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar02.Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口03.Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date04.Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知
阅读全文
Java多线程系列--“JUC线程池”05之 线程池原理(四)
摘要:概要本章介绍线程池的拒绝策略。内容包括:拒绝策略介绍拒绝策略对比和示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.html拒绝策略介绍线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线程池共包括4种拒绝策略,它们分别是:AbortPolicy, CallerRunsPolicy, DiscardOldestPolicy和DiscardPolicy。AbortPolicy -- 当任务添加到线程...
阅读全文
Java多线程系列--“JUC线程池”04之 线程池原理(三)
摘要:转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running, SHUTDOWN, STOP, TIDYING, TERMINATED。线程池状态定义代码如下:private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNN
阅读全文
Java多线程系列--“JUC线程池”03之 线程池原理(二)
摘要:概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例参考代码(基于JDK1.7.0_40)线程池源码分析 (一) 创建“线程池” (二) 添加任务到“线程池” (三) 关闭“线程池”转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509954.html线程池示例在分析线程池之前,先看一个简单的线程池示例。 1 import java.util.concurrent.Executors; 2 import jav
阅读全文
Java多线程系列--“JUC线程池”02之 线程池原理(一)
摘要:概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括:ThreadPoolExecutor简介ThreadPoolExecutor数据结构线程池调度转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509941.htmlThreadPoolExecutor简介ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为&qu
阅读全文
Java多线程系列--“JUC线程池”01之 线程池架构
摘要:概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509903.html线程池架构图线程池的架构图如下:1. Executor它是"执行者"接口,它是来执行任务的。准确的说,Executor提供了execute()接口来执行已提交的 Runnable 任务的对象。Executor存在的目的是提供一种将"任务提交&q
阅读全文
Java多线程系列--“JUC集合”10之 ConcurrentLinkedQueue
摘要:概要本章对Java.util.concurrent包中的ConcurrentHashMap类进行详细的介绍。内容包括:ConcurrentLinkedQueue介绍ConcurrentLinkedQueue原理和数据结构ConcurrentLinkedQueue函数列表ConcurrentLinkedQueue源码分析(JDK1.7.0_40版本)ConcurrentLinkedQueue示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498995.htmlConcurrentLinkedQueue介绍ConcurrentLinkedQueue
阅读全文
Java多线程系列--“JUC集合”09之 LinkedBlockingDeque
摘要:概要本章介绍JUC包中的LinkedBlockingDeque。内容包括:LinkedBlockingDeque介绍LinkedBlockingDeque原理和数据结构LinkedBlockingDeque函数列表LinkedBlockingDeque源码分析(JDK1.7.0_40版本)LinkedBlockingDeque示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3503480.htmlLinkedBlockingDeque介绍LinkedBlockingDeque是双向链表实现的双向并发阻塞队列。该阻塞队列同时支持FIFO和FILO两
阅读全文
Java多线程系列--“JUC集合”08之 LinkedBlockingQueue
摘要:概要本章介绍JUC包中的LinkedBlockingQueue。内容包括:LinkedBlockingQueue介绍LinkedBlockingQueue原理和数据结构LinkedBlockingQueue函数列表LinkedBlockingQueue源码分析(JDK1.7.0_40版本)LinkedBlockingQueue示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3503458.htmlLinkedBlockingQueue介绍LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新
阅读全文
Java多线程系列--“JUC集合”07之 ArrayBlockingQueue
摘要:概要本章对Java.util.concurrent包中的ArrayBlockingQueue类进行详细的介绍。内容包括:ArrayBlockingQueue介绍ArrayBlockingQueue原理和数据结构ArrayBlockingQueue函数列表ArrayBlockingQueue源码分析(JDK1.7.0_40版本)ArrayBlockingQueue示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498652.htmlArrayBlockingQueue介绍ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。线
阅读全文
Java多线程系列--“JUC集合”06之 ConcurrentSkipListSet
摘要:概要本章对Java.util.concurrent包中的ConcurrentSkipListSet类进行详细的介绍。内容包括:ConcurrentSkipListSet介绍ConcurrentSkipListSet原理和数据结构ConcurrentSkipListSet函数列表ConcurrentSkipListSet源码(JDK1.7.0_40版本)ConcurrentSkipListSet示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498634.htmlConcurrentSkipListSet介绍ConcurrentSkipListS
阅读全文
Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap
摘要:概要本章对Java.util.concurrent包中的ConcurrentSkipListMap类进行详细的介绍。内容包括:ConcurrentSkipListMap介绍ConcurrentSkipListMap原理和数据结构ConcurrentSkipListMap函数列表ConcurrentSkipListMap源码分析(JDK1.7.0_40版本)ConcurrentSkipListMap示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498556.htmlConcurrentSkipListMap介绍ConcurrentSkipLis
阅读全文
Java多线程系列--“JUC集合”04之 ConcurrentHashMap
摘要:概要本章是JUC系列的ConcurrentHashMap篇。内容包括:ConcurrentHashMap介绍ConcurrentHashMap原理和数据结构ConcurrentHashMap函数列表ConcurrentHashMap源码分析(JDK1.7.0_40版本)ConcurrentHashMap示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498537.htmlConcurrentHashMap介绍ConcurrentHashMap是线程安全的哈希表。HashMap, Hashtable, ConcurrentHashMap之间的关联
阅读全文
Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet
摘要:概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWriteArraySet介绍CopyOnWriteArraySet原理和数据结构CopyOnWriteArraySet函数列表CopyOnWriteArraySet源码(JDK1.7.0_40版本)CopyOnWriteArraySet示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/349
阅读全文
Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList
摘要:概要本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArrayList。内容包括:CopyOnWriteArrayList介绍CopyOnWriteArrayList原理和数据结构CopyOnWriteArrayList函数列表CopyOnWriteArrayList源码分析(JDK1.7.0_40版本)CopyOnWriteArrayList示例转载请注明出处:http://www.cnblogs.c
阅读全文
Java多线程系列--“JUC集合”01之 框架
摘要:概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498454.htmlJava集合包在“Java 集合系列01之 总体框架”中,介绍java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合)。1. List的实现
阅读全文