- 博客(11)
- 收藏
- 关注
原创 多线程奇幻漂流:从单核到多核质变(一)
本文系统讲解了Java多线程编程的核心知识。主要内容包括:1)线程与进程的区别,线程作为CPU调度基本单位具有更高效率;2)线程五大特性(调度、状态、优先级、记账信息、上下文);3)五种线程创建方法(继承Thread类、实现Runnable接口等);4)前台线程与后台线程的区别及使用场景;5)线程使用外部变量的注意事项;6)join()方法实现线程等待机制。文章通过生动比喻和代码示例,帮助读者深入理解多线程编程原理,掌握线程控制的关键技术,提升程序并发执行效率。
2025-10-03 03:50:45
1289
8
原创 优选算法——双指针算法:程序员的“左右互搏术”
双指针算法是解决数组和链表问题的利器,通过两个指针协同工作高效处理数据。本文介绍了双指针的多种应用场景:1. 移动零问题:使用快慢指针将非零元素前移,时间复杂度O(n);2. 复写零问题:方案一创建新数组简单直观但空间复杂度高,方案二原地修改更高效;3. 快乐数判断:快慢指针检测循环;4. 盛水容器:对向指针计算最大容量;5. 有效三角形个数:排序后固定一边,双指针寻找另外两边;6. 两数之和:对向指针在有序数组中快速查找;7. 三数之和:排序后固定一个数,转化为两数之和问题。双指针算法能有效降低时间复杂度
2025-09-18 21:28:22
2358
2
原创 数据库入门——从敬畏到亲密指南(主攻MYSQl)
简单来说,数据库就是一个有组织的数字文件柜,专门用来存储、管理和检索信息。但它比物理文件柜聪明得多:· 它知道每份文件在哪里· 它可以瞬间找到所有相关文件· 它可以防止你放入错误类型的文件· 它可以同时让多人访问而不会混乱。
2025-09-18 16:43:28
1362
3
原创 JAVASE——初认识java
本文介绍了Java语言的基础知识。第一章概述Java的发展历史和重要性,解释JavaSE和JavaEE的区别与应用场景。第二章详细阐述Java的11大特性,包括跨平台性、面向对象、安全性等。第三章讲解Java程序的基本结构,演示main方法的使用,并说明JDK、JRE、JVM的关系。第四章介绍代码注释规范和标识符命名规则,强调编程规范的重要性。文章系统性地介绍了Java语言的核心概念和基础语法,为初学者提供全面的入门指导。
2025-09-16 15:50:34
726
原创 深入理解常见的排序算法:从原理到实现 (上)
本文系统介绍了常见的排序算法及其Java实现。首先详细讲解了插入排序类算法,包括直接插入排序(时间复杂度O(n²))和希尔排序(时间复杂度约O(n^1.3)),通过生动的排队比喻解释其原理。接着分析选择排序类算法,包括直接选择排序(O(n²))和堆排序(O(nlogn))。然后介绍交换排序类算法,如冒泡排序(O(n²))和重点讲解的快速排序(平均O(nlogn)),详细阐述了快速排序的三种实现方法(挖坑法、Hoare法、前后指针法)及优化技巧(三数取中、小数组插入排序)。最后对比了各算法的性能特点、适用场景
2025-09-10 22:22:40
1193
6
原创 巧学数据结构——栈与队列
本文系统讲解了栈和队列这两种基础数据结构。栈是后进先出(LIFO)结构,如叠盘子,支持压栈、弹栈操作;队列是先进先出(FIFO)结构,如排队,支持入队、出队操作。文章详细介绍了Java实现方式,包括数组版栈和双链表版队列,并重点讲解了循环队列的实现原理。此外,还列举了经典应用场景,如括号匹配、逆波兰表达式求值等,并提供了常见面试题的解决方案。最后总结了两者的适用场景:栈适合撤销、回溯等操作,队列适合任务调度、消息传递等场景。
2025-09-07 16:39:40
813
2
原创 巧学数据结构——链表算法题
本文总结了链表操作的常见算法及解题思路: 删除指定值节点:通过遍历链表,先处理中间节点再处理头节点,时间复杂度O(n),空间O(1) 反转链表:提供递归和迭代两种解法,递归法空间O(n),迭代法空间O(1),均需调整节点指针 快慢指针应用: 找中间节点:慢指针走1步,快指针走2步 环形链表检测:快慢指针相遇即有环 找环入口:相遇后重置慢指针,同步移动 链表合并:双指针遍历两个有序链表,按序连接节点 链表分割:维护两个子链表(小于x和大于等于x),最后合并 回文判断:快慢指针找中点+反转后半部分+同步比较 相
2025-08-22 00:52:45
1109
1
原创 巧学数据结构——链表
本文深入探讨链表数据结构及其实现。首先解析了链表的本质特征,包括节点组成、存储方式和主要类型(单链表、双链表、循环链表)。重点演示了单链表的实现过程,涵盖节点定义、创建、遍历、插入、删除等核心操作,并详细讲解了两种反转链表的算法(递归法和迭代法)。随后介绍了快慢指针技术在链表问题中的应用,包括查找中间节点、倒数第k个节点以及合并有序链表。最后阐述了双链表的实现原理及其优劣势分析,特别强调了双链表在双向遍历和高效删除方面的优势。全文通过大量代码示例和算法图解,系统性地讲解了链表的关键概念和实用技巧。
2025-08-17 18:07:01
2259
6
原创 巧学数据结构2——顺序表
顺序表是基于数组实现的功能更丰富的线性结构,支持动态扩容和高效访问。摘要包括:1)顺序表定义:连续存储的线性结构,通过数组实现增删查改;2)实现要点:包含基本数组、容量管理、异常处理及增删查改等方法;3)Java的ArrayList特性:支持泛型、随机访问和动态扩容,但非线程安全;4)使用技巧:注意subList的引用特性、迭代器遍历方式;5)应用实例:演示杨辉三角生成和洗牌算法实现。顺序表是理解数据结构的基础,其核心在于连续存储、动态扩容和O(1)随机访问能力。
2025-08-14 21:23:15
1106
原创 巧学数据结构1--复杂度 包装类 泛型
本文以通俗易懂的方式讲解编程基础知识,适合初学者阅读。主要内容包括: 时间复杂度与空间复杂度 通过遍历和嵌套遍历的对比案例解释时间复杂度概念 介绍大O表示法及常见复杂度排序 分析冒泡排序、二分查找等经典算法复杂度 空间复杂度理解及典型案例分析 Java包装类 基本类型与包装类的区别 自动装箱拆箱机制 Integer缓存机制(-128~127) 包装类性能注意事项 Java泛型 泛型解决的问题及优势 泛型类和方法的使用 类型边界和通配符(?) 上下界通配符(extends/super)的特点 文章采用生活化比
2025-08-05 16:46:32
960
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅