java.util.Objects
常用方法:
-
public static int checkFromIndexSize(int fromIndex, int size, int length) 检查数组下标是否越界
fromIndex:开始存入的数组下标,size:需要存入数据的大小,length:数组的长度
-
static boolean equals(Object a, Objectb) 如果参数相等,返回true,否则false
在a、b参不确定是否为null时都可调用进行比较判断
-
static boolean isNull(Object obj) 如果传入参数obj为null返回true,否则false
-
static boolean nonNull(Object obj) 如果传入参数obj不为null返回true,否则false
-
static T requireNonNull(T obj) 如果传入参数obj不为null则返回obj本身,否则抛出异常
在需要web前端一定传入非空参数时可使用,传入参数为空利用异常补救
java.lang.Math
常用方法:
-
static double abs(double a) 返回 double值的绝对值。
-
static int addExact(int x, int y) 返回其参数的总和,如果结果溢出 int则抛出异常。
-
static int subtractExact(int x, int y) 返回参数的差异,如果结果溢出 int则抛出异常。
-
static int multiplyExact(int x, int y) 返回参数的乘积,如果结果溢出 int则抛出异常。
-
static double random() 返回带有正号的 double值,大于或等于 0.0且小于 1.0
用于产生随机数,结合以下三个取整方法
-
static long round(double a) 四舍五入为正无穷
-
static double ceil(double a) 接近正无穷大的第一个整数(正数:小数全入)
-
static double floor(double a) 接近负无穷大的第一个整数(正数:小数全舍)
-
static double nextDown(double d) 返回负无穷大方向上与 d相邻的浮点值。
java.util.Arrays
常用方法:
-
static int binarySearch(byte[] a, byte key) 使用二进制搜索算法在指定的字节数组中搜索指定的值。
查找数组中的元素,找到返回下标
-
static int compare(char[] a, char[] b) char字典顺序比较两个 char阵列。
-
static char[] copyOf(char[] original, int newLength) 使用空字符复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。
复制数组,超出新数组长度截断,不足相应数据填充
-
static boolean equals(char[] a, char[] a2) 如果两个指定的字符数组彼此 相等 ,则返回 true 。
-
static boolean deepEquals(Object[] a1, Object[] a2) 如果两个指定的数组彼此 深度相等 ,则返回 true 。
-
static void fill(Object[] a, Object val) 将指定的Object引用分配给指定的Objects数组的每个元素。
-
static int mismatch(Object[] a, Object[] b) 查找并返回两个 Object数组之间第一个不匹配的索引,否则如果未找到不匹配则返回-1。
-
static void parallelSort(int[] a) 将指定的数组按升序排序。
-
static String toString(char[] a) 返回指定数组内容的字符串表示形式。
java.math.BigDecimal
专用于算数运算,解决小误差问题
- BigDecimal add(BigDecimal augend) 加法运算
- BigDecimal subtract(BigDecimal subtrahend) 减法运算
- BigDecimal multiply(BigDecimal multiplicand) 乘法运算
- BigDecimal divide(BigDecimal divisor) 除法运算
- static BigDecimal valueOf(double val) double转换成BigDecimal
- double dobuleValue() BigDecimal转换成double
java.util.Date
对已过时的解释:一部分使用相关代码的程序员遇到bug后向官方反应,官方会标注已过时,由于还会有一部分人仍然正常使用这段代码,因此原本的代码并不会删除,还能继续使用,只是官方会给出解决的方法,提供新的代码。
Date
类表示特定的时刻,精度为毫秒。
推荐可正常使用的方法:
- long getTime() 返回自此Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
关注两个构造方法:
- Date() 创建当前的时间对象
- Date(long date) 指定相对1970年1月1日00:00:00 GMT的毫秒时间
java.text.DateFormat
格式化和分析日期或时间,抽象类,只能使用子类SimpleDateFormat
解析日期时注意:输入的字符串要和你想要的格式一样才行
// y:年 M:月 d:日 H:时(24小时制) h:(12小时制) m:分 s:秒
// 格式化日期
Date date1 = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String text1 = format.format(date1); // 2021年02月18日 18时32分05秒
// 解析日期
Date date2 = format.parse("2021年12月12日 12时12分12秒");
String text2 = format.format(date2); // 2021年12月12日 12时12分12秒
java.util.Calendar
抽象类,通过getInstance()方法创建对象
Calendar rightNow = Calendar.getInstance();
Calendar类日期时间存在一个数组中,通过传入字段作为数组下标的值进行日历操作
通过相应字段可快速获取一年中的第几天、一年中第几个月、一个月中第几周、一周中第几天…
注意:月份0-11;星期从周日开始计算1(周日)-7(周六);
-
int get(int field) 传入相应字段获取时间日历
-
void set(int field, int value) 传入字段及值可设置日历
-
void add(int field, int amount) 日历加减计算
-
Date getTime() 获取Date对象
-
int getActualMaximum(int field) 获取某字段的最大值
java.lang.System
- static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。 src - 源数组。 srcPos - 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据中的起始位置。 length - 要复制的数组元素的数量。
- static void gc() 运行垃圾收集器。
- static void exit(int status) 终止当前运行的Java虚拟机。
- static long currentTimeMillis() 以毫秒为单位返回当前时间。
java.lang.String
字符串是常量;它们的值在创建之后不能改变。
-
因为String对象是不可变的,所以可以共享它们:String类有一个对应的String池,也就是 String pool,每一个内容相同的字符串对象都对应于一个pool里的对象。
eg: new String(“abc”) 通过new创建字符串的时候,先在常量池看看有没有相同内容"abc"的对象,没有就创建一个"abc",同时在堆中再创建一个"abc"对象
不通过new创建的字符串对象,内容相同则引用所指的内存也相同
字符串拼接尽量避免,大量拼接可使用StringBuilder(线程不安全,快速)、StringBuffer(线程安全)
// 线程不安全(快速)
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("hello ");
stringBuilder.append("world!");
String str = stringBuilder.toString(); // hello world!
常用构造方法:
- String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组构造新的 String 。
- String(byte[] bytes, String charsetName) 构造一个新的String由指定用指定的字节的数组解码charset 。
- String(StringBuffer buffer) 分配一个新字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
常用方法:
- char charAt(int index) 返回指定索引处的 char值。
- int codePointAt(int index) 返回指定索引处的字符(Unicode代码点)。
- boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。
- byte[] getBytes() 使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
- byte[] getBytes(String charsetName) 使用命名的字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
- char[] toCharArray() 将此字符串转换为新的字符数组。
- int indexOf(String str) 返回指定子字符串第一次出现的字符串中的索引。
- int lastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引。
- String replace(char oldChar, char newChar) 返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。
- String replaceAll(String regex, String replacement) 将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
- String[] split(String regex) 将此字符串拆分为给定 regular expression的匹配项 。
- String trim() 返回一个字符串,其值为此字符串,删除了所有前导和尾随空格
- static String valueOf(char c) 返回 char参数的字符串表示形式。