- 博客(78)
- 收藏
- 关注
原创 【IO流系列】PrintStream 和 PrintWriter 打印流
PrintStream 和 PrintWriter 都是 Java 中用于输出数据的打印流类,它们分别位于 java.io 包中。- PrintStream 是字节打印流类,继承自 OutputStream 类。- PrintWriter 是字符打印流类,继承自 Writer 类。
2024-03-01 03:23:35 2398
原创 【IO流系列】ObjectStream 序列化流与反序列化流
Java 提供了一种对象**序列化**的机制。用一个字节序列可以表示一个对象,该字节序列包含该`对象的数据`、`对象的类型`和`对象中存储的属性`等信息。字节序列写出到文件之后,相当于文件中**持久保存**了一个对象的信息。 反之,该字节序列还可以从文件中读取回来,重构对象,对它进行**反序列化**。`对象的数据`、`对象的类型`和`对象中存储的数据`信息,都可以用来在内存中创建对象。
2024-03-01 00:40:54 1329
原创 【IO流系列】ConvertStream 转换流
转换流是 Java 中用于在字节流和字符流之间进行转换的一种特殊流。在处理数据时,有时候需要将字节流转换为字符流或字符流转换为字节流,这时就可以使用转换流来实现这种转换。转换流通常用于处理不同类型的数据,比如将字节流转换成字符流,或者将字符流转换成字节流。
2024-02-29 20:44:25 917
原创 【IO流系列】BufferedStream 缓冲流
`缓冲流`(Buffered stream)是指在输入输出流的基础上加入了缓冲机制,通过缓冲来提高读写性能的一种流。在进行数据读写时,缓冲流会先将数据暂存在`缓冲区`中,当`缓冲区`满了或者达到一定条件时才会将数据写入到文件或从文件中读取数据,这样就减少了实际的读写次数,提高了读写效率。使用缓冲流可以有效地减少对磁盘的访问次数,避免频繁的IO操作,从而改善程序的性能。
2024-02-29 01:50:27 1291
原创 【IO流系列】FileWriter 字符输出流
`java.io.FileWriter `类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。`FileWriter` 是用于写入字符数据到文件的字符输出流。
2024-02-27 23:07:05 1276
原创 【IO流系列】FileReader 字符输入流
`FileReader `是 Java 中的字符输入流,用于从文件中读取字符数据。它继承自 `InputStreamReader `类,实现了 `Closeable` 接口。`FileReader `主要用于读取文本文件的内容,一次读取一个字符或者一个字符数组。
2024-02-27 22:39:06 1044
原创 【IO流系列】编码和解码
编码和解码是在数据传输、存储和处理过程中常见的概念,用于将数据从一种形式转换为另一种形式。在计算机科学领域中,编码(Encoding)指的是将数据转换为另一种格式的过程,而解码(Decoding)则是将已编码数据还原为原始格式的过程。
2024-02-27 21:19:54 1029
原创 【IO流系列】字符集
字符集是一种将字符映射到数字编码的规则集合,用于在计算机中表示和存储文本数据。不同的字符集定义了不同字符与数字编码之间的对应关系,以支持不同语言的文字、符号和特殊字符。
2024-02-27 20:45:43 987
原创 【IO流系列】IOException IO流异常
`IOException(Input/Output Exception,输入/输出异常)`是 Java 编程中常见的异常类型之一。它是 java.io 包中定义的一个异常类,通常用于处理输入/输出操作时可能发生的异常情况。`IOException `表示在进行输入和输出操作时发生了异常,例如文件读写时遇到问题、网络通信中出现异常等。它是一个 checked 异常,意味着在编写代码时必须`显式处理或抛出`该异常,以避免编译错误。
2024-02-18 17:03:45 3556
原创 【IO流系列】FileInputStream 字节输入流
FileInputStream 是 Java IO 包中的一个类,它是字节输入流的一种。它用于从文件中读取数据,以字节为单位进行读取。
2024-02-18 17:03:14 2799
原创 【IO流系列】FileOutputStream 字节输出流
`FileOutputStream` 是 Java 中用于向文件写入字节数据的输出流类。它用于创建一个文件输出流,该流用于将数据写入文件。
2024-02-17 16:23:14 2492
原创 【IO流系列】32.IO流
`IO(Input/Output)流`是计算机程序用于与外部设备进行数据交换的一种抽象概念。它是计算机输入输出操作的一种方式,常见于文件和网络通信等场景。IO流可以分为输入流和输出流两种类型。输入流用于从外部设备(如键盘、文件、网络等)读取数据到程序中,而输出流则用于将程序中的数据写入到外部设备中。
2024-02-17 14:20:11 1000
原创 31.File文件
`java.io.File` 是 Java 中用于表示文件或目录的类。它提供了操作文件和目录的方法,例如创建、删除、重命名等。File 类中的对象可以用来访问文件的属性,如文件路径、名称、大小等。
2024-02-15 14:41:18 949
原创 30. 异常
在Java中,错误(Error)类和异常(Exception)类都是继承自Throwable类,用于表示程序中出现的问题或异常情况。我们平常说的异常就是指`Exception`,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。
2024-02-14 18:31:07 978
原创 29.方法引用
方法引用是 Java 编程语言中的一种特性,它提供了一种简洁的语法来直接引用现有的方法。方法引用可以被认为是 Lambda 表达式的一种缩写形式,用于将方法作为参数传递或在函数式接口中使用。方法引用可以简化代码,使得代码更加易读和模块化。它经常用于函数式接口、流操作和方法链式调用等场景。
2024-02-14 00:49:16 1234
原创 28.Stream流
Stream流是Java 8引入的一种新的数据处理方式,它可以用来处理集合(包括单列集合和双列集合)和数组中的数据。它提供了一种优雅、声明式的方式来对数据进行操作和处理,简化了对集合和数组的遍历、过滤、映射、排序等操作。
2024-02-13 20:22:13 1043
原创 27. 不可变集合
不可变集合是指一旦创建就不能被修改的集合对象。在不可变集合中,所有的操作都不会对原始集合对象进行更改,而是返回一个新的集合对象。
2024-02-13 12:41:56 989
原创 26. 可变参数和Collection集合工具类
可变参数(Variable Arguments)是指在参数列表中允许传入不定个数的参数。在许多编程语言中,可变参数通常用于传递相同类型的参数,并且允许传入任意个数的参数。`Collections` 是 Java 编程语言中提供的一个集合工具类,位于 `java.util` 包中。它提供了一系列静态方法,用于对集合进行常见的操作和算法实现。
2024-02-09 14:43:45 1313
原创 【集合系列】TreeMap 集合
TreeMap 是 Java 中的一个集合类,它实现了 SortedMap 接口。它是基于红黑树的数据结构实现的,它能够保持其中的元素处于有序状态。
2024-02-08 22:22:21 1154
原创 【集合系列】LinkedHashMap 集合
LinkedHashMap 是 Java 中的一种特殊类型的 HashMap,它继承自 HashMap 类,并实现了 Map 接口。它是一个有序的集合,它保留了元素插入的顺序,并且允许使用它们的插入顺序进行迭代。与普通的 HashMap 不同,LinkedHashMap 使用了一个双向链表来维护元素的插入顺序。这个链表将所有的条目按照插入的顺序连接在一起。这样一来,通过迭代链表,我们可以遍历 LinkedHashMap 这个有序集合。
2024-02-08 17:06:15 1101
原创 【集合系列】HashMap 集合
HashMap 是 Java 中的一种集合类,它实现了 Map 接口。HashMap 使用键值对存储数据,每个键值对被称为一个 Entry(条目)。HashMap 使用哈希表来存储数据,因此能够在 O(1) 时间复杂度下进行插入、删除和查找操作。
2024-02-08 14:25:20 990
原创 【集合系列】Map 双列集合
Map是Java中的一种数据结构,用于存储键值对(key-value pair)。它是一个接口,实现了将键映射到值的功能。Map接口是一个泛型接口,可以指定键和值的类型。
2024-02-07 22:17:47 833
原创 【集合系列】TreeSet 集合
TreeSet是Java中的一个有序集合,它实现了Set接口。它使用红黑树数据结构来存储元素,并且保证元素按照升序排列。每个元素都必须是可比较的,或者在创建TreeSet时提供一个定制的Comparator来比较元素。
2024-02-05 22:35:36 936 4
原创 【集合系列】LinkedHashSet 集合
LinkedHashSet是Java集合框架中的一种集合实现,它是HashSet和LinkedHashMap的结合体。它通过使用哈希表和双向链表来实现元素的存储和维护插入顺序。
2024-02-05 18:21:43 988
原创 【集合系列】HashSet 集合
HashSet是Java中的一个集合类,它实现了Set接口。HashSet基于哈希表实现,其中的元素没有固定的顺序,且不允许包含重复的元素。
2024-02-05 18:01:27 1029
原创 【集合系列】Set集合
Set(集合)是一种不允许重复元素且无序的数据结构。它是许多编程语言中的内置数据类型,用于存储一组唯一的元素。与列表或数组不同,集合中的元素没有特定的顺序,并且不能通过索引访问。
2024-02-05 14:23:22 1136
原创 4. 树(二叉树、二叉查找树/二叉排序树/二叉搜索树、平衡二叉树、平衡二叉B树/红黑树)
二叉树是一种常见的树状数据结构,由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉查找树(Binary Search Tree,BST)是一种特殊的二叉树结构,在这种树中,每个节点的值都大于其左子树中的任何节点的值,且小于其右子树中的任何节点的值。这使得二叉查找树具有高效的搜索和插入操作。平衡二叉树(Balanced Binary Tree),也称为 AVL 树(平衡二叉搜索树),是一种特殊的二叉查找树,它的特点是每个节点的左子树和右子树的高度差不超过1。
2024-02-04 19:47:27 1039
原创 25.泛型
泛型是Java编程语言的一项重要功能,它允许开发人员在定义类、接口和方法时使用类型参数。使用泛型可以实现类型的参数化,使代码更加灵活和可重用。
2024-02-02 13:08:53 2456
原创 【集合系列】LinkedList集合
LinkedList 是 Java 中的一种集合类,它实现了 List 接口。它是一个双向链表,每个元素都包含指向前一个元素和后一个元素的引用。LinkedList 允许快速插入和删除元素,但访问特定元素的效率相对较低。LinkedList集合:底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快的
2024-02-01 13:35:13 825
原创 【集合系列】List集合
List是Java中一种常用的数据结构,它是一种有序的集合,可以存储任意类型的对象。List允许重复的元素,并且可以根据索引位置访问和操作元素。它提供了一系列方法来添加、删除、获取和修改元素,以及其他一些常见的操作,比如查找、排序等。List是一个接口,Java提供了多个实现List接口的类,常见的有ArrayList和LinkedList。
2024-01-30 10:33:29 913
原创 24.集合的遍历(单列集合、双列集合)
迭代器遍历是一种在编程中常用的集合遍历方式。迭代器是一种对象,用于按顺序访问集合中的元素,并且可以进行元素的增删操作。迭代器提供了一种统一的访问集合元素的方式,不依赖于集合的具体实现。增强for循环(Enhanced for Loop),也被称为for-each循环,是Java中一种用于遍历集合或数组元素的简化循环结构。它提供了一种更简洁、易读的方式来遍历集合中的元素,无需手动使用索引或迭代器。Lambda表达式是Java 8引入的一种函数式编程的特性,它提供了一种更简洁、灵活的方式来表示匿名函数。
2024-01-28 18:18:18 1438
原创 【集合系列】Collection单列集合
在 Java 集合框架中,`Collection` 是一个接口,它代表了一组对象的集合。`Collection` 接口是所有集合类的根接口,定义了集合的基本操作和功能。`Collection` 接口有多个继承接口,包括 `List`、`Set` 和 `Queue` 等。这些子接口扩展了 `Collection` 接口,提供了更多特定类型集合的操作。例如,`List` 接口表示一个有序的集合,允许重复的元素;`Set` 接口表示一个无序且不允许重复元素的集合;`Queue` 接口表示一个先进先出的队列。
2024-01-28 16:25:49 801
原创 23. 集合类
为了在程序中保存数目不确定的对象,Java提供了一系列特殊的类,这些类可以存储任意类型的对象,并且长度可变,这些类统称为集合。集合类位于`java.util`包中,使用时必须导包。Java 集合框架是用于存储、操作和处理数据集合的一组类和接口。它提供了一种灵活、有效和方便的方式来管理数据。
2024-01-28 15:59:44 608
原创 22.Lambda 表达式
Lambda 表达式是一种在编程中用来表示匿名函数的简洁语法。它是基于函数式编程风格的一种特性,最初在Java 8中引入。Lambda 表达式允许开发者将函数作为方法参数传递或者以内联的方式定义,并且可以使用函数式接口进行类型推断。
2024-01-26 21:14:28 1020
原创 21.Arrays类
Arrays类是Java中的一个工具类,位于java.util包中。它提供了一组静态方法,用于操作数组。通过Arrays类,我们可以对数组进行复制、填充、排序以及查找等常见操作。
2024-01-26 19:53:41 1258
原创 【排序算法系列】快速排序
快速排序是一种高效的排序算法,它采用了分治的策略。**基本思想**是选择一个基准数,通过一趟排序将待排序序列划分成两个子序列,其中一个子序列的所有元素小于基准数,另一个子序列的所有元素大于基准数。然后对这两个子序列递归地应用快速排序算法,直到子序列的长度为1或0,即达到最终的排序结果。
2024-01-24 19:04:50 1037
原创 【递归算法系列】递归算法
递归算法是一种通过在函数中调用自身来解决问题的方法。常用于解决需要重复执行相似操作的问题,例如树、图等数据结构的遍历,以及分治、动态规划等算法。递归算法的**基本思想**是将大问题划分为一个或多个具有相同结构的子问题,并通过递归调用函数来解决这些子问题。每个子问题的解最终汇总起来,从而得到原始问题的解。
2024-01-24 16:41:24 416
原创 【排序算法系列】插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过创建有序序列和无序序列,然后再遍历无序序列得到里面每一个数字,把每一个数字插入到有序序列中正确的位置。插入排序是一种简单直观的排序算法,其**基本思想是**将未排序的元素逐个插入到已排序序列中的正确位置,从而构建有序的序列。
2024-01-24 15:33:01 539
原创 【排序算法系列】选择排序
选择排序是一种简单直观的排序算法,它的思想是每次从未排序的部分中选择最小(或最大)的元素,并将其放到已排序部分的末尾。通过重复这个过程,直到整个数组排序完成。选择排序的时间复杂度是O(n^2),其中n是数组的长度。与冒泡排序相比,选择排序的交换操作更少,因此在实际应用中可能稍微快一些。然而,选择排序每次只找到一个最小值(或最大值),并将其放到正确的位置,因此在大规模数据排序时,选择排序的效率仍然相对较低。
2024-01-23 23:00:33 626 2
前端html、css、js、可视化工具等网页设计课程设计
2024-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人