Java常用类总结

本文主要介绍Java常用类的方法及用法。

Java常用类及方法总结

1. String

用于表示不可变的字符串。

常用方法

方法名描述参数返回值
length()获取字符串长度int
charAt(int index)获取指定索引处的字符索引位置char
substring(int beginIndex, int endIndex)获取从开始索引到结束索引的子字符串(不包括结束索引)开始索引、结束索引String
indexOf(int ch)返回指定字符在字符串中首次出现的索引要查找的字符int
lastIndexOf(int ch)返回指定字符在字符串中最后一次出现的索引要查找的字符int
startsWith(String prefix)检查字符串是否以指定前缀开头前缀字符串boolean
endsWith(String suffix)检查字符串是否以指定后缀结尾后缀字符串boolean
contains(CharSequence s)检查字符串是否包含指定的字符序列要检查的字符序列boolean
replace(CharSequence target, CharSequence replacement)将字符串中的指定字符序列替换为新的字符序列要替换的目标序列、替换后的序列String
toLowerCase()将字符串转换为小写String
toUpperCase()将字符串转换为大写String
trim()去除字符串两端的空白字符String
split(String regex)根据给定的正则表达式拆分字符串正则表达式String[]

示例代码

1
2
3
4
5
6
7
String str = "Hello, World!";
System.out.println("长度: " + str.length()); // 13
System.out.println("第5个字符: " + str.charAt(4)); // o
System.out.println("子字符串: " + str.substring(7, 12)); // World
System.out.println("索引: " + str.indexOf('W')); // 7
System.out.println("是否以Hello开头: " + str.startsWith("Hello")); // true
System.out.println("替换后: " + str.replace("World", "Java")); // Hello, Java!

2. StringBuilder

用于可变字符串的操作,效率较高。

常用方法

方法名描述参数返回值
append(String str)在字符串末尾追加指定字符串要追加的字符串StringBuilder
insert(int offset, String str)在指定位置插入字符串插入位置、要插入的字符串StringBuilder
delete(int start, int end)删除指定范围内的字符起始索引、结束索引StringBuilder
reverse()反转字符串StringBuilder
toString()StringBuilder转换为StringString

示例代码

1
2
3
4
5
6
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // Hello World
sb.insert(5, ","); // Hello, World
sb.delete(5, 6); // Hello World
sb.reverse(); // dlroW olleH
System.out.println(sb.toString());

3. ArrayList

动态数组,允许随机访问元素。

常用方法

方法名描述参数返回值
add(E e)添加元素到列表末尾要添加的元素boolean
add(int index, E e)在指定位置插入元素插入位置、要添加的元素void
remove(int index)移除指定位置的元素要移除的元素索引E
get(int index)获取指定位置的元素元素索引E
set(int index, E e)替换指定位置的元素元素索引、新元素E
size()获取列表中的元素个数int
contains(Object o)检查列表是否包含指定元素要检查的元素boolean
indexOf(Object o)返回指定元素首次出现的索引要查找的元素int
lastIndexOf(Object o)返回指定元素最后一次出现的索引要查找的元素int
clear()清空列表中的所有元素void

示例代码

1
2
3
4
5
6
7
8
9
10
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
System.out.println("元素个数: " + list.size()); // 3
System.out.println("第二个元素: " + list.get(1)); // Banana
list.set(1, "Grape");
System.out.println("修改后的列表: " + list); // [Apple, Grape, Orange]
list.remove(2);
System.out.println("移除后的列表: " + list); // [Apple, Grape]

4. HashMap

基于哈希表的映射,允许null键和null值。

常用方法

方法名描述参数返回值
put(K key, V value)将键值对插入映射键、值V
get(Object key)获取指定键对应的值V
remove(Object key)移除指定键及其对应的值V
containsKey(Object key)检查映射是否包含指定键boolean
containsValue(Object value)检查映射是否包含指定值boolean
size()获取映射中的键值对个数int
isEmpty()检查映射是否为空boolean
clear()清空映射中的所有键值对void
keySet()返回映射中所有键的集合视图Set<K>
values()返回映射中所有值的集合视图Collection<V>

示例代码

1
2
3
4
5
6
7
8
9
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Orange", 3);
System.out.println("Apple的值: " + map.get("Apple")); // 1
System.out.println("映射大小: " + map.size()); // 3
map.remove("Banana");
System.out.println("移除后映射: " + map); // {Apple=1, Orange=3}
System.out.println("是否包含Orange键: " + map.containsKey("Orange")); // true

5. Math

提供基本的数学函数。

常用方法

方法名描述参数返回值
abs(double a)返回参数的绝对值要计算绝对值的数double
sqrt(double a)返回参数的平方根要计算平方根的数double
pow(double a, double b)返回a的b次幂底数、指数double
max(double a, double b)返回两个数中的较大值两个数double
min(double a, double b)返回两个数中的较小值两个数double
round(double a)返回最接近参数的整数要四舍五入的数long
random()返回一个介于0.0(包括)和1.0(不包括)之间的随机数double
sin(double a)返回参数的正弦值角度(弧度)double
cos(double a)返回参数的余弦值角度(弧度)double
tan(double a)返回参数的正切值角度(弧度)double

示例代码

1
2
3
4
5
System.out.println("绝对值: " + Math.abs(-5.5)); // 5.5
System.out.println("平方根: " + Math.sqrt(25)); // 5.0
System.out.println("3的4次幂: " + Math.pow(3, 4)); // 81.0
System.out.println("最大值: " + Math.max(10, 20)); // 20
System.out.println("随机数: " + Math.random()); // 例如: 0.64523

6. DateCalendar

用于处理日期和时间。

Date 类常用方法

方法名描述参数返回值
getTime()返回自1970年1月1日00:00:00 GMT以来的毫秒数long
toString()返回日期时间的字符串表示String

Calendar 类常用方法

方法名描述参数返回值
getInstance()获取默认时区和语言环境的Calendar对象Calendar
get(int field)获取指定日历字段的值日历字段(如YEARMONTH等)int
set(int field, int value)设置指定日历字段的值日历字段、新值void
add(int field, int amount)给指定日历字段添加或减去指定的时间量日历字段、时间量void
getTime()Calendar转换为Date对象Date

示例代码

1
2
3
4
5
6
7
8
9
10
Date date = new Date();
System.out.println("当前日期时间: " + date.toString()); // Fri Jul 01 10:30:45 CST 2022
long millis = date.getTime();
System.out.println("自1970年1月1日以来的毫秒数: " + millis);

Calendar calendar = Calendar.getInstance();
System.out.println("当前年份: " + calendar.get(Calendar.YEAR)); // 2022
calendar.add(Calendar.DAY_OF_MONTH, 5); // 日期加5天
Date newDate = calendar.getTime();
System.out.println("新日期: " + newDate.toString());

7. File

用于操作文件和目录。

常用方法

方法名描述参数返回值
exists()检查文件或目录是否存在boolean
isFile()检查是否为文件boolean
isDirectory()检查是否为目录boolean
length()获取文件的大小(字节)long
getName()获取文件或目录的名称String
getParent()获取父目录的路径名String
getPath()获取文件或目录的路径名String
getAbsolutePath()获取绝对路径名String
list()返回目录中的文件和目录名数组String[]
listFiles()返回目录中的文件和目录对象数组File[]
mkdir()创建目录boolean
mkdirs()创建多层目录boolean
delete()删除文件或目录boolean
renameTo(File dest)重命名文件或目录新的文件或目录对象boolean

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
File file = new File("example.txt");
if (!file.exists()) {
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("文件大小: " + file.length() + "字节");
File dir = new File("testDir");
if (!dir.exists()) {
dir.mkdirs();
System.out.println("目录创建成功");
}
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
System.out.println("目录中的文件: " + f.getName());
}
}

8. Scanner

用于获取用户输入。

常用方法

方法名描述参数返回值
next()获取下一个输入的字符串(以空白符分隔)String
nextLine()获取整行输入String
nextInt()获取下一个输入的整数int
nextDouble()获取下一个输入的双精度浮点数double
hasNext()检查是否有更多输入可用boolean
close()关闭扫描器void

示例代码

1
2
3
4
5
6
7
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的名字: ");
String name = scanner.nextLine();
System.out.print("请输入您的年龄: ");
int age = scanner.nextInt();
scanner.close();
System.out.println("名字: " + name + ", 年龄: " + age);

9. PrintStream

用于输出数据,System.out 是其对象。

常用方法

方法名描述参数返回值
print(String s)输出字符串,不换行要输出的字符串void
println(String s)输出字符串,并换行要输出的字符串void
printf(String format, Object... args)格式化输出格式字符串、参数列表PrintStream

示例代码

1
2
3
PrintStream ps = System.out;
ps.println("Hello, World!");
ps.printf("圆周率: %.2f%n", Math.PI); // 圆周率: 3.14

10. Math

提供基本的数学函数。

常用方法

方法名描述参数返回值
abs(double a)返回参数的绝对值要计算绝对值的数double
sqrt(double a)返回参数的平方根要计算平方根的数double
pow(double a, double b)返回a的b次幂底数、指数double
max(double a, double b)返回两个数中的较大值两个数double
min(double a, double b)返回两个数中的较小值两个数double
round(double a)返回最接近参数的整数要四舍五入的数long
random()返回一个介于0.0(包括)和1.0(不包括)之间的随机数double
sin(double a)返回参数的正弦值角度(弧度)double
cos(double a)返回参数的余弦值角度(弧度)double
tan(double a)返回参数的正切值角度(弧度)double

示例代码

1
2
3
4
5
System.out.println("绝对值: " + Math.abs(-5.5)); // 5.5
System.out.println("平方根: " + Math.sqrt(25)); // 5.0
System.out.println("3的4次幂: " + Math.pow(3, 4)); // 81.0
System.out.println("最大值: " + Math.max(10, 20)); // 20
System.out.println("随机数: " + Math.random()); // 例如: 0.64523

11. System

提供系统相关的属性和方法。

常用方法

方法名描述参数返回值
currentTimeMillis()返回当前时间的毫秒数long
nanoTime()返回当前时间的纳秒数long
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)数组复制源数组、源起始位置、目标数组、目标起始位置、复制长度void
getProperty(String key)获取系统属性值属性键String

示例代码

1
2
3
4
5
6
7
long startTime = System.currentTimeMillis();
// 执行某些操作
long endTime = System.currentTimeMillis();
System.out.println("执行时间: " + (endTime - startTime) + "ms");

String osName = System.getProperty("os.name");
System.out.println("操作系统名称: " + osName);

12. Integer

int 基本类型的包装类。

常用方法

方法名描述参数返回值
parseInt(String s)将字符串转换为整数要转换的字符串int
toString(int i)将整数转换为字符串要转换的整数String
valueOf(String s)返回表示指定字符串的Integer对象要转换的字符串Integer
max(int a, int b)返回两个整数中的较大值两个整数int
min(int a, int b)返回两个整数中的较小值两个整数int
bitCount(int i)返回整数二进制表示中1的位数整数int
compare(int x, int y)比较两个整数的大小两个整数int

示例代码

1
2
3
4
5
6
7
8
9
String numStr = "123";
int num = Integer.parseInt(numStr);
System.out.println("字符串转换为整数: " + num); // 123

int maxNum = Integer.max(10, 20);
System.out.println("最大值: " + maxNum); // 20

int bitCount = Integer.bitCount(7); // 二进制111中有3个1
System.out.println("二进制中1的位数: " + bitCount); // 3

13. Double

double 基本类型的包装类。

常用方法

方法名描述参数返回值
parseDouble(String s)将字符串转换为双精度浮点数要转换的字符串double
toString(double d)将双精度浮点数转换为字符串要转换的浮点数String
isNaN(double v)检查是否为NaN(非数字)浮点数值boolean
isInfinite(double v)检查是否为无穷大浮点数值boolean
compare(double d1, double d2)比较两个双精度浮点数的大小两个浮点数int

示例代码

1
2
3
4
5
6
String doubleStr = "3.14";
double value = Double.parseDouble(doubleStr);
System.out.println("字符串转换为浮点数: " + value); // 3.14

boolean isNan = Double.isNaN(0.0 / 0.0);
System.out.println("是否为NaN: " + isNan); // true

14. Character

char 基本类型的包装类。

常用方法

方法名描述参数返回值
isDigit(char c)判断字符是否为数字要判断的字符boolean
isLetter(char c)判断字符是否为字母要判断的字符boolean
isUpperCase(char c)判断字符是否为大写字母要判断的字符boolean
isLowerCase(char c)判断字符是否为小写字母要判断的字符boolean
toUpperCase(char c)将字符转换为大写要转换的字符char
toLowerCase(char c)将字符转换为小写要转换的字符char
toString(char c)将字符转换为字符串要转换的字符String

示例代码

1
2
3
4
char ch = 'A';
System.out.println("是否为字母: " + Character.isLetter(ch)); // true
System.out.println("是否为大写: " + Character.isUpperCase(ch)); // true
System.out.println("转换为小写: " + Character.toLowerCase(ch)); // a

15. Arrays

提供操作数组的静态方法。

常用方法

方法名描述参数返回值
toString(Object[] array)返回数组内容的字符串表示数组String
sort(T[] array)对数组进行升序排序数组void
binarySearch(T[] array, T key)在有序数组中通过二分法查找指定元素数组、要查找的元素int
copyOf(T[] array, int newLength)复制数组,新数组长度可能不同数组、新长度T[]
fill(Object[] array, Object val)用指定值填充数组数组、填充值void
equals(T[] a, T[] b)比较两个数组是否相等两个数组boolean

示例代码

1
2
3
4
5
6
7
8
9
int[] arr = {3, 1, 4, 1, 5, 9};
Arrays.sort(arr);
System.out.println("排序后的数组: " + Arrays.toString(arr)); // [1, 1, 3, 4, 5, 9]

int index = Arrays.binarySearch(arr, 4);
System.out.println("元素4的位置: " + index); // 3

int[] newArr = Arrays.copyOf(arr, 4);
System.out.println("复制后的数组: " + Arrays.toString(newArr)); // [1, 1, 3, 4]

16. Collections

提供操作集合的静态方法。

常用方法

方法名描述参数返回值
sort(List<T> list)对列表进行升序排序列表void
reverse(List<T> list)反转列表中元素的顺序列表void
shuffle(List<T> list)随机打乱列表中元素的顺序列表void
max(Collection<? extends T> coll)返回集合中的最大元素集合T
min(Collection<? extends T> coll)返回集合中的最小元素集合T
frequency(Collection<?> coll, Object o)返回集合中指定元素的出现次数集合、元素int
replaceAll(List<T> list, T oldVal, T newVal)将列表中的所有旧值替换为新值列表、旧值、新值void

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ArrayList<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(4);
list.add(1);
list.add(5);
list.add(9);

Collections.sort(list);
System.out.println("排序后的列表: " + list); // [1, 1, 3, 4, 5, 9]

Collections.reverse(list);
System.out.println("反转后的列表: " + list); // [9, 5, 4, 3, 1, 1]

int max = Collections.max(list);
System.out.println("最大值: " + max); // 9

int count = Collections.frequency(list, 1);
System.out.println("元素1的出现次数: " + count); // 2

17. Random

用于生成随机数。

常用方法

方法名描述参数返回值
nextInt()返回一个介于0(包括)和2^32(不包括)之间的随机整数int
nextInt(int bound)返回一个介于0(包括)和指定值(不包括)之间的随机整数上界int
nextDouble()返回一个介于0.0(包括)和1.0(不包括)之间的随机双精度浮点数double
nextBoolean()返回一个随机的布尔值boolean
nextGaussian()返回一个均值为0.0,标准差为1.0的高斯分布的随机双精度浮点数double

示例代码

1
2
3
4
5
6
7
8
9
Random random = new Random();
int randInt = random.nextInt(100); // 0到99之间的随机整数
System.out.println("随机整数: " + randInt);

double randDouble = random.nextDouble();
System.out.println("随机浮点数: " + randDouble);

boolean randBool = random.nextBoolean();
System.out.println("随机布尔值: " + randBool);

18. Formatter

用于格式化输出,支持多种格式。

常用方法

方法名描述参数返回值
format(String format, Object... args)格式化指定的参数并返回结果字符串格式字符串、参数列表Formatter
close()关闭格式化器void

示例代码

1
2
3
4
Formatter formatter = new Formatter();
formatter.format("姓名: %s, 年龄: %d, 身高: %.2f", "张三", 25, 175.6);
System.out.println(formatter.toString());
formatter.close();

19. PatternMatcher

用于正则表达式操作。

Pattern 类常用方法

方法名描述参数返回值
compile(String regex)编译正则表达式,返回Pattern对象正则表达式字符串Pattern
matcher(CharSequence input)创建一个Matcher对象,用于在输入字符序列中匹配模式输入字符序列Matcher

Matcher 类常用方法

方法名描述参数返回值
find()查找输入序列中下一个与模式匹配的子序列boolean
matches()判断整个输入序列是否与模式匹配boolean
group()返回上一次匹配操作中匹配的整个子序列String
group(int groupIndex)返回上一次匹配操作中指定捕获组匹配的子序列捕获组索引String
start()返回上一次匹配操作中匹配子序列的起始索引int
end()返回上一次匹配操作中匹配子序列的结束索引(不包括)int
replaceAll(String replacement)使用指定字符串替换所有与模式匹配的子序列替换字符串String

示例代码

1
2
3
4
5
6
7
8
9
10
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("年龄: 25, 身高: 175.6");
while (matcher.find()) {
System.out.println("匹配到的数字: " + matcher.group());
System.out.println("起始索引: " + matcher.start());
System.out.println("结束索引: " + matcher.end());
}

String replaced = matcher.replaceAll("XX");
System.out.println("替换后的字符串: " + replaced); // 年龄: XX, 身高: XX.6

20. FileReaderFileWriter

用于字符文件的读写操作。

FileReader 类常用方法

方法名描述参数返回值
read()读取单个字符int
read(char[] cbuf)读取字符到缓冲区字符数组int
close()关闭流void

FileWriter 类常用方法

方法名描述参数返回值
write(int c)写入单个字符要写入的字符void
write(String str)写入字符串要写入的字符串void
write(char[] cbuf)写入字符数组字符数组void
flush()刷新缓冲区void
close()关闭流void

示例代码

1
2
3
4
5
6
7
8
9
10
11
// 写入文件
FileWriter writer = new FileWriter("example.txt");
writer.write("Hello, World!");
writer.close();

// 读取文件
FileReader reader = new FileReader("example.txt");
char[] buffer = new char[100];
int length = reader.read(buffer);
System.out.println("读取的内容: " + new String(buffer, 0, length));
reader.close();

21. BufferedReaderBufferedWriter

用于提高字符输入输出的效率,带有缓冲区。

BufferedReader 类常用方法

方法名描述参数返回值
readLine()读取一行文本String
read()读取单个字符int
close()关闭流void

BufferedWriter 类常用方法

方法名描述参数返回值
write(String str)写入字符串要写入的字符串void
newLine()写入换行符void
flush()刷新缓冲区void
close()关闭流void

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 写入文件
BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"));
writer.write("第一行文本");
writer.newLine();
writer.write("第二行文本");
writer.close();

// 读取文件
BufferedReader reader = new BufferedReader(new FileReader("example.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("读取的行: " + line);
}
reader.close();

22. InputStreamOutputStream

用于字节流的输入输出操作,是所有字节流类的父类。

InputStream 类常用方法

方法名描述参数返回值
read()读取单个字节int
read(byte[] b)读取字节到缓冲区字节数组int
close()关闭流void

OutputStream 类常用方法

方法名描述参数返回值
write(int b)写入单个字节要写入的字节void
write(byte[] b)写入字节数组字节数组void
flush()刷新缓冲区void
close()关闭流void

示例代码

1
2
3
4
5
6
7
8
9
10
// 写入字节到文件
OutputStream os = new FileOutputStream("example.bin");
os.write(65); // 写入字符'A'的ASCII码
os.close();

// 从文件读取字节
InputStream is = new FileInputStream("example.bin");
int data = is.read();
System.out.println("读取的字节: " + data); // 65
is.close();

23. BufferedInputStreamBufferedOutputStream

带缓冲区的字节流,提高读写效率。

常用方法

InputStreamOutputStream类似,但在读写时使用缓冲区减少磁盘I/O操作。

示例代码

1
2
3
4
5
6
7
8
9
10
11
// 写入字节到文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("example.bin"));
bos.write(65);
bos.flush();
bos.close();

// 从文件读取字节
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("example.bin"));
int data = bis.read();
System.out.println("读取的字节: " + data);
bis.close();

24. Properties

用于读取和写入属性文件(键值对)。

常用方法

方法名描述参数返回值
load(InputStream inStream)从输入流加载属性列表输入流void
store(OutputStream out, String comments)将属性列表存储到输出流输出流、注释void
getProperty(String key)获取指定键对应的值String
setProperty(String key, String value)设置键值对键、值Object
list(PrintStream out)将属性列表打印到指定输出流输出流void

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Properties props = new Properties();
props.setProperty("name", "张三");
props.setProperty("age", "25");

// 将属性写入文件
try (OutputStream output = new FileOutputStream("config.properties")) {
props.store(output, "配置文件");
} catch (IOException e) {
e.printStackTrace();
}

// 从文件读取属性
Properties props = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
props.load(input);
System.out.println("name: " + props.getProperty("name"));
System.out.println("age: " + props.getProperty("age"));
} catch (IOException e) {
e.printStackTrace();
}

25. GregorianCalendar

提供了更全面的日期和时间功能。

常用方法

方法名描述参数返回值
get(int field)获取指定日历字段的值日历字段(如YEARMONTH等)int
set(int field, int value)设置指定日历字段的值日历字段、新值void
add(int field, int amount)给指定日历字段添加或减去指定的时间量日历字段、时间量void
getTime()GregorianCalendar转换为Date对象Date
setTime(Date date)使用Date对象设置日历时间Date对象void

示例代码

1
2
3
4
5
GregorianCalendar calendar = new GregorianCalendar();
System.out.println("当前年份: " + calendar.get(Calendar.YEAR));
calendar.add(Calendar.MONTH, 1); // 月份加1
Date date = calendar.getTime();
System.out.println("新日期: " + date.toString());

26. TimeZone

用于获取和操作时区信息。

常用方法

方法名描述参数返回值
getDefault()获取默认时区TimeZone
getAvailableIDs()获取所有可用的时区IDString[]
getTimeZone(String ID)获取指定ID的时区时区IDTimeZone
useDaylightTime()判断该时区是否使用夏令时boolean
getDisplayName()获取时区的显示名称String

示例代码

1
2
3
4
5
TimeZone defaultZone = TimeZone.getDefault();
System.out.println("默认时区ID: " + defaultZone.getID());
System.out.println("默认时区名称: " + defaultZone.getDisplayName());
TimeZone newYorkZone = TimeZone.getTimeZone("America/New_York");
System.out.println("纽约时区是否使用夏令时: " + newYorkZone.useDaylightTime());

27. SimpleDateFormat

用于格式化和解析日期。

常用方法

方法名描述参数返回值
format(Date date)格式化日期为字符串Date对象String
parse(String source)将字符串解析为Date对象字符串Date

示例代码

1
2
3
4
5
6
7
8
9
10
11
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
String formattedDate = sdf.format(currentDate);
System.out.println("格式化后的日期: " + formattedDate);

try {
Date parsedDate = sdf.parse("2022-07-01 10:30:45");
System.out.println("解析后的日期: " + parsedDate.toString());
} catch (ParseException e) {
e.printStackTrace();
}

28. BigInteger

用于表示任意精度的整数。

常用方法

方法名描述参数返回值
add(BigInteger val)加法运算另一个BigIntegerBigInteger
subtract(BigInteger val)减法运算另一个BigIntegerBigInteger
multiply(BigInteger val)乘法运算另一个BigIntegerBigInteger
divide(BigInteger val)除法运算另一个BigIntegerBigInteger
mod(BigInteger val)取模运算另一个BigIntegerBigInteger
pow(int exponent)幂运算指数BigInteger
compareTo(BigInteger val)比较两个BigInteger的大小另一个BigIntegerint
toString()返回BigInteger的字符串表示String

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
BigInteger a = new BigInteger("12345678901234567890");
BigInteger b = new BigInteger("98765432109876543210");

BigInteger sum = a.add(b);
System.out.println("加法结果: " + sum);

BigInteger product = a.multiply(b);
System.out.println("乘法结果: " + product);

BigInteger quotient = a.divide(b);
System.out.println("除法结果: " + quotient);

BigInteger remainder = a.mod(b);
System.out.println("取模结果: " + remainder);

29. BigDecimal

用于表示任意精度的浮点数。

常用方法

方法名描述参数返回值
add(BigDecimal augend)加法运算另一个BigDecimalBigDecimal
subtract(BigDecimal subtrahend)减法运算另一个BigDecimalBigDecimal
multiply(BigDecimal multiplicand)乘法运算另一个BigDecimalBigDecimal
divide(BigDecimal divisor)除法运算另一个BigDecimalBigDecimal
divide(BigDecimal divisor, int scale, RoundingMode roundingMode)除法运算,指定精度和舍入模式另一个BigDecimal、精度、舍入模式BigDecimal
setScale(int newScale, RoundingMode roundingMode)设置小数位数并舍入小数位数、舍入模式BigDecimal
compareTo(BigDecimal val)比较两个BigDecimal的大小另一个BigDecimalint
toString()返回BigDecimal的字符串表示String

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
BigDecimal a = new BigDecimal("1234567890.1234567890");
BigDecimal b = new BigDecimal("9876543210.9876543210");

BigDecimal sum = a.add(b);
System.out.println("加法结果: " + sum);

BigDecimal product = a.multiply(b);
System.out.println("乘法结果: " + product);

BigDecimal quotient = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println("除法结果(保留两位小数): " + quotient);

BigDecimal scaled = a.setScale(4, RoundingMode.HALF_UP);
System.out.println("设置小数位数为4: " + scaled);

30. Math

提供基本的数学函数。

常用方法

方法名描述参数返回值
abs(double a)返回参数的绝对值要计算绝对值的数double
sqrt(double a)返回参数的平方根要计算平方根的数double
pow(double a, double b)返回a的b次幂底数、指数double
max(double a, double b)返回两个数中的较大值两个数double
min(double a, double b)返回两个数中的较小值两个数double
round(double a)返回最接近参数的整数要四舍五入的数long
random()返回一个介于0.0(包括)和1.0(不包括)之间的随机数double
sin(double a)返回参数的正弦值角度(弧度)double
cos(double a)返回参数的余弦值角度(弧度)double
tan(double a)返回参数的正切值角度(弧度)double

示例代码

1
2
3
4
5
System.out.println("绝对值: " + Math.abs(-5.5)); // 5.5
System.out.println("平方根: " + Math.sqrt(25)); // 5.0
System.out.println("3的4次幂: " + Math.pow(3, 4)); // 81.0
System.out.println("最大值: " + Math.max(10, 20)); // 20
System.out.println("随机数: " + Math.random()); // 例如: 0.64523