- 博客(78)
- 资源 (4)
- 收藏
- 关注
原创 Java实现音频录音&播放机功能
Java实现一个简单的音频录音和播放功能,使用Swing创建图形用户界面,利用Java Sound API进行音频处理。二、程序主要功能2.1 录音功能 - 使用TargetDataLine从麦克风捕获音频数据 - 音频数据存储在ByteArrayOutputStream中 - 录音过程在单独线程中运行,避免阻塞UI2.2 播放功能可以选择并播放已保存的WAV文件;使用SourceDataLine进行音频播放。2.3 文件操作 - 可以将录音保存为WAV格式文件 - 可以打开已有的WAV
2025-04-11 17:37:37
521
原创 【数据库创建】用ij工具部署Derby数据库并验证
Java内置的Derby数据库,是个功能强大的微型数据库,其基础引擎和内嵌的JDBC驱动总共大约2MB大小。Derby可以紧密地嵌入到Java程序中。Derby数据库可以有两种部署方式:1,嵌入式:Derby数据库提供了嵌入式的JDBC驱动,因此可把Derby数据库嵌入到Java应用程序内。这种模式的Derby数据库适用于单个用户的Java应用程序,Derby和应用程序运行在同一个JVM中。2,服务器模式:网络数据库模式,这是标准的数据库服务器(服务器/客户端)模式,是所有的数据库产品都支持的模式。
2025-02-09 22:38:50
275
原创 Java函数式编程【三】【Stream终止操作】【下】之【Collect()方法】【1】用法详解
tream终止操作collect()方法是 Java Stream API 中的终止操作方法,它的作用是将流中的元素收集到一个新的集合或者结果中。使用collect()收集运算结果时,通常需传入收集器(Collector)参数作为集合容器。这个收集器必须是Collector接口的某种具体实现类。Collectors 是 Java 8 引入的操作类,Collectors 是一个工具类,它预置提供了很多静态方法来创建特定的收集器(Collector),可用于作为方法 collect() 的参数。
2025-01-12 16:39:56
1288
原创 Java 函数接口BiFunction与BinaryOperator简介与示例【函数式编程】【Stream】
Java 8引入了一种新的函数式编程风格,Function接口是Java函数式编程中最重要的四个函数式接口之一。函数接口BiFunction,它是Function接口的扩展版本。BinaryOperator 也是 Java 8 中引入的一个函数式接口,位于 java.util.function 包中。它是一个特殊的 BiFunction,用于表示接受两个相同类型的参数并返回相同类型结果的操作。该接口定义了一个 apply 方法,用于执行操作。
2025-01-12 16:30:39
1119
原创 正则表达式(Regex)基础语法
正则表达式(也称为 Regex)是用于匹配文本中模式的强大工具。它们广泛应用于文本处理、数据验证和搜索操作。比如需要处理字符串以验证用户输入的数据、验证 URL 格式、替换段落中的单词等。几乎所有主要的编程语言都支持正则表达式。本文详细介绍了正则表达式(Regex)基础语法。
2024-12-25 17:33:46
1523
原创 Java中以某字符串开头且忽略大小写字母如何实现【正则表达式(Regex)】
本文讨论了,Java中以某字符串开头且忽略大小写字母的功能多种实现方式。String类的startsWith()方法对大小写是敏感的,如果忽略大小写进行比较就需要转换为小写或大写,再使用String类的startsWith()方法。还探讨了通过正则表达式(Regex)来实现此功能的方法。
2024-12-25 17:30:08
1781
原创 Java函数式编程【三】【Stream终止操作】【中】之【reduce()方法】用法详解与疑惑
归约(reduce),也称约简,顾名思义,是把一个流(Stream)中的元素聚合成一个值,能实现对集合求和、求乘积和求最值操作。实际上,终止操作sum()、max()、min()、count()等都是reduce操作,它们底层都是由reduce()实现的,将他们单独设为函数只是因为常用。本文详解Java函数式编程的终止操作reduce()方法。
2024-12-13 14:56:38
1380
原创 Java函数式编程【三】【Stream终止操作】【上】之【简单约简】
函数式编程可分为三个步骤:流的创建、流的中间操作和流的终止操作。其中流的中间操作可以有n个,而流的终止操作只能有一个。Stream的终止操作大致可分为两大类:简单约简的终止操作和复杂终止操作。本文详细介绍了八个简单约简的终止操作和forEach遍历操作。
2024-12-13 14:40:46
1154
原创 Java 函数接口Function详解与示例【函数接口Function】
Java函数式编程中Function接口是最重要的四个函数式接口之一。Function 函数式接口实现的功能:接受一个输入参数,然后产生一个输出结果。
2024-12-02 16:25:21
4299
1
原创 Java函数式编程【二】【Stream的装饰】【中间操作】【map映射器】【摊平映射器flatMap】
Java的Stream函数式编程中,中间操作是对数据流进行装饰处理,这些中间操作操作输入是流处理后输出也是流,管道流中可以链接多个中间操作。本文重点介绍了两种重要的中间操作:映射器map映射器和flatMap摊平映射器。
2024-12-02 16:14:50
1113
原创 Java 函数接口UnaryOperator和BinaryOperator介绍与示例【函数式编程】
函数式编程中除了四大最常用的基本函数接口外(Function,Consumer,Predicate,Supplier),还有其它派生的函数接口,它们扩展了基本函数接口,例如本文将要介绍的一元操作符接口UnaryOperator (extends Function)和二元操作符接口BinaryOperator (extends BiFunction)。
2024-11-27 16:47:56
1160
原创 Java函数式编程基础之【Lambda表达式】语法与示例
Lambda 是一个匿名函数, Lambda 表达式是一段可以传递的代码(将代码像数据一样进行传递)。Lambda表达式其本质是函数式接口(只有一个抽象方法)的实例。它是可传递的匿名函数的一种形式:它没有名称,但它有参数列表,函数主体,返回类型,可能还有一个可以抛出的异常列表。
2024-11-27 16:43:36
519
原创 Java函数式编程基础之【Optional类】用法详解
Optional是Java中的一个类,它的作用是用于解决空指针异常的问题,它提供了一些有用的方法,可以帮助我们避免显式进行空值检测。Java中的Optional类,可以包装类型T的值,这是一个可以为null的容器对象。Java 8 引入Optional替代以前版本中的空值(null),可以避免空指针异常(NullPointerException)问题,表示一个值可能存在也可能不存在。Optional 可表示一个非空或空的Optional对象。如果一个Optional实例是非
2024-11-21 19:03:51
1431
原创 Java函数式编程与【函数接口】【Lambda 表达式】综述
函数式编程最常用的四大函数接口。函数接口,又称为函数式接口,是一个只有一个抽象方法的接口,最开始的时候又称为 SAM 型接口(Single Abstract Method)。函数式接口只能有一个抽象方法,但除此之外,函数式接口还可以包含多个默认方法、多个静态方法和多个继承自object的方法。Java 8 引入函数式接口的主要目的是支持函数式编程范式,也就是 Lambda 表达式。在 Java 中,“一切皆对象”是不可违背的宗旨,所以 Lambda 表达式是对象,而不是函数,他们必须要依附于一类特别的
2024-11-21 19:02:01
629
原创 Java 输入与输出(I\O)之打印流【PrintStream】【PrintWriter】详解
Java中的打印流可分为打印流(PrintStream)和打印写入器(PrintWriter),是两个用于输出信息到文本的类。PrintStream可以以一个节点流(FileOutputStream,ByteArrayOutputStream,或其他输出流)作为参数构造,并且提供了一系列的print和println方法用于输出各种类型的数据。字符打印流PrintWriter都可以以一个节点流(FileWriter,或其他字符输出流)作为参数构造,并且提供了一系列的print和println方法用于输出各种类
2024-11-18 10:27:45
991
原创 Java函数式编程【一】【Stream API概述】【Stream的创建】
Java 8引入的Stream API是一种处理集合数据的高级抽象,它允许以声明式的方式对集合进行操作,使得代码更加简洁和易读。Stream(流)是特定类型的数据元素形成的一个队列并支持聚合操作。 聚合操作类似数据库查询数据的SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等,是对集合运算和表达的高阶抽象。Java中的Stream并不会存储元素,而是按需计算的。Stream(流)的三种操作:创建、装饰和终止。
2024-11-18 10:22:59
800
原创 Java 函数接口Supplier【供应商接口】简介与示例
供应商接口(Supplier Interface)是 Java 8 引入的 java.util.function 包的一部分,它是Java中四个重要的函数式接口之一,常用于在 Java 中实现函数式编程。Supplier 是一个泛型的函数接口,无参数(该函数不接收任何参数),返回值类型为泛型 T,是返回结果的数据类型。 supplier函数接口可用于工厂模式。Supplier 的使用比较简单,使用场景也比较单一。
2024-11-09 15:28:48
1229
1
原创 Java 函数接口Comparator和Comparable【比较器接口】详解与示例
通常要对数据进行排序,数据对象的类需要实现 Comparable 接口。有的情形需要在不修改类本身的情况下定义多种排序规则,则可以使用 Comparator 接口。所以这两种接口均用于排序,但使用方式略有不同。Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。当一个类的自然比较顺序是固定的,使用 Comparable 是一个好的选择。例如,对于一些基本数据类型的包装类(如 Integer、Double 等),它们都实现了 Comparable 接口,具有自然的比较顺序。
2024-11-09 09:45:24
1394
原创 Java 函数接口Predicate【断言】与【谓词逻辑】详解与示例
Predicate函数式接口是Java四个重要的函数式接口(Function、Predicate、Consumer和Supplier)之一。这些接口是函数式编程的基础,Predicate又称断言接口主要用于进行条件判断(断言测试)。Java函数式编程的Stream的过滤器filter()方法的参数就是Predicate的实例。
2024-11-06 10:36:20
1687
原创 Java函数式编程基础之【Lambda表达式】疑难问题析解
Lambda表达式是Java 8 引入的一个重要特性,它是函数式编程的基础。Lambda表达式本质上是一种匿名函数(Anonymous Function),是代码块。Lambda表达式允许将函数作为方法的参数或者将代码块作为数据进行传递。匿名内部类和Lambda表达式都是在Java中可把代码块作为数据进行传递的容器,它们可以用来传递行为(函数),可作为输入参数或返回值。Lambda表达式的输入参数不能是变量,尤其是在Lambda表达式内是不可变的。这个限制是为了避免在Lambda表达式中修改外部变量
2024-11-06 10:04:52
902
原创 Java 输入与输出(I/O)之字节流、字符流与转换流
- I/O流按数据单元(粒度大小)可分为字节流(以字节为处理单元)和字符流(以字符为处理单元)。 - I/O流按数据流向分可分为输入流(只能从中读取数据,不能向其写入数据)和输出流(只能向其写入数据,不能从中读取数据)。输入流使用InpurtStream和Reader作为基类;输出流使用OutputStream和Writer作为基类。 在字节流和字符流之间可用转换流进行转换。字节流更通用,但当处理文本数据时字节流比较繁琐;使用字符流操作文本数据则更便捷一些。因此,由于使用场景不同有时候就需要转换
2024-10-25 13:51:08
471
原创 Java 输入与输出(I\O)之管道流介绍
在Java中,管道流是一种用于在两个线程之间进行通信的重要技术。管道流提供了一个单向数据流,其中一个线程将数据写入管道,而另一个线程将数据从管道读取。管道流是用来在多个线程之间进行通信的Java流。管道流也可分为字节流和字符流: - 字节管道流:PipedOutputStream 和 PipedInputStream。 - 字符管道流:PipedWriter 和 PipedReader。PipedOutputStream、PipedWriter 是管道输出流,它们是写入者/生产者/发送者;P
2024-10-25 12:35:46
930
原创 Java 输入与输出(I\O)之对象流与对象序列化
Java对象流是用于存储和读取基本数据类型数据或对象数据的输入输出流。Java的对象流可分为两种: - 1,对象输入流类ObjectInputStream 用于从数据源读取对象数据,它是可以读取基本数据类型数据或对象数据的输入流。 - 2,对象输出流类ObjectOutputStream 用于把对象写入到数据源,它是可以输出基本数据类型数据或对象数据的输出流。Java中提供了ObjectInputStream、ObjectOutputStream这两个类用于对象序列化操作,这两个类是用于存储和读取对
2024-10-25 12:32:46
1239
原创 Java 输入与输出(I\O)之字符缓冲流【BufferedReader】【BufferedWriter】详解
缓冲流是Java I/O中的一个重要概念,它可以提高文件读写的性能。由于磁盘的IO处理速度远低于内存的读写速度。为了提高文件读写性能,我们可以使用缓冲流。缓冲流使用内存缓冲区,可以一次性读取或写入大量数据,从而减少与磁盘的交互次数,提高整体性能。缓冲流有两种类型:缓冲字节流和缓冲字符流。缓冲字节流包括BufferedInputStream和BufferedOutputStream,而缓冲字符流包括BufferedReader和BufferedWriter。
2024-10-21 09:26:37
488
原创 Java 输入与输出(I/O)流之装饰流【处理流】
按照Java 输入与输出(I/O)流的处理功能:I/O流可分为低级的节点流和高级的装饰流(又称处理流)。 - 节点流是直接从数据源(数据源可以是文件、数组、内存或网络)读/写数据的输入输出流; - 装饰流(又称处理流),是指用于对一个已存在的输入输出流进行装饰的流,装饰流在不改变数据信息的情况下添加额外的增强功能。因为装饰流不会直接连接到实际的数据源,不能够直接获取数据,所以构建一个装饰流时,需要在构造函数中传入一个节点流。装饰流可进行多层嵌套装饰。
2024-10-21 08:43:55
891
原创 Java 输入与输出(I\O)之字节缓冲流【BufferedInputStream】【BufferedOutputStream】详解
缓冲流是Java I/O中的一个重要概念,它可以提高文件读写的性能。由于磁盘的IO处理速度远低于内存的读写速度。为了提高文件读写性能,我们可以使用缓冲流。缓冲流使用内存缓冲区,可以一次性读取或写入大量数据,从而减少与磁盘的交互次数,提高整体性能。缓冲流有两种类型:缓冲字节流和缓冲字符流。缓冲字节流包括BufferedInputStream和BufferedOutputStream,而缓冲字符流包括BufferedReader和BufferedWriter。
2024-10-20 23:33:03
266
原创 Java的walkFileTree方法用法【FileVisitor接口】
NIO.2的Files工具类提供了两个静态工具方法walk()和walkFileTree()可用来高效并优雅地遍历文件系统。walkFileTree()功能更强,可自定义实现更多功能:遍历目录文件、拷贝目录文件、移动目录文件和删除目录文件;也可按模式匹配查询文件。
2024-10-19 13:53:07
1086
原创 Java 输入与输出(I\O)之数据流【DataInputStream】【DataOutputStream】详解
DataInputStream和DataOutputStream是 Java的数据流,数据流是一个装饰流(处理流)。数据流在读取和写入时的顺序要一致。否则,读取的数据必定是错误的,会造成乱码。数据流DataInputStream和DataOutputStream扩展了基本输入输出流读取基本数据类型和String类型数据的功能。数据流能以一种与平台无关的方式,直接从字节输入读取或向字节输出流写出Java基本类型和String类型的数据,常用于网络传输。
2024-10-19 13:42:27
1028
原创 Java 输入与输出(I/O)流详解
Java 输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。输入/输出流是单向非缓冲的,它只支持字节流(InputStream、OutputStream)和字符流(Reader、Writer)两种。它采用阻塞模式Java通过装饰器设计模式来对I/O流进行组合,可以方便地提供了缓冲、过滤、对象序列化等特殊功能,以满足各种复杂的I/O需求。
2024-10-14 21:50:28
1958
原创 Java的File类详解
Java文件类File是java.io包下代表与平台无关的文件和目录,Java程序操作文件和目录,都可以通过File类来完成。但是访问文件内容本身,要通过输入/输出流。java.io.File类是Java用于处理文件和目录路径的类。它提供了文件和目录的创建、删除、重命名等操作。File类还可以用来获取文件和目录的属性,包括大小、修改时间,以及是否存在、是否可读可写等。Java是面向对象的语言,因此硬盘中的一个文件在Java中通过文件对象来表示,文件对象所属的类就是File类。File对象代表磁盘中实际存
2024-10-14 11:08:18
2113
原创 Java文件I/O处理之RandomAccessFile【随意存取文件】
RandomAccessFile它处理文件的方式与众不同:既可以读取文件内容,也可以向文件写出数据;而且可以随意定位到文件不同位置进行读和写。RandomAccessFile在底层把文件当作一个大型字节数组,可按字节进行索引。刚打开文件时文件指针位于文件起始处其索引为0;读取数据时文件指针随着字节的读取而往前移动指针;写出数据时文件指针也随着字节的写出而移动。当写出数据时,若文件指针超过了文件结尾,则会对字节数组自动扩容。
2024-09-28 18:43:38
1822
1
原创 码点和码元的区别--Unicode标准的【码点】和【码元】
码点(code point)与码元(code unit)是JDK 5.0开始引入的,与Unicode标准编码相关的两个专业术语。因此,在Unicode标准中每个字符的码点是唯一的。但每个字符可以有多种编码,不同编码方案的码元大小是不一样的。Unicode是通用字符编码标准是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode标准定义了三种字符编码方案:UTF-8、UTF-16、UTF-32。Unicode标准定义了一个统一的多语言文本字符集(即Unicode字符集)。
2024-09-25 21:41:40
983
原创 什么是BOM(Byte Order Mark)【字节序标记】【大端BE】【小端LE】
当文本数据在网络传输时通讯双方才需要约定字节序或传输字节序标记BOM(Byte Order Mark)。实际上,字节序(Byte Order)是一个数据编码的通用术语,不仅在字符编码方案中使用,在其他数据编码中,比如音频、视频的数据编码格式中字节序的大小端也是适用的。Unicode编码方案中UTF-8是个例外,没有大端和小端。
2024-09-25 18:48:27
935
原创 二进制文件与文本文件的区别【字符集Charset】
计算机上存储的文件在比特位上都是以二进制数字0或1表示,因此在物理层面上,文本文件和二进制文件没有本质差异,都是由数字0或1组成的比特位集合。文本文件和二进制文件,两者的差异体现在编码逻辑上,需要根据文件头中标记来区分。
2024-09-25 18:34:18
776
原创 日期和时间类【Date】【Calendar日历类】【LocalDate】Date-Time API详解
本文先介绍时间相关的基础知识:GMT - 格林尼治标准时间(Greenwich Mean Time)、UTC - 协调世界时(Universal Time Coordinated),以及时区等常识。然后重点介绍了:日期和时间类【Date】【Calendar日历类】【LocalDate】,并对Date-Time API作了详细介绍。
2024-09-19 10:51:26
1305
原创 Java 输入与输出之 NIO【NIO网络编程】探索之【五】【Selector详解】【多人聊天室例程】
NIO网络通讯程序【多人聊天室例程】,详细介绍了NIO的核心组件Selector和selectedKeys,selectedKeys它是通道Channel注册到Selector上的已注册的键的集合的子集。本文详细剖析了Selector选择器与通道相结合开发网络通讯程序的步骤,对Java网络通讯程序的开发有一定的参考价值。
2024-09-19 09:59:13
738
原创 Java 输入与输出之 NIO.2【AIO】【内存映射文件】【自动资源管理】探索之【四】
Java NIO(New IO)的另外特性:内存映射文件和try语句的自动资源管理JDK 1.4引入的缓冲区Buffer和通道Channel,以及MappedByteBuffer,为内存映射文件提供了基础。NIO Java 7 增加了一个新特性 自动资源管理的“带资源的try语句”。
2024-08-30 19:00:53
1592
原创 Java 输入与输出之 NIO.2【AIO】【Path、Paths、Files】【walkFileTree】探索之【三】
详细介绍了Java NIO.2 中Path 、Paths和 Files等两个核心类,演示了使用Path和Files一起访问文件系统,对文件和目录进行管理和操作。详细介绍了Files.newDirectoryStream方法和Files.walkFileTree方法对目录进行遍历操作。
2024-08-30 15:01:32
1645
原创 Java 输入与输出之 NIO【非阻塞式IO】【NIO网络编程】探索之【二】
Java 标准的输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。BIO全称是Blocking IO,同步阻塞式IO,是JDK1.4之前的标准IO模型。Java NIO(New I/O)是Java 1.4版本中引入的一套全新的IO处理机制,与之前的标准IO(BIO)相比,NIO具有更高的可扩展性和灵活性,特别是在网络编程和高并发场景下,表现得更为出色。本文探讨了NIO的网络通讯应用。
2024-08-27 14:13:05
1237
原创 Java 输入与输出之 NIO【非阻塞式IO】【NIO核心原理】探索之【一】
Java 标准的输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。BIO全称是Blocking IO,同步阻塞式IO,是JDK1.4之前的标准IO模型。Java NIO(New I/O)是Java 1.4版本中引入的一套全新的IO处理机制,与之前的标准IO(BIO)相比,NIO具有更高的可扩展性和灵活性,特别是在网络编程和高并发场景下,表现得更为出色。本文对NIO进行了深入的探索。
2024-08-27 14:00:26
1098
使用JDK中JavaSound音频API接口实现Java程序播放wav音频 包括例程和wav音频示例文件
2024-07-05
JSONParsingExample源码入所需JSON.simple.jar的JAR文件包
2024-06-25
Java图形图像编程例程
2022-04-24
mysql-installer-community-5.7.34.0ForWindows_x86_32-bit.msi
2021-04-22
db-derby-10.14.2.0-lib.zip
2021-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人