首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

OpenJDK源码研究札记(四)-编写和组织可复用的工具类和方法

2013-10-22 
OpenJDK源码研究笔记(四)-编写和组织可复用的工具类和方法本篇主要讲解java.util.Arrays这个针对数组的工

OpenJDK源码研究笔记(四)-编写和组织可复用的工具类和方法

本篇主要讲解java.util.Arrays这个针对数组的工具类。

1.可复用的工具类和方法。
  这个工具类里,包含很多针对数组的工具方法,如

  排序、交换、二分查找、比较、填充、复制、hashcode、toString等。

2.禁止默认构造函数,防止实例化。
    private Arrays() {
    }
   这个类只包含了一些静态的工具方法,实例化没有任何意义。

  更严格一点,还可以将类定义为 public final Arrays。

3.把针对数组的工具方法,统一放到一个工具类中,方便管理。

  public static void sort(int[] a);

  public static int binarySearch(long[] a, int fromIndex, int toIndex, long key);

  public static int hashCode(int a[]);

  每一个工具方法处理的对象都是数组。

  即根据“数组”这个维度来把相关代码放在一起的。

  类似的,我们也可以根据“数据类型”来组织工具代码,如针对String类型的工具类放在StringUtils里,Integer类型的工具类放在IntegerUtils里。

  具体如何组织,结合实际情况需要。

4.针对不同数据类型的。

   public static void sort(int[] a);

   public static void sort(long[] a);

   public static void sort(float[] a);

   同样是排序这个功能,既有处理整型数组int[],也有长整型数组long[],还有float[]等。

5.函数的组织方式。

  功能相同的方法依次排列。

  排序函数sort相关的放一起。

  搜索函数binarySearch、比较函数equals、填充函数fill、拷贝函数copyOf、计算hashcode的hashCode、转化为字符串的toString等都依次把相关的代码组织在一起。

 类似的工具类还有java.util.Collections等,最大的区别是Collections的主要是针对List、Set、Collection等集合的。

Arrays类结构的截图

 OpenJDK源码研究札记(四)-编写和组织可复用的工具类和方法

OpenJDK源码研究札记(四)-编写和组织可复用的工具类和方法

参考资料: OpenJDK源码,JDK中文API文档

相关阅读

http://FansUnion.cn/articles/2831

1楼FansUnion50分钟前
OpenJDK源码研究系列已经写了4篇的,有兴趣的可以都看看啊。n研究源码收获还是挺大的。(*^__^*)

热点排行