- 博客(38)
- 收藏
- 关注
原创 JavaEE初阶网络原理-初识
本篇笔记介绍了网络原理的基础知识。从计算机的“孤岛时代”讲起,阐述了网络互连的诞生,区分了局域网(LAN)与广域网(WAN)。文章的核心内容围绕网络通信的三大基石展开:通过IP地址和端口号实现精确定位,借助统一的网络协议(如TCP/IP)实现跨设备沟通,以及通过协议分层(TCP/IP模型)和数据封装/分用机制来管理复杂的通信过程,最终让数据在网络世界中实现精准、高效的传输。
2025-08-31 14:24:04
2311
原创 JavaEE进阶-文件操作与IO流核心指南
本文是Java文件操作和IO流的学习笔记,主要包含两大核心内容:`java.io.File`类和IO流的使用。File类于管理文件属性(路径、大小等),但不负责读写文件内容。文章详细介绍了文件路径、创建删除、目录操作、重命名移动等常用方法。
2025-08-23 15:49:59
1295
原创 Java多线程进阶-死锁与面试题解析
学到这里,我们总算来到了 Java 多线程学习之旅的最后一站。在前面的笔记里,我们一起探索了锁策略、`synchronized` 的底层细节、JUC 工具包以及各种并发集合。现在,是时候挑战两个“终极 BOSS”了:1. **死锁**:并发编程中最让人头疼的噩梦。2. **面试题**:检验我们学习成果的试金石。这篇笔记的目标很明确:首先,彻底搞懂死锁的成因和避免策略;然后,整理一份相对全面的并发面试题库。这既是对整个系列知识的最终巩固,也希望能帮助自己(以及其他可能读到这篇笔记的朋友)
2025-08-22 16:10:53
1403
原创 Java多线程进阶-线程安全集合深度解析
本篇笔记通过引入Java标准集合类如ArrayList、HashMap并非线程安全,多线程环境下易导致数据错乱,详细介绍了现代Java多线程编程的新的解决方案:CopyOnWriteArrayList,BlockingQueue,ConcurrentHashMap,
2025-08-20 14:14:30
1044
原创 Java多线程进阶:JUC核心工具集详解
在前两篇笔记中,我们深入探讨了锁的底层策略以及 `synchronized` 的实现。从本篇笔记开始,我们将正式进入 `java.util.concurrent` (JUC) 工具集,去领略其提供的更强大、更灵活的并发工具。
2025-08-17 10:57:21
978
原创 Java多线程进阶-深入synchronized与CAS
本篇笔记深入到更底层的实现,去探寻synchronized的锁升级机制和无锁编程CACAS (Compare-and-Swap) 是实现“乐观锁”的原子操作,也是JUC(`java.util.concurrent`)包中许多高性能类的幕后英雄。而 `synchronized`,这个我们最熟悉的关键字,其内部为了追求极致性能而进行的优化和演进,恰恰就是对CAS等思想的应用。可以说,理解了它们,我们才能真正看懂Java并发性能优化的精髓。
2025-08-14 22:43:28
1226
原创 Java多线程进阶-从乐观锁到读写锁
这篇学习笔记旨在深入多线程的核心,我们将从**锁策略**这一基础出发,系统性地梳理现代并发编程的指导思想。这些内容,常被归纳为需要反复背诵的“八股文”。然而,真正的目标并非记忆,而是**理解**。透彻理解这些核心概念,是区分“代码牛马”与“专业懂哥”的关键。它能赋予我们编写更安全、更高性能代码的能力,以及在复杂并发场景下洞察问题本质的信心。
2025-08-13 22:05:47
1387
原创 Java多线程初阶-线程协作与实战案例
本篇笔记深入探讨Java多线程进阶技术。首先讲解`wait`/`notify`机制,实现线程间的精准协作。接着,通过实战代码剖析了多种核心并发设计模式:确保对象唯一的单例模式、解耦利器生产者-消费者模型、资源复用的线程池(并优化了其关闭机制),以及任务调度的定时器。最后总结了保证线程安全的三大核心思路,帮助开发者构建健壮的并发应用。
2025-08-08 17:27:15
1519
原创 Java多线程初阶-线程安全与同步关键字
大家好!我们进入多线程编程中最核心、最重要的:线程安全问题。这篇笔记会深入探讨线程不安全问题的根源,并详细学习Java提供的两个关键武器——`synchronized`和`volatile`——是如何帮助我们驯服并发猛兽,编写出健壮、可靠的多线程程序的。
2025-08-06 14:40:34
1317
原创 Java多线程初阶-基础概念与线程操作
本篇笔记介绍了JavaEE中的重要一站,理解和掌握多线程是提升程序性能、构建高响应应用的关键。这篇文章可以作为多线程学习之旅的起点,旨在帮助初学者建立对线程的清晰认识。内容将从“什么是线程”这个基本问题出发,探讨其与进程的区别,并动手编写第一个多线程程序。接着,会深入学习`Thread`类的常用方法,掌握如何创建、启动、中断和等待一个线程。最后,会全面解析线程的生命周期与各种状态,为后续理解更复杂的并发问题打下坚实的基础。
2025-08-02 12:59:35
1310
原创 MYSQL:JDBC编程
本篇笔记是关于Java数据库连接(JDBC)技术的全面指南。文章从JDBC的基本概念与工作原理入手,系统地讲解了从环境配置、建立连接到执行SQL和处理结果集的全过程。核心内容聚焦于PreparedStatement在防范SQL注入攻击中的关键作用,并深入对比了DataSource与DriverManager的优劣。最后,通过封装一个单例模式的DBUtil工具类,提供了一个在实际项目中进行高效、安全数据库操作的最佳实践范例。
2025-08-01 12:09:03
1353
原创 MYSQL:视图
本篇笔记介绍了MySQL视图(View)是一种虚拟表,通过封装复杂查询简化数据访问。视图不存储数据,而是动态生成查询结果。文章介绍了视图的核心应用场景,包括简化多表查询和保护敏感数据,并演示了创建视图的两种方式(使用别名或直接指定列名)。特别指出在视图中使用ORDER BY可能导致不可预期的结果,建议在查询时再排序。视图与基表数据实时联动,修改基表会影响视图,但通过视图修改数据存在限制(如错误1221)。视图是数据库操作中提高效率和安全性的重要工具。
2025-07-30 15:57:00
1385
原创 MYSQL:事务
本篇介绍了数据库事务的核心概念与应用场景,重点阐述了ACID四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。通过银行转账案例展示了事务的"全做或全不做"特性,并详细演示了SQL事务控制命令(START TRANSACTION、COMMIT、ROLLBACK)和保存点(Savepoint)的使用方法。文章还强调了事务对保证数据一致性的重要性,特别说明了在并发操作环境下如何通过隔离级别来平衡性能与数据准确
2025-07-29 15:35:54
1208
原创 MYSQL:索引
本篇笔记探讨了MySQL索引的核心。首先解释了索引如同书本目录,旨在提升查询效率。接着,详细对比了哈希表、二叉树等数据结构,阐明了InnoDB为何最终选用B+树,并介绍了其非叶子节点只存索引、叶子节点构成链表等关键特性。文章还讲解了数据页(Page)作为物理存储单元,以及聚集索引与非聚集索引的区别,并引出了回表查询和索引覆盖等重要优化概念。最后,提供了索引创建、查看、验证(EXPLAIN)和删除的实用操作指南与核心原则。
2025-07-27 12:30:03
1318
原创 MYSQL:联合查询
本篇笔记讲解了数据库的联合查询。首先阐述了其必要性及基于笛卡尔积的内部计算原理。接着详细介绍了核心的连接类型:内连接(INNER JOIN)用于获取两表完全匹配的数据;外连接(LEFT/RIGHT JOIN)以一张表为基准,确保其数据完整呈现;自连接则用于表内数据的比较。此外,还涵盖了灵活的子查询、用于合并结果的UNION,以及将查询结果直接插入其他表的操作。
2025-07-25 13:08:05
1538
原创 MYSQL:数据库设计
本篇笔记是关于MySQL数据库设计的指南。核心内容围绕范式理论展开,详细讲解了第一、第二及第三范式(1NF, 2NF, 3NF),旨在通过消除数据冗余和依赖问题,构建健壮的表结构。文章还介绍了从概念到物理实现的完整设计流程,并重点阐述了如何运用E-R图来分析和实现实体间的一对一、一对多与多对多关系,最后提供了具体的SQL建表示例。
2025-07-22 15:49:22
1257
原创 MYSQL:数据库约束
本篇笔记详细介绍了MySQL中的数据库约束,它们是保证数据完整性和准确性的关键规则。文章逐一讲解了`NOT NULL`(非空)、`DEFAULT`(默认值)、`UNIQUE`(唯一)、`PRIMARY KEY`(主键,含自增和冲突处理)、`FOREIGN KEY`(外键)以及`CHECK`约束的使用方法和重要作用。掌握这些“安全锁”,能有效防止“脏数据”,是后端开发的基本功。
2025-07-21 13:36:17
1043
原创 MYSQL:从增删改查到高级查询
本文是一篇面向初学者的MySQL数据操作指南。我们从最核心的增删改查(CRUD)入手,详细拆解了INSERT, SELECT, UPDATE, DELETE 的用法与实践技巧。在此基础上,进一步探讨了排序、分页、聚合函数、分组查询GROUP BY及HAVING过滤等高级查询功能,旨在帮助读者构建一个扎实、全面的SQL数据操作知识体系。
2025-07-20 17:33:03
2353
原创 MYSQL:表的操作
本篇笔记详细讲解了MySQL中数据表的核心操作。使用 SHOW TABLES 查看所有表;通过 CREATE TABLE (包括 IF NOT EXISTS) 创建新表,并解释了不同存储引擎 (InnoDB, MyISAM) 在磁盘上的文件差异;使用 DESC 查看表结构;通过 ALTER TABLE 修改表(添加、修改、重命名列及表名);最后介绍了使用 DROP TABLE 删除表的危险操作。
2025-07-19 14:56:29
1377
原创 MySQL:数据类型
本文是关于MySQL数据类型的综合指南,旨在帮助初学者理解和选择合适的字段类型。文章将MySQL数据类型分为数值、字符串、日期时间及二进制四大类。在数值类型中,重点介绍了INT、BIGINT和高精度DECIMAL的区别与应用场景,并建议在设计时优先考虑BIGINT以增强扩展性。在字符串类型中,详细对比了定长CHAR与变长VARCHAR,阐明了它们在空间与效率上的权衡,并解释了VARCHAR与TEXT在存储大段文本时的不同选择。最后,文章还涵盖了日期时间类型如DATETIME和TIMESTAMP的
2025-07-18 16:02:09
949
原创 MYSQL:库的操作
本文是为MySQL初学者准备的数据库操作核心指南。带你从零开始,一步步学习如何查看、创建(CREATE)、修改(ALTER)和删除(DROP)数据库。同时,我们还会深入探讨字符集(CHARACTER SET)与排序规则(COLLATE)这两个至关重要的概念,确保你为后续的数据存储打下坚实、可靠的基础。
2025-07-18 10:36:07
1214
原创 MYSQL:数据库基础
本文是面向初学者的数据库入门指南。文章首先阐释了数据库的核心作用与优势,如数据持久化、并发控制等。接着,概览了MySQL、Oracle等关系型数据库及Redis、MongoDB等非关系型数据库。重点介绍了MySQL的C/S与B/S架构、客户端工具、SQL语言分类,并初探了其内部架构与InnoDB等存储引擎,为读者构建了清晰的数据库知识框架。
2025-07-17 11:34:29
1066
原创 深入理解 Java Map 与 Set
本文将带你深入探索Java中的`Map`与`Set`。我们不仅会学习`TreeMap`和`HashMap`等常用类的核心用法,更会从二叉搜索树出发,逐步揭开其有序性的神秘面纱。最后,我们将重点剖析`HashMap`的基石——哈希表,理解其O(1)高效性能背后的哈希冲突与解决之道。
2025-07-13 21:23:12
951
原创 经典排序算法
本文是一篇面向初学者的Java排序算法学习指南。文章从排序的基本概念(如稳定性、内外排序)入手,通过思维导图清晰地展示了七大经典排序算法的分类。主体部分深入浅出地讲解了插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序及归并排序的核心思想与Java代码实现,并配有动图和图解辅助理解。特别地,文章详细探讨了快速排序的三种分区方法(Hoare、挖坑、前后指针)及其优化策略(三数取中、小区间插入排序、非递归实现)。此外,还介绍了计数排序等非比较排序的思想,并对所有算法的性能和适用场景进行了横向对比与总结。
2025-07-11 17:28:32
1053
原创 优先级队列(堆)
本文系统介绍了优先级队列及其底层实现——堆数据结构。首先阐述了优先级队列的概念,它能根据元素优先级进行操作,而非先进先出原则。接着详细讲解了堆的概念、特性、存储方式及核心操作(创建、插入、删除),并展示了如何用堆实现优先级队列。文章还深入分析了Java中的PriorityQueue类,包括其特性、构造方法、核心操作及扩容机制,同时讲解了如何处理自定义类型。最后探讨了Java对象比较机制,包括equals方法重写、Comparable接口实现和Comparator比较器的使用,以及各种比较方式的优缺点使用方法
2025-07-10 15:42:11
1282
原创 二叉树(Binary tree)
本文系统介绍了树型结构尤其是二叉树的基本概念、实现方法及其应用。树作为一种非线性数据结构,在计算机科学中有着广泛应用。文章首先阐述了树的基本定义、术语和表示方法,然后重点探讨了二叉树的特性,包括完全二叉树和满二叉树的区别、二叉树的遍历算法(前序、中序、后序、层序)及其Java实现。通过详细的代码示例,展示了二叉树的创建、遍历、节点计数等基本操作。同时,文章也介绍了二叉树的数学性质、存储方式(数组与链式结构)以及在实际问题中的应用。掌握二叉树需要理解递归思想,将复杂问题分解为子问题处理。
2025-07-04 12:08:04
1548
原创 栈(Stack)和队列(Queue)
本文深入探讨了Java中栈和队列这两种关键数据结构。栈遵循后进先出(LIFO)原则,适用于括号匹配、表达式求值等场景;队列则采用先进先出(FIFO)策略,广泛应用于任务调度和缓冲区实现。文章详细介绍了这些结构的基本原理、实现方式和典型应用,包括标准Java库实现和自定义实现。特别讨论了循环队列如何高效利用空间,以及双端队列如何兼具栈和队列的优势。通过实例代码和图解,帮助读者全面掌握这些数据结构在实际编程中的运用。
2025-07-01 20:43:00
1002
原创 LinkedList与链表
本文系统梳理了Java中线性表的两大核心实现:ArrayList与LinkedList。文章首先分析了ArrayList的底层原理及其在插入、删除操作上的局限,随后详细介绍了链表的结构分类、单向链表的实现与测试,并深入解析了Java标准库LinkedList的底层机制、常用方法及遍历方式。通过对比两者的特性和应用场景,帮助读者全面理解顺序表与链表的优劣及适用场合,为后续数据结构学习和实际开发提供坚实基础。
2025-07-01 10:04:48
1241
原创 ArrayList与顺序表
本篇笔记系统梳理了 Java 中线性表的核心实现——ArrayList 及顺序表。内容涵盖 List 接口基础、顺序表原理与手动实现、ArrayList 的底层机制、常用操作、扩容机制及实际应用示例(如扑克牌洗牌与发牌)。通过源码分析与动手实践,帮助读者深入理解线性表在 Java 集合框架中的地位与实现细节,为后续学习和开发打下坚实基础。
2025-06-30 09:00:00
982
原创 Java 集合框架与泛型
本文系统梳理了Java集合框架与泛型的核心知识,包括集合框架的结构、常用容器及其底层数据结构、算法与复杂度分析、包装类与泛型的基本用法。内容涵盖集合接口与实现、常见数据结构、算法效率衡量标准(时间复杂度、空间复杂度)、泛型类和泛型方法的实际应用与语法。通过丰富的示例和图示,帮助读者理解Java集合与泛型的设计思想及其在开发中的实际意义。
2025-06-29 10:45:07
1260
原创 Java--异常
本文系统梳理了Java异常的概念、体系结构、处理方式、处理流程及自定义异常类。内容涵盖异常的分类、常见异常示例、LBYL与EAFP两种编程风格、throw/throws/try-catch-finally的用法、异常传递与调用栈分析,并通过代码实例讲解了自定义异常类的定义与应用,帮助读者全面理解和掌握Java异常处理机制,提升程序健壮性和可维护性。
2025-06-25 19:29:24
1203
原创 Java--String类
本文系统梳理了 Java 中 String 类的核心知识,包括 String 的不可变性、常用方法、字符串常量池、与 StringBuilder、StringBuffer 的区别及性能对比。强调了 String 不可变带来的安全性和效率优势,建议在频繁拼接场景下优先使用 StringBuilder 或 StringBuffer。文中配有源码解析、字节码分析、方法对比表和实用示例,帮助读者高效掌握字符串操作的原理与最佳实践。
2025-06-24 23:55:40
2267
原创 Java--抽象类和接口
本文系统梳理了Java抽象类和接口的核心概念、语法、特性及区别,结合丰富实例讲解了如何通过抽象类实现代码复用和统一规范,通过接口实现多继承和能力扩展。文中还详细介绍了Object类的常用方法(toString、equals、hashCode),并通过代码对比说明了对象内容比较与哈希值的正确用法。内容结构清晰,适合初学者理解Java面向对象编程的基础与实践。
2025-06-23 16:08:45
1274
原创 Java--多态
本文介绍了面向对象编程中的多态特性,重点分析了多态的概念、实现条件及方法重写机制。多态指同一行为在不同对象上呈现不同状态,如汽车和飞机执行"行驶"时表现不同。实现多态需满足三个条件:继承体系、子类重写父类方法、通过父类引用调用方法。文章详细对比了方法重写(Override)与重载(Overload)的区别,并阐述了向上转型(子类对象作为父类引用使用)的三种应用场景。通过代码示例展示了多态在实际编程中的应用,强调了运行时动态绑定的特性。
2025-06-20 14:41:34
853
原创 Java--继承
本文详细讲解了Java中的继承特性,涵盖其定义、语法、分类(如单继承、多层继承)及final关键字的使用。介绍了super关键字在访问父类成员、调用父类方法和构造方法中的作用,以及初始化过程中父子类的执行顺序。还探讨了protected关键字的访问权限特性,并对比了继承与组合的设计模式。继承体现is-a关系,适合类层次结构;组合通过has-a关系实现灵活的代码复用,降低耦合度。文章结合代码示例,分析了两者的适用场景,建议优先使用组合以提升系统灵活性与稳定性,适合初学者学习Java面向对象编程。
2025-06-19 14:04:23
1292
原创 Java--类和对象(下)
本文深入探讨了Java面向对象编程中的封装特性及相关概念。主要内容包括:封装的定义与实现机制(访问限定符),包的概念与使用(导入、自定义包、访问控制),static成员(变量与方法)的特性与初始化方式,代码块的分类(普通、构造、静态)及初始化顺序,内部类简介,以及如何通过重写toString()方法实现对象的属性打印。文章通过类比现实世界电器操作面板等通俗示例,帮助理解封装的核心思想,并详细分析了各类语法特性的使用场景和注意事项,为Java初学者提供了全面的知识点梳理。
2025-06-18 14:56:59
872
原创 Java--类和对象(上)
本文摘要: 本文系统介绍了Java面向对象编程的核心概念。首先对比了面向过程与面向对象思维方式的差异,强调对象交互的编程范式。重点讲解了类的定义与实例化,包括成员变量、方法的声明使用,以及通过new关键字创建对象的过程。详细剖析了this引用的作用机制及其在成员方法中的特性。最后深入解析对象初始化过程,涵盖构造方法的重载、默认初始化、就地初始化等关键知识点,并提供了IDE快速生成构造方法的实用技巧。全文以日期类为例贯穿始终,帮助读者理解从类设计到对象使用的完整生命周期。
2025-06-17 16:15:02
1010
1
空空如也
lingo代码错误11
2023-08-14
关于#MATLAB#的问题,如何解决?
2023-08-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅