- 浏览: 661780 次
- 性别:
- 来自: 深圳
博客专栏
-
Hadoop学习
浏览量:251950
最新评论
-
leibnitz:
请问,你知道在FSEdigLog#loadFSEdits()时 ...
Hadoop学习二十三:Hadoop-Hdfs FSDirectory 源码 -
jiaqing_blog:
七.等待队列(本是Object里的方法,但影响了线程)noti ...
多线程总结二:线程的状态转换 -
haaarySun:
虽然是三年前的帖子,但还是想回复博主,logger是继承了ca ...
Java日志学习三:Apache Log4j源码浅析 -
annmi_cai:
好好学习,天天向上!
Hadoop学习四:Hadoop-Hdfs NameNode -
emotionText:
楼主你好!我运行报错SLF4J: Class path con ...
Hadoop学习三十:Win7 Eclipse调试Centos Hadoop2.2-Mapreduce
文章列表
容器学习二:Hashtable源码分析
- 博客分类:
- 容器
一.前言
HashMap和Hashtable大部分算法是相同的,容器学习一:HashMap源码分析
对HashMap源码进行了分析,可以先阅读它。
相同的算法部分不再分析,本文主要考虑Hashtable和HashMap的不同之处。
二.Hashtable成员变量
private transient Entry[] table;
// 等同于HashMap里面的size
private transient int count;
private int threshold;
private float loadFactor;
p ...
容器学习一:HashMap源码分析
- 博客分类:
- 容器
一.HashMap的存储结构
二.HashMap成员变量
//默认初始容量,总为2的次方值
static final int DEFAULT_INITIAL_CAPACITY = 16;
//最大容量
static final int MAXIMUM_CAPACITY = 1 << 30;
//默认加载因子
static final float DEFAULT_LOAD_FACTOR = 0.75f;
//Entry数组,每一个Entry是一个键值对实体
transient ...
一.博客传送门
容器学习一:HashMap源码分析
容器学习二:Hashtable源码分析
容器学习三:LinkedHashMap源码分析
容器学习四:TreeMap源码分析-排序二叉树和红黑树
容器学习五:TreeMap源码分析
容器学习六:HashSet & LinkedHashSet & TreeSet源码分析
容器学习七:ArrayList源码分析
容器学习八:LinkedList源码分析
容器学习九:Comparable & Comparator
容器学习十 ...
多线程总结五:Java1.5并发Lock
- 博客分类:
- 多线程
一.概述
java1.5为我们提供了同步控制的新途径, java.util.concurrent.locks.*提供了两个核心接口:Lock,Condition。
Lock接口提供了比synchronized关键字同步流程更加清晰的方法。
Condition接口替代了object对象的三个监视方法。
二.代码
传统synchronized + wait + notify控制同步。
package com.zzy.syn;
/**
* 传统同步方式
* synchronized + wait + notify
* @author eason
*
...
一.ThreadPoolExecutor作用概述
jdk1.5之前,我们都是自己写代码对于线程池的管理我们来管理线程池。jdk1.5为我们提供了一个管理线程的类ThreadPoolExecutor,我们暂且把它称之为线程池好了。有了它我们需要把任务提交过来, ...
多线程总结三:Java1.5并发Future模式
- 博客分类:
- 多线程
一.作用概述
异步计算。我每天早晨起来都有很多事情要做:洗漱-煮鸡蛋-吃早餐-等等。我的步骤是起床后先煮鸡蛋,定时10分钟,再去洗漱,等我洗漱完毕在看鸡蛋是否煮好了,煮好了就开始吃早餐,没煮好则等一会。我们把 ...
多线程总结二:线程的状态转换
- 博客分类:
- 多线程
一.线程的状态图
二.初始状态
实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态
三.可运行状态
可运行状态只是说你资格运行,调度程序没有挑选到你,你就永远是可 ...
多线程总结一:基本概念
- 博客分类:
- 多线程
一.普通对象,线程对象,线程
普通对象:针对于线程对象而言的。到处可见普通对象,Person p = new Person();一个无头无脑的人就是一个普通对象。
线程对象:线程类的实例对象。我自己定义了一个线程类public class CheckThread exte ...
总结下多线程。本人知识有限,望大家多提意见。
多线程总结一:基本概念
多线程总结二:线程的状态转换
多线程总结三:Java1.5并发Future模式
多线程总结四:Java1.5并发ThreadPoolExector
多线程总结五:Java1.5并发Lock
一.概念
代理模式:为对象提供一种代理,以控制这个对象的访问。
二.UML
Subject:定义RealSubject和Proxy的共同接口,这样在任何使用RealSubject的地方都可以使用Proxy。
RealSubject:定义Proxy所代表的实体。
Proxy:代理类,保存一个实体对象的引用,代理委托实体做事。
三.实例分析
在深圳这个神奇的国度里,最有钱的其实是那些房东。这还得感谢我们伟大的小 平同志。以前不值钱的房子,现在租客多了,原地随便盖个十几层,一年下来百来万是一点问题都没有的。房东是基本不出现的,整 ...
一.概念
状态模式:当一个对象的内在状态改变时允许改变其行为,看起来就像是修改这个类。
二.UML
Context(应用场景),持有State对象的引用。不管在任何时候,只有有人调用Context的request方法,它就会被委托到对应的状态来处理。
State(具体对象的共同接口),任何状态实现类都实现这一接口,做到状态之间的互相切换。
ConcreteStrategryA-C(状态实现类),ConcreteState处理来自Context的请求,每个ConcreteState都提供了它自己对于请求的实现。所以,当Context改变状态时行为也跟着 ...
一.概念
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露该对象的内部方法。
二.UML
Aggregate(集合对象抽象类)。
ConcreteAggregate(聚合对象具体类)。里面必然有某种数据结构,能增删改查所持有的对象。
Iterator(迭代器抽象类)。对外提供顺序访问聚合对象中对象的方法。
ConcreteIterator(具体迭代器类)。
三.实例分析
Aggregate
package com.zzy.iterator;
/**
* 聚合对象抽象类
* @au ...
一.概念
组合模式允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
二.UML
Component(对象接口),定义了对象可以做的事情。
Leaf(叶子结点对象)。
Composite(其它结点对象)。
三.实例分析
网上购物的时候,我们会发现,快递时一层一层下来的,我在北京朝阳区六里屯街道买了一个东西,物品会依次经过六里屯街道-朝阳区-深圳-深圳南山这样的顺序邮寄到我手里。我们可以看出,每个地区都会有一个大的投递点,然后再往下细分。从中,我抽象了这么几个类。 ...
一.概念
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
二.UML
AbstractClass(定义了算法的骨架) ...
一.概念
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易被使用。
二.UML
三.实例分析
大四毕业那会,我们寝室的五个哥们,为了缅怀这即将逝去的大学生活,决定出去旅游,就是所谓的毕业旅行。刚开始考虑的是自己搞定一切,后来发现,还是有点难度,于是就报了旅行社。从这个例子里面,我抽象了这样几个类。
Bus(大巴)。
Disney(迪士尼)。
Hotel(酒店)。
TravelService(旅行社)。
Client(我们)。
Bus
package com ...