今日学习目标:

  1. 深入学习Java中的集合框架,包括高级集合类和集合操作。
  2. 掌握Java中的I/O流操作,包括文件读写和网络通信。
  3. 了解Java中的多线程编程基础。

一、集合框架的高级特性

除了基本的集合接口和实现类,Java集合框架还提供了许多高级特性和工具类。

  1. 迭代器(Iterator)和增强型for循环:用于遍历集合元素。
  2. 集合的排序和搜索:使用Collections类的sort()方法对List进行排序,使用binarySearch()方法进行搜索。
  3. 子集合视图:使用subList()方法获取List的子集合,使用subSet()方法获取Set的子集合。
  4. 转换集合:使用Collections2(来自Google Guava库)等第三方库进行集合的转换和操作。

示例代码:

java复制代码
 import java.util.ArrayList;  
 
 import java.util.Collections;  
 
 import java.util.List;  
 
   
 
 public class AdvancedCollections {  
 
     public static void main(String[] args) {  
 
         List<Integer> numbers = new ArrayList<>();  
 
         numbers.add(5);  
 
         numbers.add(2);  
 
         numbers.add(9);  
 
           
 
         // 使用Collections.sort()对List进行排序  
 
         Collections.sort(numbers);  
 
         System.out.println(numbers); // 输出: [2, 5, 9]  
 
           
 
         // 使用subList()获取子集合  
 
         List<Integer> subList = numbers.subList(1, 3);  
 
         System.out.println(subList); // 输出: [5, 9]  
 
     }  
 
 }

二、I/O流操作

Java的I/O流用于处理数据的输入和输出,包括文件读写和网络通信。

  1. 字节流(Byte Streams):以字节为单位处理数据,如FileInputStreamFileOutputStream
  2. 字符流(Character Streams):以字符为单位处理数据,如FileReaderFileWriter
  3. 缓冲流(Buffered Streams):提高I/O性能,如BufferedInputStreamBufferedOutputStream
  4. 转换流(Transformation Streams):如InputStreamReaderOutputStreamWriter,用于在字节流和字符流之间进行转换。
  5. 对象流(Object Streams):如ObjectInputStreamObjectOutputStream,用于序列化和反序列化对象。

示例代码:

java复制代码
 import java.io.*;  
 
   
 
 public class IOExample {  
 
     public static void main(String[] args) {  
 
         try (FileWriter writer = new FileWriter("output.txt")) {  
 
             writer.write("Hello, World!");  
 
         } catch (IOException e) {  
 
             e.printStackTrace();  
 
         }  
 
           
 
         try (FileReader reader = new FileReader("output.txt")) {  
 
             int ch;  
 
             while ((ch = reader.read()) != -1) {  
 
                 System.out.print((char) ch);  
 
             }  
 
         } catch (IOException e) {  
 
             e.printStackTrace();  
 
         }  
 
     }  
 
 }

三、多线程编程基础

Java支持多线程编程,允许同时执行多个任务。

  1. 线程的状态:新建(NEW)、就绪(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)、终止(TERMINATED)。
  2. 创建线程:通过继承Thread类并重写run()方法,或者实现Runnable接口并重写run()方法。
  3. 线程控制:使用start()方法启动线程,使用sleep()方法使线程休眠,使用join()方法等待线程结束。
  4. 线程同步:使用synchronized关键字或Lock接口实现线程同步,避免数据不一致问题。

示例代码:

java复制代码
 public class SimpleThread extends Thread {  
 
     @Override  
 
     public void run() {  
 
         for (int i = 0; i < 10; i++) {  
 
             System.out.println("Thread running: " + i);  
 
             try {  
 
                 sleep(1000); // 线程休眠1秒  
 
             } catch (InterruptedException e) {  
 
                 e.printStackTrace();  
 
             }  
 
         }  
 
     }  
 
       
 
     public static void main(String[] args) {  
 
         SimpleThread thread = new SimpleThread();  
 
         thread