5 Apache Commons Lang

Wu Jun 2019-01-05 17:03:33
16 辅助工具类 > 1 Apache Commons

Lang 项目官网

概览


Lang 为 java.lang API 提供了大量辅助工具类,尤其是字符串操作方法,基本数值方法,对象反射,并发性,创建和序列化以及系统属性。 此外,它还包含对java.util.Date的基本增强功能以及一系列专用于帮助构建方法的工具集。
顶层包包含各种Utils类,同时还有各种子包,除了CharSet基本都是线程安全的:


介绍
org.apache.commons.lang3 提供高复用的静态工具方法,主要涉及为 java.lang 类添加值。
org.apache.commons.lang3.arch 提供类来处理os.arch系统属性的值。
org.apache.commons.lang3.builder 协助创建一致的 equals(Object), toString(), hashCode()compareTo(Object) 方法。
org.apache.commons.lang3.concurrent 为多线程编程提供支持类。
org.apache.commons.lang3.event 提供一些有用的基于事件的工具。
org.apache.commons.lang3.exception 为例外提供功能。
org.apache.commons.lang3.math 继承 java.math 提供商业数学类。
org.apache.commons.lang3.mutable 基本类型和封装类的类型化的封装,取值、自增等
org.apache.commons.lang3.reflect 收集 java.lang.reflect API的常见高级用法。
org.apache.commons.lang3.text 本包已弃用,被 commons-text 替代
org.apache.commons.lang3.time 提供使用日期和久期的类和方法。
org.apache.commons.lang3.tuple 元组类,Pair、Triple。

一. org.apache.commons.lang3 顶层包


介绍
AnnotationUtils 注解工具,为注解实例提供equals/hashCode/toString等方法
ArchUtils 返回JVM的os.arch属性
ArrayUtils 数组工具类,详情后列
BitField 用于操作Bit:类实例可以存储一个flag或int,short,byte数据。
BooleanUtils 布尔工具类:逻辑运算,判断真假
CharSequenceUtils 提供了一个取CharSequence接口子序列的方法
CharSet CharSet 字符集
CharSetUtils 字符集工具类:增删、包含判断
CharUtils 字符工具类:类型判断、转换
ClassPathUtils 类路径工具:获取、拼接类路径
ClassUtils 在不使用反射的情况下操作类:获取类属性。类判断、类转换。
Conversion 类型转换:binary、byte、int 、long 、hex、hexDigit、uuid
EnumUtils 枚举工具:获取、验证
LocaleUtils Locale工具类:获取环境信息、语言信息等
ObjectUtils 类工具:克隆、比较、永久化、toString
ObjectUtils.Null null 占位符:区分值为null和不存在
RandomStringUtils 生成简单随机字符串,高级用法请使用commons-text的RandomStringGenerator。
RandomUtils 生成随机boolean,byte,double,float,int,long。0到最大值,或指定范围。
Range 包含不可变范围的对象:范围判断。
SerializationUtils 序列化工具:可用于深度克隆
StringUtils 字符串工具,详情后列
SystemUtils 系统工具类:获取java系统属性
ThreadUtils 线程工具类:查找或获取线程、线程组
Validate 验证工具:开闭区间判断、值判断、继承链判断等,各种校验方法,可以自定义提示语
(1)ArrayUtils

操作数组,基本类型数组和对象数组。

(2)StringUtils

null safe,线程安全

二. org.apache.commons.lang3.concurrent 包常用类


java.util.concurrent的扩展,多线程编程支持类。 线程安全。

多线程对象创建和初始化器:

提供线程工具

三. org.apache.commons.lang3.math 包常用类


此包扩展了 java.math,侧重于业务,Apache Commons中还有另一个Commons Math包,侧重于科学计算。
这些类是不可变的,因此是线程安全的。

(1)Fraction

处理分数。

static Fraction 	getFraction(double value)//由double创建分数
static Fraction 	getFraction(int numerator, int denominator)//创建Y/Z分数
static Fraction 	getFraction(int whole, int numerator, int denominator)//创建X Y/Z分数
static Fraction 	getFraction(String str)//由String创建分数
static Fraction 	getReducedFraction(int numerator, int denominator)//创建约简分数

(2)IEEE754rUtils

IEEE浮点数算术标准的各种max、min方法

static double 	max(double... array)
static double 	max(double a, double b, double c)
……

(3)NumberUtils

NumberUtils.createNumber(String)会最大限度地将String转换为Number对象,使用时应调用xxxValue方法返回具体类型。 还有一个相关的NumberUtils.isCreatable(String)方法。

四. org.apache.commons.lang3.reflect 包常用类


五. org.apache.commons.lang3.time 包常用类