`
zhangcong170
  • 浏览: 71205 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

对util包源码的一点感想

    博客分类:
  • j2ee
阅读更多

    最近看了一下java.util包的一些源代码,感觉里面的东西的确很规范,起码比我的代码要规范N倍,感想挺多的,有空再一一贴出来。

    学过Java的朋友都知道,Java中有接口,抽象类,类。抽象类能实施接口,类也能实施接口。抽象类与普通的类的最大的区别,在于抽象类本身不能被实例化,换句话说,抽象类必须要有子类才能实现它的功能,但是,接口也是需要被实施的,初学的朋友们可能会觉得抽象类是不是有点“多余”了?事实上不然,没有抽象类,util包也就不能写得这么完美,下面看一个例子(参看附件 示例.bmp)

 

 

AbstractList实施了List,也就是把一些公共的操作集中起来,比如,indexOf(Object o),clear(),addAll(int index, Collection<? extends E> c)等等,但是,AbstractList是一个抽象类,它本身并不能被实例化,而是由其一个子类:比如Vector来负责更具体的内部逻辑,同时,Vector类还实施了List接口。换句话说,把公共的操作,一律往上放,这样,底下的子类只要一继承抽象类,马上就有了基本的功能,子类可以专注与自己本身需要做的活,而不需要再一遍又一遍重复地去写那些公共操作。由于在java.util包中继承AbsctractList的类非常多,包括ArrayList等等,而AbsctractList的子类本身的逻辑又很复杂,如果把AbstractList当做一个普通的类来处理(即AbsctractList不再是一个抽象类),那么,AbsctractList根本就没办法去实施List接口,因为List接口定义的方法必须在每一个具体的子类去实施,仅用一个超级父类来解决所有的问题是不可能的,根本就不现实,这就是抽象类的作用,它本身不能被实例化,但是,它能处理一些具体的公共逻辑,有些逻辑要到具体的类去实施,那么,它就只抽象方法而不去实施,而不是像接口那样,只管定义方法或属性,其他的什么都不管。这样,只要一个子类继承了一个Abstract类,它就拥有了某一些能力,而不是像实施一个接口一样,里面的方法必须重写,才能有具体的业务能力

 

   注意:Collection.rar是我对util包的代码分析绘的一个类结构图,欢迎朋友们指正。开发工具为MyEclipse6.0

 

  • 大小: 13.5 KB
5
4
分享到:
评论
1 楼 nijiaben 2008-11-17  

相关推荐

    Linux 中util-linux 工具包的源码

    `util-linux`源码的最新版本为`2.39.1`,这个版本可能包含了对之前版本的改进、修复和新功能的添加。 首先,`util-linux`包中包含了多个日常使用的命令,例如`hwclock`,这是一个用于与系统实时时钟交互的工具,...

    util-linux源码

    《util-linux源码详解》 在Linux操作系统中,util-linux是一个极为重要的软件包,它包含了大量用于系统管理和维护的实用工具。此包以其丰富的功能和广泛的适用性,成为了Linux开发者和系统管理员不可或缺的工具集。...

    mtd-util arm源码

    通过对源码的阅读和研究,开发者可以更好地掌握如何利用这些工具对非易失性存储器进行有效的管理和维护。同时,源码中的错误处理和配置选项也为定制和优化提供了可能,使mtd-utils能更好地适应各种不同的应用场景。

    JDK7源码 包含rt.jar包下的 sun包源码 sun.security包等源码

    `sunw`包通常是Solaris操作系统相关的,但在此环境下可能不适用,因此这部分源码可能对非Solaris用户来说参考价值较小。 总的来说,这个JDK7源码压缩包为开发者提供了一个深入研究Java平台和安全机制的宝贵资源。...

    JAVA8 完整源码(包含Sun包源码)

    9. **反射与注解处理**:Sun 包源码中包含了 `sun.reflect` 和 `sun.misc` 相关类,这些类对 Java 反射和注解处理提供了底层支持,虽然不推荐直接使用,但了解其工作原理有助于理解 Java 运行时机制。 10. **类加载...

    Util-源码.rar

    《Util-源码分析》 在编程领域,Util通常指...总之,Util-源码.zip为我们提供了一个宝贵的资源,通过对其中源码的深入学习和分析,我们可以增强对编程语言的理解,提升编程技能,为我们的职业生涯增添一份宝贵的财富。

    util-linux-ng-2.17源码(含fdisk)

    util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...

    java.util包

    Java.util包是Java标准库中的核心包之一,它包含了大量用于通用编程的类和接口,是Java开发中不可或缺的一部分。这个包提供了数据结构、集合框架、事件处理、日期时间、随机数生成、位集以及与I/O流操作相关的辅助...

    java程序设计 UTIL包.docx

    Java程序设计中的UTIL包是Java开发中非常关键的一部分,它包含了一系列通用的工具类和接口,为开发者提供了方便的功能,简化了代码编写。在本文档中,我们将深入探讨UTIL包的相关知识点,包括其设计背景、需求分析、...

    深入剖析jdk的java.util包

    jdk源码java.util包,所有类解析,包含整体架构及各个类详解

    ftp client util 源码

    FTP(File Transfer Protocol)客户端工具类源码是一个用于在客户端与服务器之间进行文件...通过对源码的阅读和理解,开发者不仅可以掌握FTP客户端的实现,还可以借鉴其中的设计模式和最佳实践,提升自己的编程技能。

    net.mindview.util包

    3. **编译类文件**:使用Java编译器(`javac`)对包内的所有Java源文件进行编译,生成对应的`.class`字节码文件。这些文件会被放置在相应的目录结构下,保持与源代码相同的包结构。 4. **构建JAR文件**:为了方便...

    Java最全的Util包!

    Java最全的Util包! 附带API文档! 很全面, 骗人加我QQ使劲骂我!QQ:95546772

    Think Java 4原书源码、课后练习题答案及源码所用的util包

    在这个压缩包中,你将找到三个重要的部分,分别是:原书源码、课后练习题答案以及源码中使用的util包。 首先,`Think_in_java第四版配书源代码.rar`包含了书中示例程序的源代码。这些源代码是理解书中概念的关键,...

    Thinking in java(第四版)源码 + 书中net.mindview.util包

    总的来说,《Thinking in Java》第四版的源码和net.mindview.util包为学习者提供了一个宝贵的实践平台,不仅能够巩固理论知识,还能提升实际编程技能,是Java初学者和进阶者的宝贵资料。通过深入研究和实践,你将...

    util包

    在Java编程语言中,`util`包(全称为`java.util`)是一个极其重要的核心包,它包含了大量用于实现常用数据结构、集合框架、日期时间处理、随机数生成、I/O流操作、国际化以及各种实用工具类的接口和类。这个包是Java...

    JDK源码包(包含sun包下的源码)

    源码包是理解JDK内部工作原理的关键,它允许开发者深入学习和调试Java平台的底层机制。通常,JDK安装后的`src.zip`文件包含了大部分的Java标准库源代码,但这不包括`sun`包下的源码。`sun`包中的类是Oracle JDK特有...

Global site tag (gtag.js) - Google Analytics