掌握Java核心类库:字符串、集合、日期与I/O操作完全指南
                           
天天向上
发布: 2025-01-27 20:40:25

原创
40 人浏览过

下面是核心Java类库的详细教程,涵盖了Java的String类、集合框架、日期和时间API、I/O操作、异常处理以及Java 8的新特性等核心概念。这些是每个Java开发者必备的技能:


Java教程之:核心Java类库

1. String类

  • 字符串的创建与操作
    Java中的String类用于处理字符串,字符串在Java中是不可变的。字符串可以通过字面量或new关键字创建。
  String str1 = "Hello";
  String str2 = new String("World");
  System.out.println(str1 + " " + str2);

常用操作包括字符串拼接、替换、查找、大小写转换等:

  String str = "Hello World";
  String upperStr = str.toUpperCase();  // 转为大写
  String replacedStr = str.replace("World", "Java");  // 替换字符串
  • StringBuffer与StringBuilder
    StringBufferStringBuilder都是可变的字符序列,主要用于字符串的修改操作。StringBuffer是线程安全的,而StringBuilder不是,适用于单线程环境。
  StringBuffer sb = new StringBuffer("Hello");
  sb.append(" World");
  System.out.println(sb);

2. 集合框架

  • List、Set、Map的接口及其实现类
  • List:有序且可重复的集合,常见实现类为ArrayListLinkedList
    java List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python");
  • Set:无序且不可重复的集合,常见实现类为HashSetTreeSet
    java Set<String> set = new HashSet<>(); set.add("Java"); set.add("Java");
  • Map:存储键值对的集合,常见实现类为HashMapTreeMapMap<String, Integer> map = new HashMap<>(); map.put("Java", 1); map.put("Python", 2);
  • 遍历集合
  • 使用for-each循环遍历集合:
    “`java
    for (String s : list) {
    System.out.println(s);
    }
- **泛型在集合中的使用**
  泛型可以提供类型安全的集合操作,避免类型转换错误。

java
List integerList = new ArrayList<>();
integerList.add(1);
integerList.add(2);

#### **3. 日期和时间API**
- **Date和Calendar类**
  `Date`类用于表示日期和时间,但它的方法已过时,推荐使用`Calendar`类。

java
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.set(2023, Calendar.JANUARY, 1);

- **Java 8的DateTime API**
  Java 8引入了`LocalDate`、`LocalTime`、`LocalDateTime`等类,简化了日期和时间的处理。

java
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();

#### **4. 输入输出(I/O)**
- **File类**
  `File`类用于处理文件和目录的创建、删除、重命名等操作。

java
File file = new File(“example.txt”);
if (file.exists()) {
System.out.println(“File exists.”);
}

- **字节流与字符流**
  - **字节流**:用于处理所有类型的数据(如图片、视频)。常用类有`InputStream`和`OutputStream`。
  - **字符流**:用于处理文本数据。常用类有`Reader`和`Writer`。

java
FileInputStream fis = new FileInputStream(“file.txt”);
FileOutputStream fos = new FileOutputStream(“output.txt”);

- **BufferedReader和BufferedWriter**
  `BufferedReader`用于高效地读取文本,`BufferedWriter`用于高效地写入文本。

java
BufferedReader reader = new BufferedReader(new FileReader(“input.txt”));
BufferedWriter writer = new BufferedWriter(new FileWriter(“output.txt”));

- **序列化与反序列化**
  Java中的序列化将对象转换为字节流以便保存或传输,反序列化则是将字节流转换回对象。

java
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(“object.dat”));
oos.writeObject(myObject);

#### **5. 异常处理**
- **异常的种类(Checked异常和Unchecked异常)**
  - **Checked异常**:编译时异常,如`IOException`,必须处理。
  - **Unchecked异常**:运行时异常,如`NullPointerException`,不需要强制处理。

- **try-catch-finally语句**
  使用`try-catch`来捕获异常,并在`finally`中执行清理工作。

java
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println(“Error: ” + e.getMessage());
} finally {
System.out.println(“Cleanup done.”);
}

- **自定义异常类**
  自定义异常类继承`Exception`类或其子类。

java
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}

#### **6. Java 8新特性**
- **Lambda表达式**
  Lambda表达式用于简化函数式编程,允许传递行为(函数作为参数)。

java
List list = Arrays.asList(“Apple”, “Banana”, “Cherry”);
list.forEach(s -> System.out.println(s));

- **Stream API**
  Stream API简化了对集合的操作,如过滤、排序、映射等。

java
list.stream().filter(s -> s.startsWith(“A”)).forEach(System.out::println);

- **Optional类**
  `Optional`类用于避免`NullPointerException`,表示可能为null的值。

java
Optional optional = Optional.ofNullable(“Hello”);
optional.ifPresent(System.out::println);

- **方法引用**
  方法引用是Lambda表达式的一种简化方式,直接引用已有方法。

java
List list = Arrays.asList(“a”, “b”, “c”);
list.forEach(System.out::println);
“`


总结

本部分涵盖了Java核心类库的多个关键方面,包括字符串处理、集合框架、日期时间API、I/O操作、异常处理及Java 8的新特性。掌握这些类库是Java开发的基础,可以帮助开发者高效地编写、管理和优化应用程序。无论是基础操作,还是更复杂的功能,都能通过这些类库轻松实现。

发表回复 0

Your email address will not be published. Required fields are marked *