您的位置:首页 > 编程语言 > Java开发

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

2015-05-03 00:00 309 查看
本篇主要讲解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源码,JDK中文API文档

相关阅读

OpenJDK源码研究笔记(一)-参数检查&抛出带关键错误提示信息的异常

OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)

OpenJDK源码研究笔记(三)-RandomAccess等标记接口的作用

原文参见http://FansUnion.cn/articles/2831
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐