Java常用工具类库 (JDK11)

java.util.Objects

Objects是在JDK1.7开始引入的一个工具类。此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。

jdk截图

变量和类型方法描述
static booleanequals​(Object a, Object b)返回 true如果参数相等,彼此 false其他。
static StringtoString​(Object o)返回调用的结果 toString对于非 null参数, "null"为 null的说法。
static StringtoString​(Object o, String nullDefault)如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。
static inthash​(Object… values)为一系列输入值生成哈希码。
static inthashCode​(Object o)返回非的哈希码 null参数,0为 null的论点。
static booleanisNull​(Object obj)如果提供的参考是 null则返回 true,否则返回 false 。
static booleannonNull​(Object obj)如果提供的参考是非 null返回 true,否则返回 false 。
static intcompare​(T a, T b, Comparator<? super T> c)如果参数相同则返回0,否则返回 c.compare(a, b) 。

源码

  public static <T> int compare(T a, T b, Comparator<? super T> c) {
        return (a == b) ? 0 :  c.compare(a, b);
    }
----------------------------------------------------------------
  public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }
    //常用:相对于object类的equals,其不会发送空指针异常
----------------------------------------------------------------  
  public static String toString(Object o) {
        return String.valueOf(o);
    } 
  public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    } 
----------------------------------------------------------------  
  public static String toString(Object o, String nullDefault) {
        return (o != null) ? o.toString() : nullDefault;
    }  
----------------------------------------------------------------  
  public static <T> T requireNonNull(T obj) {
        if (obj == null)
            throw new NullPointerException();
        return obj;
    }
----------------------------------------------------------------  
  public static boolean isNull(Object obj) {
        return obj == null;
    }
----------------------------------------------------------------  
  public static boolean nonNull(Object obj) {
        return obj != null;
    }

java.lang.Math

Math类是数学操作类,提供了一系列用于数学运算的静态方法。

在这里插入图片描述

变量和类型方法描述
static doubleabs​(double a)返回 double值的绝对值
static floatabs​(float a)返回 float值的绝对值。
static intabs​(int a)返回 int值的绝对值。
static longabs​(long a)返回 long值的绝对值。
static intaddExact​(int x, int y)返回其参数的总和,如果结果溢出 int则抛出异常。
static longaddExact​(long x, long y)返回其参数的总和,如果结果溢出 long则抛出异常。
static doubleceil​(double a)返回大于或等于参数且等于数学整数的最小值(最接近负无穷大) double 。
static doublefloor​(double a)返回小于或等于参数且等于数学整数的最大值(最接近正无穷大) double 。
static longround​(double a)返回与参数最接近的 long ,并将关系四舍五入为正无穷大。
static intround​(float a)返回与参数最接近的 int ,并将关系四舍五入为正无穷大。
static T(double/float/int/long)max​(Ta, Tb)返回两个 T值中较大的 T。
static T(double/float/int/long)min(Ta, Tb)返回两个 T值中较小的 T。
static doublerandom()返回带有正号的 double值,大于或等于 0.0且小于 1.0 。

注意:
round表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5再向下取整。例:Math.round(11.5)的结果为12。

java.util.Arrays

该类包含用于操作数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,允许将数组视为列表。

在这里插入图片描述

变量和类型方法描述
static int[]copyOf​(int[] original, int newLength)使用零复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。(动态扩容)
static T List TasList​(T… a)返回由指定数组支持的固定大小的列表
static intbinarySearch​(Object[] a, Object key)使用二进制搜索算法(二分查找)在指定的数组中搜索指定的对象(下标)
static int[]copyOfRange​(int[] original, int from, int to)将指定数组的指定范围复制到新数组中。
static booleanequals​(T[] a, T[] a2)如果两个指定的T类型数组彼此(内容)相等 ,则返回 true 。
static voidfill​(int[] a, int val)将指定的int值分配给指定的int数组的每个元素。
static voidfill​(Object[] a, Object val)将指定的Object引用分配给指定的Objects数组的每个元素。
static intmismatch​(int[] a, int[] b)查找并返回两个 int数组之间第一个不匹配的索引,否则如果未找到不匹配则返回-1。
static voidparallelSort​(int[] a)将指定的数组按升序排序。
static voidparallelSort​(int[] a, int fromIndex, int toIndex)将指定的数组范围按数字升序排序。
static voidsort​(int[] a)将指定的数组按升序排序。
static voidsort​(int[] a, int fromIndex, int toIndex)按升序对数组的指定范围进行排序。
static StringtoString​(int[] a)返回指定数组内容的字符串表示形式。

java.math.BigDecimal

float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。
对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算结果,则必须使用BigDecimal类。

一、BigDecimal使用示例


		double a = 6.6;
        double b  = 1.1;
        System.out.println(a+b);
       //结果输出:7.699999999999999
		
		BigDecimal b1 = new BigDecimal("6.6");
        BigDecimal b2 = new BigDecimal("1.1");
        BigDecimal b3 = b1.add(b2);
        System.out.println(b3);
        //结果输出:7.7

在这里插入图片描述

二、BigDecimal常用的构造方法

构造器描述
BigDecimal​(double val)将 double转换为 BigDecimal ,它是 double的二进制浮点值的精确十进制表示形式。
BigDecimal​(int val)将 int翻译成 BigDecimal 。
BigDecimal​(String val)将 BigDecimal的字符串表示 BigDecimal转换为 BigDecimal 。
		BigDecimal bigDouble = new BigDecimal(0.1);
        BigDecimal bigInt = new BigDecimal(1);
        BigDecimal bigString = new BigDecimal("0.1");
        System.out.println(bigDouble);
        System.out.println(bigInt);
        System.out.println(bigString);
		/**输出结果
		0.1000000000000000055511151231257827021181583404541015625
		1
		0.1*/

为什么会出现这种情况呢?

JDK的描述:

1、参数类型为double的构造方法的结果有一定的不可预知性。有人可能认为在Java中写入newBigDecimal(0.1)所创建的BigDecimal正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于0.1000000000000000055511151231257827021181583404541015625。这是因为0.1无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。

2、另一方面,String 构造方法是完全可预知的:写入 newBigDecimal(“0.1”) 将创建一个 BigDecimal,它正好等于预期的 0.1。因此,比较而言,通常建议优先使用String构造方法。

三、BigDecimal的常用方法

变量和类型方法描述
BigDecimalabs()返回 BigDecimal其值是此的绝对值 BigDecimal ,其标为 this.scale() 。
BigDecimaladd​(BigDecimal augend)返回 BigDecimal其值为 (this + augend) ,其比例为 max(this.scale(), augend.scale())
BigDecimaldivide​(BigDecimal divisor)返回BigDecimal其值为(this / divisor) ,其首选比例为(this.scale() - divisor.scale()) ; 如果无法表示准确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException 。
BigDecimalsubtract​(BigDecimal subtrahend)返回 BigDecimal其值为 (this - subtrahend) ,其比例为 max(this.scale(), subtrahend.scale()) 。
BigDecimalmultiply​(BigDecimal multiplicand)返回 BigDecimal其值为 (this × multiplicand) ,其比例为 (this.scale() + multiplicand.scale()) 。
doubledoubleValue()将 BigDecimal转换为 double 。
floatfloatValue()将 BigDecimal转换为 float
static BigDecimalvalueOf​(double val)转换一个 double成 BigDecimal ,使用 double通过所提供的规范的字符串表示 Double.toString(double)方法。
stringtoString()如果需要指数,则使用科学计数法返回此 BigDecimal的字符串表示形式。
booleanequals​(Object x)将此 BigDecimal与指定的 Object进行相等性比较。

java.text.SimpleDateFormat

SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。

在这里插入图片描述

格式定义:
在这里插入图片描述

基础常用格式模板:yyyy-MM-dd HH:mm:ss

构造器描述
SimpleDateFormat()构造一个 SimpleDateFormat使用默认模式和日期格式符号默认 FORMAT区域设置。
SimpleDateFormat​(String pattern)构造一个 SimpleDateFormat使用给定的模式和默认的默认日期格式符号 FORMAT区域设置。
变量和类型方法描述
stringformat(Date date)将Date格式化为日期时间字符串。 (DateFormat方法
Dateparse​(String source)从给定字符串的开头解析文本以生成日期。(DateFormat方法

java.util.Calendar

Calendar类用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特点部分,比如年、月、日、时、分和秒等。Calendar类是一个抽象类,不可以被实例化,在程序中需要调用其静态方法getInstance()来得到一个Calendar对象,然后调用其对应的方法。

在这里插入图片描述字段

变量和类型字段描述
static intDATEget和 set字段编号表示当月的日期。
static intDAY_OF_MONTHget和 set字段编号表示当月的日期。
static intDAY_OF_WEEK当前星期的第几天(星期天表示第一天,星期六表示第七天)。
static intDAY_OF_WEEK_IN_MONTH当前月中的第几个星期
static intDAY_OF_YEAR当前年中的第几天
static intWEEK_OF_YEAR当前年中星期数
static intWEEK_OF_MONTH当前月中星期数
static intYEAR字段编号为 get和 set表示年份。
static intMONTHget和 set字段编号表示月份。
static intHOURget和 set字段编号表示上午或下午的小时。
static intMINUTEget和 set字段编号表示小时内的分钟。
static intSECONDget和 set字段编号表示分钟内的秒

方法

变量和类型方法描述
abstract voidadd​(int field, int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段。
intget​(int field)返回给定日历字段的值。
voidset​(int field, int value)将给定的日历字段设置为给定值
voidset​(int year, int month, int date)设置日历字段的值 YEAR , MONTH和 DAY_OF_MONTH 。
voidset​(int year, int month, int date, int hourOfDay, int minute)设置日历字段的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和 MINUTE 。
voidset​(int year, int month, int date, int hourOfDay, int minute, int second)设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
voidsetTime​(Date date)使用给定的 Date设置此日历的时间
voidsetTimeInMillis​(long millis)从给定的long值设置此Calendar的当前时间。
voidsetTimeZone​(TimeZone value)使用给定的时区值设置时区。
StringtoString()返回此日历的字符串表示形式。

java.lang.System

System类定义了一些与系统相关的属性和方法。

在这里插入图片描述
字段

变量和类型字段描述
static PrintStreamerr“标准”错误输出流。
static InputStreamin“标准”输入流。
static PrintStreamout“标准”输出流。

方法

变量和类型方法描述
static voidexit​(int status)终止当前运行的Java虚拟机。
static voidgc()运行垃圾收集器。
static longcurrentTimeMillis()以毫秒为单位返回当前时间。
static voidarraycopy​(Object src, int srcPos, Object dest, int destPos, int length)将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。
static PropertiesgetProperties()确定当前系统属性。

String

String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。

在这里插入图片描述构造方法

构造器描述
String()初始化新创建的 String对象,使其表示空字符序列。
String​(byte[] bytes)通过使用平台的默认字符集解码指定的字节数组构造新的 String 。
String​(byte[] bytes, int offset, int length)通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String
String​(byte[] bytes, int offset, int length, String charsetName)通过使用指定的字符集解码指定的字节子 String构造新的 String 。
String​(char[] value)分配新的 String ,使其表示当前包含在字符数组参数中的字符序列。
String​(char[] value, int offset, int count)分配一个新的 String ,其中包含字符数组参数的子数组中的字符。
String​(StringBuffer buffer)分配一个新字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
String​(StringBuilder builder)分配一个新字符串,其中包含当前包含在字符串构建器参数中的字符序列。

方法

变量和类型方法描述
intcompareTo​(String anotherString)按字典顺序比较两个字符串。
intcompareToIgnoreCase​(String str)按字典顺序比较两个字符串,忽略大小写差异。
Stringconcat​(String str)将指定的字符串连接到此字符串的末尾。
booleancontains​(CharSequence s)当且仅当此字符串包含指定的char值序列(字符串)时,才返回true。
booleanendsWith​(String suffix测试此字符串是否以指定的后缀结尾。
booleanequals​(Object anObject)将此字符串与指定的对象进行比较。
booleanequalsIgnoreCase​(String anotherString)将此 String与另一个 String比较,忽略了大小写。
byte[]getBytes()使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
byte[]getBytes​(String charsetName)使用命名的字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
inthashCode()返回此字符串的哈希码。
intindexOf​(int ch)返回指定字符第一次出现的字符串中的索引。
intindexOf​(int ch, int fromIndex)返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索
intindexOf​(String str)返回指定子字符串第一次出现的字符串中的索引。(如果符合则算子字符串首字母)
intindexOf​(String str, int fromIndex)从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。
booleanisEmpty()返回 true ,当且仅当, length()是 0
intlastIndexOf​(int ch)返回指定字符最后一次出现的字符串中的索引。
intlastIndexOf​(int ch, int fromIndex)返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。
intlastIndexOf​(String str)返回指定子字符串最后一次出现的字符串中的索引。
intlastIndexOf​(String str, int fromIndex)返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。
intlength()返回此字符串的长度。
Stringrepeat​(int count)返回一个字符串,其值为此字符串的串联重复 count次。 (jdk11方法)
StringreplaceAll​(String regex, String replacement)将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
StringreplaceFirst​(String regex, String replacement)将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。
String[]split​(String regex)将此字符串拆分为给定 regular expression的匹配 项 。
booleanstartsWith​(String prefix)测试此字符串是否以指定的前缀开头。
booleanstartsWith​(String prefix, int toffset)从给定位置开始测试此字符串是否以指定的前缀开头。
Stringstrip()返回一个字符串,其值为此字符串,并删除了所有前导和尾随 white space 。
Stringsubstring​(int beginIndex)返回一个新的字符串,它包含字符串中索引beginIndex后的所有字符
Stringsubstring​(int beginIndex, int endIndex)返回一个新的字符串,它包含字符串中索引beginIndex到索引endIndex之间的所有字符
char[]toCharArray()将此字符串转换为新的字符数组。
StringtoLowerCase()使用默认语言环境的规则将此 String所有字符转换为小写。
StringtoUpperCase()使用默认语言环境的规则将此 String所有字符转换为大写。
StringtoString()这个对象(已经是一个字符串!)
Stringtrim()返回一个字符串,其值为此字符串,删除了所有前导和尾随空格,其中space被定义为其代码点小于或等于 ‘U+0020’ (空格字符)的任何字符
static StringvalueOf​(char[] data)返回 char数组参数的字符串表示形式。
static StringvalueOf​(int i)返回 int参数的字符串表示形式。
static StringvalueOf​(Object obj)返回 Object参数的字符串表示形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值