1. 字符串
String提供了一个与split相反的join方法,将字符串通过分隔符组合起来.字符串可以来自于Array或者Iterable<? extends CharSequence>:
String joined = String.join("/", "usr", "local", "bin"); // "usr/local/bin"
System.out.println(joined);
String ids = String.join(", ", ZoneId.getAvailableZoneIds());
System.out.println(ids);
// All time zone identifiers, separated by commas
2. 数字类
7种数字类型的包装类提供了BYTES字段,用来表示该类型的长度
8种原始类型的包装类型,提供了静态的hashCode方法,用来返回与实例方法相同的hash码,省去装箱/拆箱。
Short, Integer, Long, Float, 和 Double提供了sum、max和min,用来在流操作中作为聚合函数使用。Boolean包含了logicalAnd, logicalOr, 和 logicalXor
Integer现在支持无符号数学计算, Byte 和 Short 类增加方法 toUnsignedInt。
Byte, Short, 和 Integer 增加方法 toUnsignedLong.
使用无符号数字,会丢失负数,并获得两倍的正数范围
Integer 和 Long 添加方法 compareUnsigned, divideUnsigned, 和
remainderUnsigned(求余)用来处理无符号值
Float和Double新增静态方法isFinite.当数字为正/负无穷大或者NAN(非数字时),该方法返回false,否则返回true
BigInteger 添加实例方法 (long|int|short|byte)ValueExact
返回对应的值, 当值不再目标范围内时抛出 ArithmeticException
3. 数学函数
Math类新增方法为:(add|subtract|multiply|increment|decrement|negate)Exact,参数为 int 和 long.这些方法可以进行精确计算,如果超过范围则会抛出异常。例如100000*100000会计算出错误结果1410065408(int型overflow),而multiplyExact(100000, 100000)会抛出异常。
floorMod 和 floorDiv旨在解决整型余数问题。在java中,如果n为负数,n%2为-1,而floorMod(position + adjustment, 12)总是返回一个0到11之间的数字。(对于负的除数,还是会返回负值)。