thread提供的常用构造器
Thread 类提供了几个常见的构造方法,用于创建和初始化线程。下面是 Thread 类的常见构造器及其说明: ✅ 1. Thread() 作用:创建一个新的线程,默认没有指定任务,也没有指定线程名称。 使用场景:当你想要自定义线程的任务时,通常通过继承 Thread 类并重写 run() 方法。 示例:12Thread thread = new Thread();thread.start(); ✅ 2. Thread(Runnable target) 作用:创建一个新的线程并将指定的 Runnable 目标传递给线程。该线程会执行 Runnable 的 run() 方法中的任务。 使用场景:当线程的任务已经被实现为 Runnable 接口时,可以直接传递给 Thread 构造方法。 示例:123Runnable task = () -> System.out.println("线程执行");Thread thread = new Thread(task);thread.start(); ✅ 3. Thread(String...
thread提供的常用方法
Thread 类提供了多种常用方法,用于创建和管理线程。下面是一些常用的 Thread 方法及其说明: ✅ 1. 创建和启动线程的方法(1) start() 作用:启动线程。调用 start() 方法后,线程将进入“可运行”状态,并开始执行 run() 方法。 注意:只能调用一次,调用多次会抛出 IllegalThreadStateException 异常。 12Thread thread = new Thread(() -> System.out.println("线程正在执行"));thread.start(); (2) run() 作用:线程执行的代码逻辑。run() 方法是线程的入口,线程在启动时会执行 run() 方法中的代码。 注意:通常不直接调用 run() 方法,而是调用 start() 来启动线程。 12345678910111213class MyThread extends Thread { @Override public void run() { ...
线程的创建方法
在 Java 中,有三种常用的方法来创建线程: 继承 Thread 类 实现 Runnable 接口 使用 Callable 和 Future ✅ 方法一:继承 Thread 类特点: 直接继承 Thread 类并重写 run() 方法。 使用 start() 方法启动线程。 示例: 123456789101112131415class MyThread extends Thread { @Override public void run() { System.out.println("线程 " + Thread.currentThread().getName() + " 正在运行"); }}public class Main { public static void main(String[] args) { MyThread t1 = new MyThread(); ...
Commons-IO框架
Commons IO 框架详解Commons IO 是 Apache 提供的 Java IO 工具库,它简化了 文件、流 和 路径 的操作,提高开发效率,减少 try-catch-finally 代码。 ✅ 1. 依赖导入📌 1.1 Maven 依赖12345<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.15.0</version></dependency> 📌 1.2 手动下载从 Apache 官网 下载 JAR 包,添加到 lib 目录。 在项目中创建一个文件夹:lib 将commons-io-2.6.jar文件复制到lib文件夹 在jar文件上点右键,选择“Add as library”,点击OK 在类中导包使用 ✅ 2. Commons IO 核心工具类以下是 Commons IO 提供的 核心工具类...
其他流
Java 其他流(常见特殊流)详解除了 文件流(FileInputStream/FileOutputStream、FileReader/FileWriter) 和 缓冲流(BufferedInputStream/BufferedOutputStream、BufferedReader/BufferedWriter),Java 还提供了许多 特殊的流 来满足不同的需求,如 数据流、转换流、对象流、打印流、标准输入输出流等。 ✅ 1. 数据流(DataInputStream / DataOutputStream)作用: 让 Java 可以 读写基本数据类型(int、double、boolean等) 和 字符串,而不仅仅是字节或字符。 适用于 存储二进制数据(如数据库文件、序列化数据等)。 📌 1.1 DataOutputStream(数据输出流)用于 写入基本数据类型 到文件,保证数据的格式不会丢失。 示例:使用 DataOutputStream 写入基本数据1234567891011121314import...
缓冲流
Java 缓冲流(Buffered Stream)详解在 Java IO 中,缓冲流(Buffered Stream) 是对基本 IO 流的 增强,它提供 缓冲区 来减少直接与硬盘或网络交互的次数,从而提高 读写效率。 Java 提供了 字节缓冲流 和 字符缓冲流 两大类,用于字节流(InputStream/OutputStream)和字符流(Reader/Writer)的优化。 ✅ 1. 缓冲流的作用 减少 IO 操作次数:普通流每次 read() 或 write() 操作都会进行 一次磁盘 IO,而缓冲流会 一次性读取/写入多个字节或字符,提高性能。 提高读写效率:缓存数据到 内存缓冲区,减少对底层物理设备的直接访问,提高程序性能。 提供更方便的方法:如 BufferedReader.readLine() 可直接 读取一整行,比 FileReader.read() 逐个字符读取更高效。 ✅ 2. 缓冲流的分类缓冲流分为 字节缓冲流 和...
IO流概述
Java IO 流详解IO(Input/Output,输入/输出)流 是 Java 处理数据读取和写入的基础,广泛用于文件操作、网络通信、数据传输等场景。Java 的 IO 主要分为 字节流 和 字符流,并且提供了 缓冲流、数据流、对象流 等高级流来提高效率和扩展功能。 ✅ 1. Java IO 流的基本分类Java 的 IO 流可以从不同维度进行分类: 按数据类型分类 流类型 作用 常用类 字节流 以 字节(8bit) 方式操作数据,适用于所有类型文件(文本、图片、视频) InputStream / OutputStream 字符流 以 字符(16bit) 方式操作数据,适用于文本文件(txt、csv、json) Reader / Writer 按数据流向分类 方向 作用 字节流 字符流 输入流 从外部(文件、网络)读数据 InputStream Reader 输出流 向外部(文件、网络)写数据 OutputStream Writer ✅ 2. 字节流(InputStream /...
字符集
字符集(Character Set)详解字符集是计算机存储、表示和处理文本的重要基础。在 Java 和许多编程语言中,正确理解字符集对于处理国际化、多语言文本至关重要。本文将介绍字符集的基本概念、常见字符集类型,以及 Java 中的字符集处理。 ✅ 1. 什么是字符集?字符集(Character Set,简称 Charset)是一种映射规则,它将 字符(human-readable) 映射到 字节(machine-readable)。常见的字符集包括 ASCII、ISO-8859-1、UTF-8、GBK 等。 在计算机存储和传输文本时,字符必须转换为 字节。字符集定义了 字符与字节之间的映射关系,不同的字符集可能会导致同样的字符对应不同的字节序列。 ✅ 2. 常见的字符集 字符集 字节数 编码特点 ASCII 1 字节 仅支持英文,范围 0-127,最基础的字符集 ISO-8859-1 1 字节 兼容 ASCII,支持西欧语言(拉丁字母) GB2312 2 字节 早期的简体中文字符集 GBK 2 字节 GB2312...
方法递归搜索文件
使用递归方法查找文件在许多应用场景中,我们需要遍历目录及其子目录,查找特定的文件。使用递归方法可以简洁高效地解决此类问题。通过递归,我们能够遍历整个文件系统,逐级深入查找目标文件。 本文将通过一个例子,展示如何使用 Java 递归方法查找文件。 ✅ 递归查找文件的基本思路递归方法的核心思想是让方法不断地调用自己,以解决同类问题。对于文件查找,我们的任务是遍历目录并检查每个文件或子目录: 判断当前路径是否是文件:如果是文件,则检查文件名是否与目标文件名匹配。 判断当前路径是否是目录:如果是目录,则进入该目录继续查找。 这种方法通过递归调用来处理每个子目录,直到找到目标文件或遍历完整个文件树。 ✅ 实现步骤1. 判断当前路径是否是有效的目录或文件首先,检查当前传入的目录是否存在且是一个有效的目录。如果不是,直接返回。 2. 获取当前目录下的所有文件和子目录通过 File 类的 listFiles() 方法获取当前目录下的所有文件和子目录。 3....
方法递归
方法递归详解递归 是一种在程序设计中非常常见的技术,它通过让一个方法调用自身来解决问题。递归通常用于那些可以分解成相同子问题的任务,如树形结构遍历、阶乘计算、斐波那契数列、深度优先搜索等。 在 Java 中,递归方法是指一个方法直接或间接地调用自己。递归必须具备两个基本要素: 递归条件:停止递归的条件。 递归过程:方法调用自己并逐步解决问题。 递归的基本结构123456789public returnType methodName(parameters) { // 递归终止条件 if (terminationCondition) { return result; } // 递归调用 return methodName(newParameters);} ✅ 1. 递归的经典示例1.1 计算阶乘(Factorial)阶乘是指一个正整数及其所有小于它的正整数的积。比如,5! = 5 * 4 * 3 * 2 * 1。 递归实现阶乘12345678910111213141516public...