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

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

2013-10-20 09:28 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐