5 个你不知道的 Java 方法
Java 语言充满了可供程序员在其程序中导入和使用的现成工具。 类及其方法通常会简化事情,让我们能够高效地理解和编写代码。
涵盖大部分基本算法和复杂流程,内置类和方法是每个程序员必须知道的。
下面是 5 个 Java 方法,它们通常不常见,但可以证明在我们的整个编程过程中都有重要用途。
1. decrementExact
decrementExact()
是 java 中 Math 类的 一个基本函数,它将给定参数(一个数字)减一,并返回结果。 此函数与 incrementExact()
函数相反。
如果给定的参数是 11,那么结果将是 10。
如果递减参数溢出其数据类型,则会抛出异常。 因此,使用此函数时务必小心,尤其是对于较大的数字。 通常,整数用于此函数。
语法
Math.decrementExact(number);
示例
System.out.println(Math.decrementExact(11));
// 输出: 10
2. getAsDouble
getAsDouble()
是属于 OptionalDouble
类的方法。 OptionalDouble
对象是一个可能包含双精度数的对象。 类中的方法可用于处理对象中存在的双精度值,或指定根本不包含双精度值。
getAsDouble()
是这些方法之一,如果存在,它实际上返回双精度值。 否则,将抛出 NoSuchElementException。
语法
OptionalDoubleObject.getAsDouble();
示例
OptionalDouble num = OptionalDouble.of(15.0);
System.out.println(num.getAsDouble());
// 输出: 15.0
3. absExact
absExact()
类似于 Math 类中的 abs()
函数; 它返回数字的绝对值,即数字的正值而不考虑其符号。
然而,不同之处在于它只有在可以精确表示为它的数据类型(int 或 long)时才会这样做。
如果生成的返回值溢出原始数据类型,则会抛出 ArithmeticException。
语法
Math.absExact(number);
示例
System.out.println(Math.absExact(-11));
// 输出: 11
4. endsWith
endsWith()
方法是一个内置的字符串方法,它根据给定的字符串是否以参数中指定的后缀(结束词/字符串)结尾来返回一个布尔值。
该方法与 startsWith()
方法相反,可能更多人比较熟悉。
语法
String.endsWith(String suffix);
示例
String phrase = "I like bananas";
System.out.println(phrase.endsWith("bananas")); // true
System.out.println(phrase.endsWith("Tandrew")); // false
/* 输出:
true
false
*/
5. divideUnisgned
divideUnsigned()
方法是 Integer 类中的一个方法,它允许我们将两个数字相除并返回一个无符号商值。
与常规有符号整数相比,无符号整数只能表示正数。 无符号整数和有符号整数在其范围内具有相同数量的数字(范围大小均为 65 536 个数字)。
但是,由于无符号整数不能为负,因此它们在正数范围内的最大值远高于常规有符号整数的最大值。
为了简化这一点,我们可以改为查看有符号和无符号字节的示例。 字节的范围为 256 个数字。 常规字节可以从 -128 到 127。但是,无符号字节可以从 0 一直到 255。
除此之外,该函数的工作方式与常规除法完全相同。
语法
Integer.divideUnsigned(int dividend, int divisor);
示例
int dividend = 10;
int divisor = 5;
int quotient = Integer.divideUnsigned(dividend, divisor);
System.out.println(quotient);
// 输出: 2
总结
以下是本文中讨论的函数/方法的简要总结:
decrementExact()
— 将指定的数字减 1getAsDouble()
— OptionalDouble 函数的一部分,返回给定可选双精度对象中的数字(如果存在)absExact()
— 如果数字可表示为其原始数据类型,则返回数字的绝对值endsWith()
— 根据给定字符串中是否存在指定的后缀返回一个布尔值divideUnsigned()
— 执行常规除法但返回无符号的商值