`
pengzhoushuo
  • 浏览: 12854 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

JDK源码研究之util实用类

阅读更多
BitSet: bit集合,实现了常见的逻辑操作。

Calendar:Date中很多过时的方法都在此类实现了。它是抽象类,有两个实现分别为GregorianCalendar和JapaneseImperialCalendar

Formatter: String.format()方法其实就是建了new一个Formatter进行format操作,提供类似C语言的print格式输出。

Locale:  Locale 来执行其任务的操作称为语言环境敏感的 操作。

Observer接口与Observable类: JDK提供的实现观察者模式的框架,根据本框架:观察者对象应该实现Observer接口(只有update方法),被观察者作为Observable的子类,Observable可以添加/删除任间多个Observer,
     当调用了notifyObservers时其实就是调用了Observable持有的Observer的update方法。这个框架其实并不好用,用继承的方式限制了它的应用范围。

Properties:很常用的一个类,但很少有人知道它是继承自HashTable,这种设计并不好,因为你甚至可以调用父类的add方法加入非String的Key,都是该死的继承惹得祸,更好的设计应该让Properties类持有HashTable的引用,用组合的方式解决问题。
     这里是一个误用继承的活鲜鲜的例子!!! getProperty没有加synchronized,而setProperty加了synchronized关键字。

RandomAccess: 有这个接口标记的是可以支持形如get(i)的快速访问的,一般来说Array实现的均支持快速访问,而Linked实现的由于只维护了一个headNode也许还有个子tailNode,而get(i)的时候它得从头结点往下找呀找呀,效率当然低啦。曾经做过测试在ArrayList的iterator()比起直接for(){get(i)}
   稍微要慢些(但带来了统一接口的好处),而LinkedList的iterator()比for(){get(i)}效率要高上不少。


Random: 这个类改变了默认种子的机制,原来是当前时间的毫秒数作为种子的,这样如果CPU够快在同一个循环里可能取出来相同的种子。现在毫秒变成了纳秒,而且还加上static变量的自增,理论上来说是不可能有相同的种子了。

Scanner: 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,结合System.in来用倒是挺不错的。

TimeZone:时区相关的,一个默认实现是SimpleTimeZone。

Timer: Timer可以执行固定时间或延迟执行的(TimeTask implemtns Runalbe),也可以周期性地执行线程(TimeTask)。其实在Timer里面维持着TaseQueue,这个Queue按任务的下次执行时间排序(小顶堆),执行完一个TimeTask还会根据下一次执行的时候适当地wait(fixTime)而不是空循环,从而提高效率。

UUID:采用时间与网卡或机器的一些其他参数做出的hash,基本上能够保证惟一性。
分享到:
评论

相关推荐

    JDK源码选读

    《JDK源码选读》是一本专注于Java开发人员深入理解JDK内核的重要参考资料。通过对JDK源码的解析,读者可以了解到Java语言的核心机制,提升编程技能和解决问题的能力。这里我们将围绕JDK源码中的关键知识点进行深入...

    jdk源码的另一部分

    通过研究JDK源码,我们可以了解到Java的内部工作机制,这对于优化代码性能、解决复杂问题、编写高效算法都大有裨益。深入学习这些源码,将使你成为一个更资深的Java开发者,并能更好地理解和利用这个强大的平台。

    Java jdk源码

    Java JDK源码是Java开发人员深入...总的来说,研究Java JDK源码是一次深入学习之旅,它可以帮助开发者从底层理解Java的工作方式,提升编程技艺,解决复杂问题,并且更好地利用Java的特性来设计高效、可靠的软件系统。

    jdk src 源码 压缩包提取

    其次,`java.util`包提供了大量实用工具类,如集合框架。`ArrayList`和`HashMap`是集合框架的代表,它们的源码展示了动态数组和哈希表的数据结构,以及它们如何执行插入、删除、查找等操作。此外,还有`LinkedList`...

    jdk8源码(jdk-687fd7c7986d)

    最后,我们来看`java.util`包,它是Java最常用的工具包,包含了集合框架、日期时间、队列、栈、映射等实用类。在JDK8中,集合框架得到了重大升级,引入了接口`java.util.stream.Stream`,它提供了丰富的函数式操作,...

    jdk1.6源码包

    5. **工具和实用程序**:JDK包含了一系列的命令行工具,如`javadoc`(生成API文档)、`jar`(打包和管理类文件)、`javap`(反汇编字节码)等。这些工具的源码有助于了解它们的实现细节。 6. **安全组件**:Java以...

    jdk-源码.rar

    《深入解析Java JDK源码》 Java JDK源码是Java开发者深入理解平台底层运作机制、提升编程技艺的重要参考资料。这份名为"jdk-源码.rar"的...对于任何希望成为Java专家的人来说,深入研究JDK源码都是不可或缺的步骤。

    JDK 性能

    通过阅读和理解JDK源码,我们可以得知Java内部的运行机制,从而找到性能瓶颈并进行针对性优化。例如,对集合框架(如ArrayList、HashMap)的源码分析可以帮助我们了解它们的扩容策略,选择合适的数据结构来提升数据...

    Jdk1.8源码,包含sun的源码

    它包含了JDK的核心类库和API的源代码,包括`sun`目录下的源码,这部分通常涉及Java的底层实现和一些非公开的API。在本讨论中,我们将详细探讨这个源码包中的关键知识点。 首先,`src/share/classes`目录是Java源码...

    JDK实例宝典源码

    JDK实例宝典的源码会涵盖`java.util`包中的各种集合类,如`ArrayList`、`LinkedList`、`HashMap`、`TreeMap`等,以及它们的操作方法,如添加、删除、查找等。同时,还有`Set`接口及其实现类,如`HashSet`和`TreeSet...

    jdk1.8源码.zip

    《深入解析JDK1.8源码》 JDK(Java Development Kit)是Java开发工具集,其中包含了Java运行环境、编译器以及各种工具,是学习和开发Java应用程序的基础。JDK1.8.0_191是Oracle公司发布的一个稳定版本,其源码对于...

    jdk1.6/6.0源代码src.zip

    《深入解析JDK 6.0/1.6源代码》 JDK 6.0,也称为JDK 1.6,是Java发展历程中的一个重要里程碑。它包含了丰富的API和核心库,为...无论是对于初学者还是经验丰富的开发者,深入探索JDK源码都是提升自身能力的重要途径。

    jdk8u144 src 源码

    1. **`java`** 目录:这是Java核心API的主要组成部分,包含了诸如`lang`(语言基础类)、`io`(输入输出)、`util`(实用工具类)、`net`(网络编程)、`sql`(数据库连接)等包。在`java.lang`中,我们可以找到`...

    jdk1.7.0_25(源码)

    通过深入研究这些源码,开发者可以了解Java类库的工作方式,例如垃圾收集器的实现、类加载机制、线程同步原语等。此外,这也有助于开发者编写更高效、更符合Java规范的代码,并能更好地理解和解决在实际开发中遇到的...

    jdk1.8源码

    在Java开发领域,理解JDK源码是提升编程技能的重要步骤。JDK1.8是Java发展中的一个重要版本,它引入了许多新特性和优化,使得开发者能够编写更加高效和简洁的代码。这个"jdk1.8 src.zip"文件包含了JDK1.8的源码,为...

    JAVA JDK1.6源代码

    - `java`包:包含Java标准库的核心类,如`lang`(语言基础)、`io`(输入输出)、`util`(实用工具)、`net`(网络编程)等。这些类库提供了Java编程的基本功能,是所有Java应用程序的基础。 - `javax`包:扩展了`...

    JDK1.8源码,包含sun包,java包,org包等,完整的源码

    首先,`java`包是Java语言的核心包,包含了所有基础的类库,如`java.lang`用于基础类型和对象,`java.io`处理输入输出,`java.util`提供各种实用工具类,如集合框架、日期时间等,还有`java.nio`非阻塞I/O,这些都是...

    jdk1.8.0_211源码.zip

    【标题】"jdk1.8.0_211源码.zip" 提供的是Java开发工具包(JDK)1.8.0_211版本的源代码,这是一个重要的学习资源,对于深入理解Java语言及其运行机制具有极大价值。 【描述】中提到,这个源码是用于学习目的。这...

    jdk1.6 windows 64位

    组成 JDK包含的基本组件包括: ·javac – 编译器,将源程序转成字节码 ·jar – 打包工具,将相关的类文件打包成一个文件 ·javadoc – 文档生成器,从源码注释中提取文档 ·jdb – debugger,查错工具 ·java –...

    jdk1.6 开源代码

    - `java.util`包:提供集合框架、日期和时间设施、随机数生成器以及各种实用工具类。 - `java.io`包:提供了输入/输出流相关的类,用于数据的读写操作。 - `java.net`包:支持网络通信,包括套接字和URL类。 - `...

Global site tag (gtag.js) - Google Analytics