源码
文章平均质量分 66
师程工avaj
这个作者很懒,什么都没留下…
展开
-
java类库的阅读笔记_jdk1.7.0_40_java.util.HashMap
2013 1027: 类: java.util.HashMap 属性: table、size、threshold、loadFactor 笔记: table是一个Entry数组,这个数组的长度,或者为0,或者是2的幂次方。 size是table中存储的实际的Entry数量,由于HashMap.Entry设计为链表节点,所以size是数组上所有节点链表的全部数据量。原创 2013-10-27 21:17:27 · 1114 阅读 · 0 评论 -
osgi的equinox实现中如何增加公共jar包
参考: org.eclipse.osgi-3.6.0 源码 问题: 每个Bundle都有自己的类加载器,并且通过Import-Package和Export-Package来进行更广泛的协同类加载。但是如果我希望加入一些非OSGI的jar包作为lib,而不希望依赖它的全部bundle都修改一遍Import-Package,那要如何是好呢? 解决: OSGI的bundle类加原创 2014-03-18 22:56:28 · 2520 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.io.FileInputStream
2013 1129: 类: java.io.InputStream 笔记: 这个抽象类用来定义输入流的读取方式。 三个读数据的方法,read()、read(byte[])、read(byte[], int, int),其中read()返回一个0~255的字节,子类必须实现。另外两个都是在read上的封装。 如果流还有效,没有到结束,又暂时读不到数据,那么就会挂住。 ski原创 2013-11-29 22:19:05 · 1020 阅读 · 0 评论 -
四张类图理一下Streams的用法
首先是输出流 OutputStream。继承它的类有两种,一种是底层实现(纯继承OutputStream的类),一种是格式转换(组合了OutputStream的类)。 所谓的底层实现,就是真正和物理存储打交道的FileOutputStream、HexOutputStream这种,他们的功能是引导流存储到具体的底层结构中去。 而格式转换,就是对数据进行特定形式的封装。比如ObjectOutput原创 2013-12-08 21:29:01 · 1209 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.ConcurrentHashMap
2013 1113: 类: java.util.concurrent.ConcurrentHashMap 笔记: 这个类是经常使用的并发容器,但是看了一下源码,也不是那么牛逼。 它的并发安全性,主要是在写操作(新增和删除)时,使用ReentrantLock进行了锁保护。这和Collections.synchronizedMap是类似的。 优点就是,它内建了一个Segment原创 2013-11-13 23:24:56 · 773 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.Timer
2013 1116: 类: java.util.Timer 属性: private final TaskQueue queue = new TaskQueue(); 笔记: 一个定时器可以支持多个定时任务,定时任务的存储就放在queue中。 TaskQueue有一个定时任务数组private TimerTask[] queue = new TimerTask[128]原创 2013-11-16 21:45:36 · 1247 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.ArrayList
类: java.util.ArrayList 笔记: 这个类用数组存储数据,和LinkedList的区别,就是读写数据。 数据读取: ArrayList实现了RandomAccess,代表着直接用下标取数据,时间消耗是O(1)。 容量增长: private void grow(int minCapacity),将现有容量乘以1.5倍,与原创 2013-10-25 22:44:08 · 600 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.io.Serializable
2013 1024: 类: java.util.LinkedList 笔记: 序列化感觉是一个很简单的东西,serialVersionUID在序列化这个对象时,会被附带到对象信息中。调用ObjectInputStream对象的readObject方法时,首先会查找输入流中的对象,能不能在虚拟机中找到对应的类,如果找不到,就抛出java.lang.ClassNotFoundException原创 2013-10-24 22:29:14 · 618 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.LinkedList
2013 1022: 类: java.util.LinkedList 笔记: 这个类里面,绝大部分方法的局部变量,都用了final修饰,因此特意找了一下用final修饰有什么好处。 有如下三种说法: 1、防止自己或者其他人修改变量,以避免失误写错。 2、方法的内部类会将方法的局部final变量拷贝到自己的域中,从而可以用到局部变量 3、便于编译器进行编译的优化。 这里原创 2013-10-22 23:48:24 · 642 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.Collections
2013 1019: 类: java.util.Collections 方法: public static > void sort(List list) 笔记: 类型变量>的意思是,传入的类型T,需要实现Comparable接口,并且接口中的变量类型,需要是T或者T的父类。 比如这种类型是满足T的类型约束的: class A implements Comparable { pub原创 2013-10-19 12:46:40 · 750 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.locks.ReentrantReadWriteLock
2013 1113: 这个类实现了接口 ReadWriteLock { Lock readLock(); Lock writeLock(); } 两个方法分别返回ReentrantReadWriteLock对象持有的属性readLock和writeLock。 两个Lock属性,具有lock和unlock方法,其实现全部转移到NonfairSync和FairS原创 2013-11-13 21:19:26 · 648 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.locks.AbstractQueuedSynchronizer
2013 1032: 类: java.util.concurrent.locks.AbstractOwnableSynchronizer 属性: private transient Thread exclusiveOwnerThread 笔记: 这个属性记录当前持有锁的线程。ReentrantLock的设计形式就是,多个线程会依靠同一把锁,取到了锁的线程,会将线程对原创 2013-10-31 23:53:31 · 2800 阅读 · 0 评论 -
java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.locks.LockSupport
2013 1031: 类: java.util.concurrent.locks.LockSupport 方法: public static void park() 、public static void unpark(Thread thread) 笔记: 这两个方法,一个将当前线程挂住,一个将指定线程唤醒。两个方法的效果都是立竿见影的,不考虑CPU时间片的话,原创 2013-10-31 23:02:07 · 841 阅读 · 0 评论