博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenJDK源码研究笔记(四)-编写和组织可复用的工具类和方法
阅读量:5943 次
发布时间:2019-06-19

本文共 1027 字,大约阅读时间需要 3 分钟。

hot3.png

本篇主要讲解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文档

相关阅读

原文参见

转载于:https://my.oschina.net/jiutianniao/blog/400359

你可能感兴趣的文章
开发安全的 API 所需要核对的清单
查看>>
Mycat源码中的单例模式
查看>>
WPF Dispatcher介绍
查看>>
fiddler展示serverIP方法
查看>>
C语言中的随意跳转
查看>>
WPF中如何将ListViewItem双击事件绑定到Command
查看>>
《聚散两依依》
查看>>
小tips:你不知道的 npm init
查看>>
Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
查看>>
Jmeter也能IP欺骗!
查看>>
Rust 阴阳谜题,及纯基于代码的分析与化简
查看>>
ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
查看>>
(原創) array可以使用reference方式傳進function嗎? (C/C++)
查看>>
170多个Ionic Framework学习资源(转载)
查看>>
Azure:不能把同一个certificate同时用于Azure Management和RDP
查看>>
Directx11教程(15) D3D11管线(4)
查看>>
Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
查看>>
ios ble 参考
查看>>
linux中注册系统服务—service命令的原理通俗
查看>>
基于托管C++的增删改查及异步回调小程序
查看>>