Java快速入门系列-5(Java进阶特性)

第五章:Java进阶特性

    • 5.1 多线程与并发编程
      • 5.1.1 多线程基础
      • 5.1.2 线程同步与锁
      • 5.1.3 线程间通信与协作
      • 5.1.4 线程池
    • 5.2 Java I/O流
      • 5.2.1 字节流与字符流
      • 5.2.2 缓冲流
      • 5.2.3 对象序列化与反序列化
    • 5.3 网络编程基础
      • 5.3.1 Socket编程
      • 5.3.2 NIO编程
    • 5.4 Java反射机制
      • 反射的基本用法
      • 使用反射实现工厂模式
    • 5.5 Java 8新特性
      • Lambda表达式
      • Stream API
    • 5.6 Java 16及更高版本的新特性
    • 小结

开篇图

5.1 多线程与并发编程

5.1.1 多线程基础

在Java中,多线程是通过Thread类或实现Runnable接口来创建和管理线程的。多线程使得程序能够同时执行多个任务,提高程序运行效率。

// 通过继承Thread类创建线程
public class MyThread extends Thread {
   
    @Override
    public void run() {
   
        System.out.println("Running in " + Thread.currentThread().getName());
    }

    public static void main(String[] args) {
   
        MyThread thread = new MyThread();
        thread.start(); // 启动线程
    }
}

// 通过实现Runnable接口创建线程
public class RunnableExample implements Runnable {
   
    @Override
    public void run() {
   
        System.out.println("Running in " + Thread.currentThread().getName());
    }

    public static void main(String[] args) {
   
        RunnableExample task = new RunnableExample();
        Thread thread = new Thread(task);
        thread.start();
    }
}

5.1.2 线程同步与锁

在多线程环境下,可能会出现数据不一致的问题,这时就需要引入线程同步机制,如synchronized关键字和Lock接口。下面是一个简单的synchronized示例:

public class Counter {
   
    private int count = 0;

    public synchronized void increment() {
   
        count++;
    }

    public synchronized void decrement() {
   
        count--;
    }

    public synchronized int value() {
   
        return count;
    }
}

Java 5引入了java.util.concurrent.locks包,提供更灵活的锁机制,如ReentrantLock

import java.util.concurrent.locks.ReentrantLock;

public class CounterWithLock {
   
    private final ReentrantLock lock = new ReentrantLock();
    private 
上一篇:设计模式之享元模式


下一篇:力扣-简化路径-思路