自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 跟 Java 聊聊 “文件那点事儿”:从不会 IO 到敢操作文件的小笔记

File类中的多个属性,构造方法和方法,我会着重讲解几个常见的,也是学文件操作比较重要的。构造方法签名说明根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例根据⽂件路径创建⼀个新的 File 实例,路径可以是绝对路径或者相对路径根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例,⽗⽬录⽤路径表⽰属性修饰符及类型属性说明依赖于系统的路径分隔符,String类型的表⽰依赖于系统的路径分隔符,char 类型的表示疑问,为什么在Windonws上分隔符是\而其他系统上不是呢?

2025-10-26 23:51:00 438

原创 TreeMap 和 TreeSet 笔记

每个节点包含三个部分:存储的值(val)、左子节点引用(left)、右子节点引用(right)。通过构造方法初始化节点值,左、右子节点默认为 null。//存储的值(val)//左子节点引用(left)//右子节点引用(right)//通过构造方法初始化节点值对比项TreeSetTreeMap存啥单个元素(Key)键值对(Key-Value)核心能力元素自动排序 + 去重键自动排序(值可重复)排序规则元素自带或自定义键自带或自定义底层结构。

2025-10-20 21:51:02 971

原创 HashTable、HashMap、ConcurrentHashMap 三者区别详解

单线程用HashMap,追求极致性能,用于单线程环境或无并发修改的场景较为合适;多线程用,兼顾安全与效率,切能在保证线程安全的同时,实现了接近 HashMap 的性能;HashTable已被时代淘汰,我觉得应该尽量避免使用。

2025-10-19 16:22:00 321 1

原创 深入理解 Java 中的 synchronized 关键字

特点:通过创建独立的锁对象,实现 “不同资源用不同锁”,避免锁竞争。适用场景:需要保护多个独立共享资源,且希望不同资源的同步操作互不干扰。//通过创建独立的锁对象,实现 “不同资源用不同锁”,避免锁竞争)。// countA专用锁// countB专用锁// 操作countA,仅锁定lockAcountA++;// 操作countB,仅锁定lockBcountB++;

2025-10-13 17:50:49 559

原创 Java 线程池详解:参数、流程与实战

在 Java 并发编程中,线程池是绕不开的核心组件。它通过预先创建线程并复用,避免了频繁创建 / 销毁线程的性能开销,同时能有效控制并发线程数量,防止资源耗尽。今天我们就从核心参数、工作流程和实战用法三个维度,彻底搞懂线程池。Java 中所有线程池的底层实现都是 ThreadPoolExecutor(位于 java.util.concurrent 包),它的构造方法定义了线程池的核心行为。先看最完整的构造函数:这 7 个参数决定了线程池的 “性格”,我们逐个拆解:工厂模式也是一种设计模式,和单列模式是并

2025-10-11 18:39:51 1048

原创 单例模式的两种基础实现:饿汉式与懒汉式(线程安全版)

汉式和懒汉式是单例模式最基础的两种实现,核心区别在于实例初始化时机和线程安全保障方式饿汉式通过 “类加载即初始化” 和 JVM 的线程安全机制,实现简单且性能优异,但可能浪费资源;懒汉式通过 “延迟加载” 和同步,避免资源浪费,但存在锁开销,适合低并发场景。选择时需根据实例资源消耗和并发量决定:轻量实例优先饿汉式,重量级实例且并发低时选懒汉式。这两种方式为更复杂的单例实现(如双重检查锁、静态内部类)奠定了基础,理解它们的原理是掌握单例模式的关键。

2025-09-30 17:04:50 727

原创 深入理解线程安全:原因剖析与解决方案总结

在多核 CPU 普及的今天,多线程编程已成为提升程序性能的重要手段。然而,线程安全问题却像一颗隐形炸弹,随时可能导致数据错乱、程序异常甚至系统崩溃。本文将系统剖析线程安全问题的根源,并给出切实可行的解决方案,帮助开发者写出更健壮的并发程序。当多个线程同时访问某个对象时,无论线程的调度方式如何,无需额外的同步操作,这个对象都能表现出正确的行为。反之,若多个线程访问共享资源时出现数据不一致、逻辑错乱等问题,则称为 “线程不安全”。

2025-09-30 11:27:39 575

原创 Java 线程状态全解析:从创建到终止的生命周期

NEW和TERMINATED是线程的起点和终点RUNNABLE是线程 “活跃” 的核心状态是线程 “暂停” 的不同场景(锁竞争、无限等待、有限等待)握这些状态有助于调试并发问题(如线程卡死可能是WAITING状态未被唤醒),是编写高效并发程序的基础。

2025-09-26 13:04:56 854

原创 Java Thread 类基本用法总结

线程创建线程中断线程等待线程休眠获取线程实例Thread类线程创建:继承Thread类或实现Runnable接口线程中断:通过interrupt()设置中断标志,isInterrupted()判断中断状态线程等待:使用join()方法等待其他线程完成线程休眠:使用sleep()方法暂停线程执行获取线程实例:通过currentThread()获取当前线程掌握这些基本用法是进行多线程编程的基础,但在实际开发中,还需要注意线程安全、资源竞争等问题。

2025-09-25 11:20:16 744

原创 Java 优先级队列与堆:实现与应用

当存储自定义对象时,需要指定比较规则,可以通过让对象实现Comparable接口或提供Comparator// 任务类// 优先级,数字越大越重要// 实现Comparable接口,按优先级升序排列@Override@Overridereturn name + " (优先级: " + priority + ")";// 使用自然顺序(按优先级升序)// 添加任务minPriorityQueue.add(new Task("打印文件", 2));

2025-08-06 13:45:37 1825

原创 Java面向对象编程核心:类与对象详解

面向对象编程(OOP)是一种以对象为核心来模拟现实世界的编程范式。它通过定义类来抽象事物的属性和行为,再通过类创建对象实例来具体化事物。对象之间通过方法调用进行交互,从而实现对复杂问题的建模和解决,这种方式更符合人类对现实世界的认知,能够有效提高代码的可维护性和可扩展性。类是创建对象的模板,定义了对象的属性和行为。属性(成员变量):描述对象的状态方法:定义对象的操作构造方法:用于初始化新创建的对象(后面详细讲解)// 属性(成员变量)// 姓名// 年龄// 成员方法(行为):获取信息。

2025-06-20 16:57:06 1884

原创 从零开始学 Java:从语言特性到程序基础

本文系统介绍了Java编程语言的基础知识。第一部分梳理了Java的发展历程,从1995年诞生至今的演进过程,并分析了其安全、高效、易维护的核心优势以及与C/C++的区别。第二部分详细讲解了Java程序的起点——main方法,包括其标准格式、执行示例和运行原理。第三部分阐述Java基础语法,包括注释的三种类型、标识符的命名规则和关键字的特殊作用。全文以简明扼要的方式为初学者构建了Java学习的知识框架,涵盖语言特性、程序结构和基础语法等核心内容,为后续深入学习奠定基础。

2025-06-13 15:19:10 1337 1

空空如也

空空如也

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

TA关注的人

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