Java常用类概览
Java是一种面向对象的编程语言,它提供了丰富的类库,这些类库中的类被广泛用于各种编程任务。在这篇文章中,我们将简要介绍一些Java中常用且重要的类。
1. String
String
类在Java中用于表示字符串。它是一个特殊的对象,因为字符串在Java中是不可变的。这意味着一旦创建,字符串的内容就不能被改变。String
类提供了丰富的方法来操作字符串,如连接、分割、转换大小写等。
String str = "Hello, World!";
String upperCaseStr = str.toUpperCase(); // "HELLO, WORLD!"
特点
- 不可变性:每次字符串操作都会产生一个新的字符串对象。
- 字符串池:字符串常量和一些短的字符串会被缓存在字符串池中,以节省内存。
常用方法
length()
: 返回字符串的长度。charAt(int index)
: 返回指定索引处的字符。substring(int beginIndex)
: 返回从指定索引开始的子字符串。equals(Object another)
: 检查两个字符串是否相等。contains(CharSequence s)
: 判断字符串是否包含指定的字符序列。
2. StringBuilder
StringBuilder
类是String
的一个可变版本。它在内部使用可变的字符数组来存储字符串,因此可以高效地进行字符串的修改操作。
StringBuilder sb = new StringBuilder("Hello");
sb.append(", World!"); // "Hello, World!"
特点
- 可变性:可以修改字符串内容,而不需要创建新对象。
- 线程安全性:
StringBuilder
不是线程安全的。如果需要线程安全,可以使用StringBuffer
。
常用方法
append(Object obj)
: 将指定对象的字符串表示形式追加到此字符序列。insert(int index, Object obj)
: 在指定位置插入指定对象的字符串表示形式。delete(int start, int end)
: 删除序列中从start(包括)到end(不包括)的字符。reverse()
: 将此字符序列用自身调换。
3. ArrayList
ArrayList
是一个基于动态数组实现的列表,它允许存储任意类型的对象。ArrayList
可以自动增长,但当元素数量超过当前容量时,需要进行扩容操作,这可能会导致性能下降。
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add(1, "Python"); // 在索引1的位置插入"Python"
特点
- 动态数组:底层使用数组实现,支持快速随机访问。
- 自动扩容:当添加的元素超过当前容量时,会自动创建一个新的数组并复制原有元素。
常用方法
add(E e)
: 在列表末尾添加一个元素。get(int index)
: 返回指定位置的元素。set(int index, E element)
: 替换指定位置的元素。remove(int index)
: 删除指定位置的元素。
4. HashMap
HashMap
是一个基于哈希表的键值对集合,它允许使用键快速查找、插入和删除元素。HashMap
不保证映射的顺序。
HashMap<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
特点
- 键值对:存储键值对,通过键快速访问值。
- 哈希表:使用哈希函数将键映射到表中的位置。
- 非线程安全:
HashMap
不是线程安全的。线程安全的版本是ConcurrentHashMap
。
常用方法
put(K key, V value)
: 将指定的值与此映射中的指定键关联。get(Object key)
: 返回指定键所映射的值。remove(Object key)
: 从映射中移除指定键的键值对。keySet()
: 返回映射中包含的键的Set视图。
5. Math
Math
类是一个工具类,提供了一系列用于执行基本数学运算的方法,如三角函数、指数、对数、幂、绝对值等。
double root = Math.sqrt(16); // 结果为4.0
double power = Math.pow(2, 3); // 2的3次方,结果为8.0
常用方法
abs(double a)
: 返回double参数的绝对值。sqrt(double a)
: 返回double参数的正平方根。pow(double a, double b)
: 返回a的b次幂。round(double a)
: 将double参数四舍五入为最接近的int值。
6. Date 和 Calendar
Date
类表示特定的瞬间,精确到毫秒。Calendar
类是一个抽象类,它为日历字段到毫秒的时间值提供了映射。
Date date = new Date();
System.out.println("Today's date: " + date);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2024);
calendar.set(Calendar.MONTH, Calendar.APRIL);
calendar.set(Calendar.DAY_OF_MONTH, 22);
System.out.println("Calendar set to: " + calendar.getTime());
特点
- 时间表示:
Date
用于表示时间点,Calendar
用于更细致地操作时间。 - 国际化:
Calendar
支持国际化,可以处理不同地区的日历系统。
常用方法
getTime()
: 获取Date
对象表示的时间。set(int field, int value)
: 在Calendar
中设置给定日历字段的值。get(int field)
: 获取给定日历字段的值。
7. System
System
类包含一些与系统相关的方法,如获取系统属性、标准输入输出等。
System.out.println("Java version: " + System.getProperty("java.version"));
特点
- 系统属性:可以访问关于Java虚拟机和操作系统的信息。
- 标准输入输出:通过
System.in
、System.out
和System.err
进行操作。
常用方法
getProperty(String key)
: 获取与指定键关联的系统属性的字符串值。setOut(PrintStream out)
: 设置新的标准输出流。
8. Random
Random
类用于生成随机数。它可以生成各种类型的随机数,包括整数、长整型、浮点数等。
Random random = new Random();
int number = random.nextInt(100); // 生成一个0到99之间的随机整数
特点
- 伪随机数:生成的随机数是伪随机的,由一个初始种子值决定。
- 可重复性:使用相同的种子值可以生成相同的随机数序列。
常用方法
nextInt(int bound)
: 返回一个随机的int
值,它在0(包括)和指定的bound(不包括)之间。nextDouble()
: 返回一个随机的double
值,它在0.0(包括)和1.0(不包括)之间。
9. Scanner
Scanner
类用于获取用户的输入。它可以解析基本数据类型及其字符串表示形式,并从各种输入源读取数据。
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
特点
- 多种数据类型:可以读取整数、浮点数、字符串等。
- 使用正则表达式:可以使用正则表达式来决定输入的格式。
常用方法
nextInt()
: 读取一个整数。nextDouble()
: 读取一个双精度浮点数。nextLine()
: 读取一行输入。
10. Exception
Java的异常处理机制允许程序在出现错误时继续运行而不是崩溃。Exception
类是所有异常的超类。
try {
int division = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero.");
}
特点
- 异常分类:分为受检异常(编译时必须处理)和非受检异常(运行时异常,可以处理也可以不处理)。
- 异常链:可以保留原始异常信息,便于调试。
常用方法
getMessage()
: 获取异常的详细消息。printStackTrace()
: 打印异常的调用栈跟踪。
总结
Java的类库非常庞大,这里只列出了一小部分常用类。掌握这些类对于编写高效、健壮的Java程序至关重要。随着对Java的深入学习,我们将遇到更多有用的类和接口。这篇文章提供了对Java中一些基础且广泛使用的类的简要介绍。在实际编程中,了解这些类的功能和用法对于解决各种编程问题非常有帮助。