潇湘夜雨

分类

  • 源代码阅读 (20)
  • 设计模式 (3)
  • 科研 (6)
  • 思想 (2)
  • 技术 (18)
  • 工具 (4)
  • 虚拟机 (1)
  • java (11)
  • c语言 (4)
  • 读书 (1)
  • 操作系统 (1)
  • 英语 (10)
  • 计算机系统 (3)
  • 生活 (1)

归档

  • 2014-08 (1)
  • 2014-07 (5)
  • 2014-05 (12)
  • 2014-04 (3)
  • 2014-03 (11)
  • 2014-02 (6)
  • 2014-01 (3)
  • 2013-11 (10)
  • 2013-10 (3)
  • 2010-09 (1)
  • OpenJDK 源码阅读之 Java 输入输出(I/O) 之 字节流输入
    1. 2014-07-11
    2. 技术  java  源代码阅读

    OpenJDK 源码阅读之 Java 输入输出(I/O) 之 字节流输入

    标签(空格分隔): 源代码阅读 Java 封神之路

    Java 的输入输出总是给人一种很混乱的感觉,要想把这个问题搞清楚,必须对各种与输入输出相关的类之间的关系有所了解。只有你了解了他们之间的关系,知道设计这个类的目的是什么,才能更从容的使用他们。

    我们先对 Java I/O 的总体结构进行一个总结,再通过分析源代码,给出把每个类的关键功能是如何实现的。

    Read More ...
  • OpenJDK 源码阅读之 LinkedList
    1. 2014-05-28
    2. 技术  java  源代码阅读

    OpenJDK 源码阅读之 LinkedList


    概要

    • 类继承关系
    java.lang.Object
        java.util.AbstractCollection<E>
            java.util.AbstractList<E>
                java.util.AbstractSequentialList<E>
                    java.util.LinkedList<E>
    
    Read More ...
  • 开始OpenJDK源代码阅读
    1. 2014-05-27
    2. 技术  java  源代码阅读

    开始OpenJDK源代码阅读


    在阅读了一周的 OpenJDK 源代码后,我才写这篇文章。因为除非你已经开始阅读,否则是不知道自己是不是应该读下去的。所以,不要贸然说自己要干嘛,先做一段时间,觉得感觉还好,再决定做下去。

    这一周,主要是看 java.util 中和容器相关的几个文件,虽然还没看太多,但是已经有一些收获了。看到了以前学过的数据结构在Java的标准库中是如何被实现的。也明白了平时使用的一些类的原理是什么。另外,由于最近在看 《Java编程思想》,也能把书中讲的和标准库的源代码对应起来,感觉还不错。还有一个收获就是明白了,基础越扎实,阅读源代码收获也越大,否则根本就看不出一些设计的初衷是什么。之前看到源代码中一些编写程序的方式,我觉得没有必要那样写,后来看《Java编程思想》,才知道为什么会这样写。也有一些是我觉得可以从源代码中学习的东西,从《Java编程思想》中看到,标准库中的编写方式有些是历史遗留问题,不得不那么写,而不是说我们写的时候,也要那样做。这就是说不要迷信那些你不明白的东西,即使他们看起来很权威。

    Read More ...
  • OpenJDK 源码阅读之 TreeMap
    1. 2014-05-26
    2. 技术  java  源代码阅读

    OpenJDK 源代码阅读之 TreeMap


    概要

    • 类继承关系
    java.lang.Object
        java.util.AbstractMap<K,V>
            java.util.HashMap<K,V>
    
    • 定义
    public class TreeMap<K,V>
        extends AbstractMap<K,V>
        implements NavigableMap<K,V>, Cloneable, java.io.Serializable
    
    • 要点

    1) 基于 NavigableMap 实现的红黑树 2) 按 natrual ordering 或者 Comparator 定义的次序排序。 3) 基本操作 containsKey,get,put 有 log(n) 的时间复杂度。 4) 非线程安全

    Read More ...
  • OpenJDK 源码阅读之 HashMap
    1. 2014-05-25
    2. 技术  java  源代码阅读

    OpenJDK 源代码阅读之 HashMap


    概要

    • 类继承关系
    java.lang.Object
        java.util.AbstractMap<K,V>
            java.util.TreeMap<K,V>
    
    • 定义
    public class TreeMap<K,V>
    extends AbstractMap<K,V>
    implements NavigableMap<K,V>, Cloneable, Serializable
    
    • 要点

    1) 与 Hashtable 区别在于:非同步,允许 null 2) 不保证次序,甚至不保证次序随时间不变 3) 基本操作 put, get 常量时间 4) 遍历操作 与 capacity+size 成正比 5) HashMap 性能与 capacity 和 load factor 相关,load factor 是当前元素个数与 capacity 的比值,通常设定为 0.75,如果此值过大,空间利用率高,但是冲突的可能性增加,因而可能导致查找时间增加,如果过小,反之。当元素个数大于 capacity * load_factor 时,HashMap 会重新安排 Hash 表。因此高效地使用 HashMap 需要预估元素个数,设置最佳的 capacity 和 load factor ,使得重新安排 Hash 表的次数下降。

    Read More ...
« Prev 1 2 3 4 5 6 7 8 9 10 11 Next »
Copyright (c) minixalpha 2014