自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 如何使用File类自动创建文件夹?

public class AutoCreateFolder { public static void main(String[] args) { // 示例1:创建单级文件夹(当前项目下的file文件夹) String singleFolderPath = “file”;使用 File 类自动创建文件夹,核心是调用 mkdir() 或 mkdirs() 方法,其中 mkdirs() 更常用,支持创建多级目录。

2026-01-04 13:55:29 145

原创 一、为什么说Object类是所有类的超类

/ 调用Object类的toString()方法 System.out.println(obj.toString());// 调用Object类的getClass()方法 System.out.println(obj.getClass());// 获取直接父类,输出class java.lang.ObjectSystem.out.println(clazz.getSuperclass());

2026-01-04 13:53:49 216

原创 饿汉式单例和懒汉式单例的区别是什么?

饿汉式单例和懒汉式单例的核心区别在于实例创建时机和线程安全特性,具体差异如下:

2026-01-03 19:44:35 102

原创 单例模式的优点和缺点分别是什么?

单例模式的优点。

2026-01-03 19:43:40 186

原创 如何使用File类判断文件是否存在?

/ 核心判断逻辑 if (file.exists() && file.isFile()) { System.out.println(“文件存在”);核心步骤与代码示例 1. 创建 File 对象,传入目标文件的路径2. 调用 exists() 判断路径是否存在,调用 isFile() 判断该路径是否为文件3. 两个条件同时满足,即为存在的有效文件 java。

2025-12-30 08:58:55 177

原创 如何使用File类自动创建文件?

// 2. 创建文件:不存在则创建,存在则不操作 if (file.createNewFile()) { System.out.println(“文件创建成功”);核心步骤与代码示例 1. 创建 File 对象,传入目标文件路径2. 获取父文件夹路径,判断并创建父文件夹(避免因父目录不存在导致创建失败)3. 调用 createNewFile() 方法创建文件(文件不存在时创建,存在时返回 false ) java。

2025-12-30 08:57:52 553

原创 如何使用File类判断文件夹是否存在?

使用 File 类判断文件夹是否存在,需结合 exists() 和 isDirectory() 两个方法,确保路径存在且是文件夹类型。2. 调用 exists() 判断路径是否存在,调用 isDirectory() 判断是否为文件夹。- 单独使用 exists() 无法区分路径是文件还是文件夹,必须搭配 isDirectory()- 若路径不存在, isDirectory() 会直接返回 false ,因此两个方法的顺序不影响。// 定义要判断的文件夹路径。

2025-12-29 10:19:00 605

原创 File类 判断文件/文件夹状态的常用方法清单

isAbsolute() boolean 判断当前路径是否为绝对路径 与系统路径规则相关(如Windows的 C:\xxx 、Linux的 /xxx )canExecute() boolean 判断文件是否可执行 对文件夹一般返回 true (表示可进入),受系统权限控制。exists() boolean 判断路径对应的文件/文件夹是否存在 存在返回 true ,不存在返回 false。canWrite() boolean 判断文件/文件夹是否可写 受系统权限控制。

2025-12-29 10:18:25 209

原创 Java IO流的四大基类的使用场景

1. InputStream :作为所有字节输入流的父类,规范了从数据源(文件、内存、网络等)读取字节数据的行为,子类(如 FileInputStream 、 ByteArrayInputStream )基于它实现具体的字节读取逻辑,适用于图片、视频、二进制文件等所有类型数据的读取。4. Writer :作为所有字符输出流的父类,规范了向数据源写入字符数据的行为,子类(如 FileWriter 、 BufferedWriter )基于它实现具体的字符写入逻辑,适用于文本文件的写入,支持直接操作字符。

2025-12-26 10:48:46 260

原创 Java IO流的四大基类的优缺点

无缓冲设计,直接子类(如 FileInputStream )读写效率较低,需搭配缓冲处理流(如 BufferedInputStream )提升性能。- 优点:专为文本数据设计,底层自动完成字节到字符的编码转换,可直接指定字符集(如 UTF-8),避免文本乱码;- 优点:通用型极强,可处理所有类型数据(文本、图片、视频、音频等二进制文件),是整个 Java IO 的基础,子类覆盖了文件、内存、网络等几乎所有数据源的读写场景。- 缺点:只能处理文本文件,无法操作图片、视频等二进制数据,适用场景有局限性;

2025-12-26 10:48:36 188

原创 C语言常用数据结构性能核心对比

核心操作:查询、插入、删除的时间复杂度取决于树的平衡度——平衡时为O(log n),斜树(近似链表)时退化至O(n)。哈希表适合键值映射、超高频查询场景。- 插入/删除:效率高,时间复杂度O(1)(已知目标位置时),仅需修改指针指向,无需移动数据。- 空间复杂度:O(n),动态分配内存,每个节点含数据域和指针域,存在额外指针开销。- 核心操作:入队、出队均为O(1),通过头指针、尾指针直接操作,无需遍历。- 空间复杂度:O(n),占用连续内存,需提前固定大小,无额外指针开销。

2025-12-25 11:01:57 245

原创 JAVA中的重点

掌握 InputStream / OutputStream (字节流)、 Reader / Writer (字符流)的抽象方法,理解它们的设计思想是面向抽象编程,所有具体流类都继承并实现这些基类的方法。InputStreamReader 和 OutputStreamWriter 是字节流与字符流的转换桥梁,核心是指定字符编码(如 UTF-8、GBK),这是解决文本文件乱码的关键。- 字节流以 8位字节 为单位,适用于所有文件(如图片、视频、音频、二进制文件),也可处理文本文件但需注意编码。

2025-12-25 09:22:20 342

原创 如何判断file文件夹是否存在?

在 Java 中,判断 file 文件夹是否存在,核心是借助 java.io.File 类的方法,步骤如下: 1. 创建 File 对象,传入文件夹路径;2. 调用 exists() 方法判断路径对应的文件/文件夹是否存在,搭配 isDirectory() 方法可进一步确认该路径是文件夹(避免路径是文件的误判)。 核心代码示例 javaimport java.io.File; public class FolderCheck { public static void main(St

2025-12-25 09:20:59 446

原创 Java IO流的四大基类

2. OutputStream :字节输出流的顶层抽象类,所有字节输出流(如 FileOutputStream )都继承它。1. InputStream :字节输入流的顶层抽象类,所有字节输入流(如 FileInputStream )都继承它。3. Reader :字符输入流的顶层抽象类,所有字符输入流(如 FileReader )都继承它。4. Writer :字符输出流的顶层抽象类,所有字符输出流(如 FileWriter )都继承它。

2025-12-24 14:20:11 337

原创 Java IO 体系里的常用的类

InputStreamReader / OutputStreamWriter :桥接流,实现字节流和字符流的转换,可指定字符编码(如 UTF-8)。- PrintStream :字节输出处理流, System.out 、 System.err 的底层实现类,支持格式化输出。- FilterInputStream / FilterOutputStream :字节处理流的父类,用于给节点流添加额外功能。

2025-12-24 14:19:14 253

原创 请描述什么是对象序列化,并阐述对象序列化具体的相关要求

序列化后的字节序列应能在不同的操作系统(Windows/Linux)、不同的编程语言(如Java序列化的对象可被Python解析,需依赖兼容的协议)、不同的进程中被反序列化,这要求序列化协议具备平台无关性(如JSON、Protobuf、XML是跨平台的,而Java默认的序列化是语言相关的)。序列化需要完整保存对象的有效状态,即对象的实例变量(属性)数据,包括基本数据类型(int、float等)、引用数据类型(如字符串、其他对象)。- 单例对象的序列化:单例类序列化后,反序列化会生成新的实例,破坏单例特性。

2025-12-23 11:58:46 563

原创 利用IO流处理中文文件避免乱码(纯概念版,无代码)

处理纯中文文本文件:直接用字符流(如Java的Reader/Writer、Python的文件字符流),不要用字节流(如Java的InputStream/OutputStream、Python的字节流读取)。中文乱码的核心原因只有一个:处理文件时,字符的编码(将文字转字节)和解码(将字节转文字)使用了不同的字符集,或是直接用字节流处理中文却未做编码转换。- 读取文件时:明确告诉IO流,文件的实际字符集(如UTF-8、GBK),让流按照该字符集将字节解码成中文。3. 若不得已用字节流处理中文(不推荐)

2025-12-23 11:58:00 753

原创 数据结构概述

数据结构是计算机存储、组织数据的方式,旨在高效地访问和修改数据。常见的数据结构分为和。

2025-11-25 11:00:03 429

原创 数据结构核心

数据结构是计算机中组织、存储和管理数据的方式,旨在提高数据操作(如查找、插入、删除)的效率,是算法设计的基础。

2025-11-25 10:58:39 558

原创 C语言实现常用数据结构:从基础到实战

C语言中常用链表实现(避免数组队列的元素移动问题),通过头指针指向队首、尾指针指向队尾,入队时尾指针后移,出队时头指针后移,操作效率均为O(1)。链表栈则通过头插法入栈、头删法出栈,避免尾部操作的遍历开销。C语言的底层特性让这种组织逻辑变得直观,无论是连续内存的数组,还是指针串联的链表,亦或是分层存储的树,本质都是为了适配不同场景下的数据处理需求。哈希表是结合数组和链表优势的混合结构,核心思想是“键值映射”:通过哈希函数将数据的键转换为数组下标(哈希地址),直接定位存储位置,实现O(1)的平均查询效率。

2025-11-11 18:47:20 335

原创 数据结构:计算机高效处理数据的核心基石

链表则弥补了数组的不足,它通过指针将分散的内存节点串联起来,插入或删除元素仅需修改指针指向,无需移动数据,但查询时必须从表头遍历,适合数据动态增减、查询频率较低的场景,如链表式缓存的更新。数据库中的B+树索引,则通过分层存储实现高效的数据检索。因此,掌握数据结构是学习算法的基础,也是提升编程能力的核心——优秀的程序员能根据业务场景,灵活选择甚至设计数据结构,实现代码的高效与优雅。总之,数据结构是计算机处理数据的核心骨架,它贯穿于软件开发的各个领域,从底层的操作系统、数据库,到上层的应用程序、人工智能。

2025-11-11 18:44:54 509 1

原创 Java程序设计

运行时异常( RuntimeException ,未检查异常):编译器不检测,如 NullPointerException (空指针)、 ArrayIndexOutOfBoundsException (下标越界),可处理或避免。- 非运行时异常(已检查异常):编译器强制处理,如 ClassNotFoundException ,需用 try-catch 或 throws 声明。- Error:严重错误(如 StackOverflowError ),程序无法恢复,无需处理。异常(程序运行中的非正常情况)

2025-10-15 00:30:00 157

原创 Java程序设计

Collections工具类:静态方法操作集合,如 reverse() (倒置)、 shuffle() (随机排序)、 sort() (排序,自定义对象需实现 Comparable 或用 Comparator )。- 泛型:约束集合元素类型,提高安全性,语法如 List<String> list = new ArrayList<>();基本类型需用包装类,未指定则默认为 Object。

2025-10-14 00:00:00 97

原创 Java程序设计

核心方法: put(K key, V value) (添加键值对,键存在则覆盖值)、 get(K key) (按键取值)、 remove(K key) (按键删除)、 containsKey() / containsValue() (判断包含键/值)。- 遍历方式:键遍历( keySet() + get )、值遍历( values() )、键值对遍历( entrySet() + getKey() / getValue() )。实现类 线程安全 排序特性 其他特性。

2025-10-12 00:00:00 184

原创 Java程序设计

Collections工具类:静态方法操作集合,如 reverse() (倒置)、 shuffle() (随机排序)、 sort() (排序,自定义对象需实现 Comparable 或用 Comparator )。- 泛型:约束集合元素类型,提高安全性,语法如 List<String> list = new ArrayList<>();基本类型需用包装类,未指定则默认为 Object。

2025-10-11 17:45:00 175

原创 Java程序设计

核心特性:元素不可重复,依赖 hashCode() 和 equals() ( HashSet )或 compareTo() ( TreeSet )判断重复。HashSet 哈希表 无序 覆盖 hashCode() (同内容返回同哈希码)和 equals() (同内容返回 true )TreeSet 红黑树 自然排序/定制排序 元素类实现 Comparable ( compareTo() 返回0视为重复)实现类 底层结构 排序特性 去重依据。

2025-09-27 04:45:00 223

原创 Java程序设计

核心方法: add(int index, Object o) (指定下标添加)、 get(int index) (按下标取值)、 remove(int index) (按下标删除)、 set(int index, Object o) (修改下标元素)。- 遍历方式:下标遍历( for 循环+ get )、 forEach 遍历(底层为迭代器)、迭代器( Iterator 的 hasNext() + next() )。Vector 数组 是 查询快,增删慢,效率低 JDK1.0版本。

2025-09-26 05:15:00 194

原创 Java程序设计

方法: add() (添加元素)、 contains() (判断包含)、 remove() (删除元素)、 size() (获取元素个数)。- 子接口: List (有序、有下标、元素可重复)、 Set (无序、无下标、元素不可重复)、 Queue (模拟队列,先进先出)。- 特性:存储键值对( key-value ),键唯一(无序、无下标),值可重复(无序、无下标)。集合(java.util包,存储多个对象的容器)- 特性:存储任意 Object 对象。

2025-09-25 09:00:00 194

原创 Java程序设计

常用方法: add() (加)、 subtract() (减)、 multiply() (乘)、 divide(分母, 保留小数位, 取舍模式) (除,如 ROUND_HALF_UP 四舍五入)。- 构造方法: BigDecimal(String n) (推荐,避免浮点精度丢失)。- StringBuilder (JDK5.0):线程不安全,效率高。- StringBuffer (JDK1.0):线程安全,效率低。- 核心方法: append(String str)

2025-09-24 09:15:00 158

原创 Java程序设计

若 + 两端为常量,编译时直接合并(如 "a"+"b" 编译为 "ab" )。- String s2 = new String("world") :在堆和串池各创建1个对象。- String s1 = "hello" :仅在串池创建1个对象,串池已有则不重复创建。- equals(String str) :比较字符串内容(开发首选)。- split(String str) :按指定字符拆分字符串为数组。- trim() :去除前后空格(常用于字符串转基本类型前)。String类(不可变字符串)

2025-09-23 08:23:18 107

原创 Java程序设计

与String: String→包装类 用构造方法/ valueOf , 包装类→String 用 toString() /字符串拼接;- 类型对应: short→Short 、 int→Integer 、 long→Long 、 float→Float 、 double→Double 、 boolean→Boolean。- 基本类型与包装类:通过构造方法(如 new Integer(12) )、静态方法( Integer.valueOf(12) )及成员方法( i1.intValue() )转换。

2025-09-19 20:37:05 135

原创 Java程序设计

equals(Object o) :默认比较对象地址(同 == ),子类需覆盖以比较内容,覆盖需遵循自反性、非空判断、类型一致、属性逐一比较(基本类型用 == ,引用类型用 equals )。- toString() :返回对象字符串形式,子类需覆盖(拼接所有属性),与 get 方法区别: get 返回单个属性(不改变类型), toString 返回所有属性拼接的字符串。- 核心特性:位于 java.lang 包,是继承根类,其引用可存储任意对象,方法被所有类继承。

2025-09-18 16:13:40 389

原创 第十一章:其他高级主题

【代码】第十一章:其他高级主题。

2025-06-07 13:32:34 229

原创 第十章:多线程

【代码】第十章:多线程。

2025-06-07 13:31:35 179

原创 第九章:IO 流与文件操作

【代码】第九章:IO 流与文件操作。

2025-06-07 13:30:50 193

原创 第八章:常用类与工具

【代码】第八章:常用类与工具。

2025-06-07 13:29:36 397

原创 第七章:异常处理

【代码】第七章:异常处理。

2025-06-07 13:28:59 328

原创 第六章:面向对象编程(OOP

【代码】第六章:面向对象编程(OOP。

2025-06-07 13:26:40 405

原创 第五章:数组

【代码】第五章:数组。

2025-06-07 13:25:51 163

原创 第四章:函数(方法)

【代码】第四章:函数(方法)

2025-06-07 13:22:57 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除