自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程与线程

本文介绍了操作系统中的进程(Process)概念。进程是正在运行的程序的抽象表示,操作系统通过进程控制块(PCB)来管理进程,包含进程ID、内存指针、文件描述符表等关键属性。文章详细解释了进程状态(就绪/阻塞)、优先级、上下文切换等调度机制,并对比了单任务和多任务操作系统的差异。此外,还引入了线程(Thread)概念,说明线程作为轻量级执行单元如何共享进程资源,以及多线程编程的优势与潜在问题。通过生动的生活实例帮助理解这些抽象概念。

2025-09-18 17:58:42 703 4

原创 排序(补充)

本文介绍了快速排序和归并排序的非递归实现方法。快速排序通过使用栈结构存储待排序区间,每次分区后将另一侧区间入栈,时间复杂度O(NlogN),空间复杂度O(logN)。归并排序采用分治思想,递归实现时需要合并有序子序列,提供了一种非递归的gap倍增实现方式。两种排序算法都具有较好的综合性能,其中快速排序是不稳定的,而归并排序是稳定的。文中详细展示了两种算法的核心代码实现逻辑。

2025-08-06 15:36:11 206

原创 排序...

本文系统介绍了常见排序算法的原理与实现。主要内容包括:1. 排序基本概念(稳定性、内外排序);2. 插入排序(直接插入和希尔排序)及其优化;3. 选择排序(直接选择和堆排序);4. 交换排序(冒泡和快速排序),重点分析了快速排序的三种实现(Hoare、挖坑、双指针)及优化策略(基准值选取、递归深度控制);5. 各算法的时间/空间复杂度分析及稳定性比较。文中通过图示和代码示例详细说明了每种算法的执行过程,特别对快速排序的递归与非递归实现进行了深入探讨。

2025-08-05 22:14:05 1822 1

原创 优先级队列(堆)

优先级队列是一种支持按优先级处理元素的数据结构,底层采用堆(完全二叉树)实现。堆分为大根堆(根节点最大)和小根堆(根节点最小),通过数组存储。文章详细介绍了堆的创建、插入和删除操作,包括向下调整和向上调整算法,时间复杂度为O(log n)。Java中的PriorityQueue默认实现小根堆,可用于快速获取前k小元素等场景。堆也应用于堆排序,通过建堆和调整完成排序。

2025-08-02 18:29:29 698

原创 栈和队列.

本篇介绍了栈 队列的概念及基本操作方法。(AI生成不了,本人又比较懒,还请各位读者赏脸看一看)除了题之外能写的大概就这么多。

2025-07-31 18:15:57 681 3

原创 LinkedList与链表

本文主要介绍了链表结构及其实现,重点对比了ArrayList和LinkedList的特点。ArrayList底层为连续空间,插入删除效率低(O(n));LinkedList采用非连续存储结构,任意位置增删效率高(O(1))。文章详细讲解了无头单向链表和双向链表的实现,包括头插、尾插、任意位置插入、查找、删除等基本操作。其中双向链表通过prev指针记录前驱节点,相比单向链表操作更方便。最后指出两种链表各有利弊,LinkedList更适合频繁插入删除的场景。

2025-07-30 16:31:01 1952 1

原创 ArrayList与顺序表

本文介绍了线性表的基本概念及其实现方式。线性表是n个相同特性数据元素的有限序列,逻辑上连续但物理存储不一定连续。重点讲解了顺序表的实现,特别是ArrayList类的操作:1)尾插元素时需判断扩容;2)插入元素需检查位置合法性并移动元素;3)查找元素包含遍历判断;4)获取/更新元素需检查位置有效性;5)删除元素需移动后续元素并更新大小;6)还介绍了获取大小、清空等操作。最后指出引用类型清空需特殊处理。

2025-07-28 17:50:34 634 1

原创 算法基础——二叉树

本文介绍了树型结构和二叉树的基本概念与特性。树是一种非线性数据结构,具有层次关系,包括根节点、子节点等概念,并阐述了结点度、深度等术语。二叉树是每个节点最多有两个子树的树结构,分为满二叉树和完全二叉树两种特殊类型。文章详细讲解了二叉树的存储方式(顺序存储和链式存储)、四种遍历方法(前序、中序、后序和层序遍历),并提供了相关代码实现。最后介绍了二叉树的基本操作,包括计算节点数、叶子节点数、树高等功能的实现方法。

2025-07-21 22:54:23 1014

原创 图书管理系统

本文介绍了图书管理系统项目的实现过程。首先创建图书类和书架类来存储图书信息,然后通过抽象类和继承机制区分子类用户和管理员。接着构建菜单系统和登录功能,使用向上转型解决类间调用问题。在实现具体功能时,采用接口和数组方式组织操作命令,并详细说明了图书新增、查找、借阅、归还、删除等功能的实现细节,包括数组边界处理等关键问题。最后项目框架搭建完成,但作者表示由于复杂度较高,内容组织略显混乱。整个项目涵盖了类设计、继承、接口、数组操作等多项Java核心技术。

2025-06-22 15:37:52 1825

原创 多态....

多态是指同一行为在不同对象上产生不同结果,如不同孩子对待亲戚问候表现不同。Java实现多态需满足继承、方法重写和父类引用调用重写方法三个条件。向上转型将子类对象作为父类使用,有直接赋值、方法传参和返回值三种方式,但无法调用子类特有方法。方法重写要求方法名、参数和返回值相同,核心逻辑可修改。动态绑定使程序运行时确定调用方法,体现多态特性。重写需注意权限、静态和final修饰等限制,向下转型可将父类引用还原为子类对象。理解多态需掌握向上转型、方法重写和动态绑定等核心概念。

2025-06-18 19:10:22 665

原创 继承....

摘要:继承是面向对象编程中实现代码复用的重要机制,通过抽取共性形成父类(如Animal类),子类(如Cat/Dog类)通过extends继承父类属性和方法。Java中使用super访问父类成员,this访问当前对象成员。当父子类成员同名时优先访问子类,方法名相同则形成重载。子类构造方法需通过super()调用父类构造方法进行初始化。Java不支持多继承,final可修饰不可继承的密封类和不可修改的常量。继承体现了由简单到复杂的层次结构,有效解决了代码复用问题。

2025-06-17 17:21:45 522

原创 类和对象(续)

本文讲解了Java面向对象编程的基础内容。首先回顾了类、对象和this的使用方法,包括类的定义、对象实例化以及this的三种常见用法(引用成员变量/方法、调用构造方法)。然后介绍了面向对象的封装特性,解释了private、public等访问修饰符的权限范围,并通过Student类示例说明了static静态变量的特性及其访问方式。最后强调了静态成员属于类而非对象,建议通过类名直接访问静态变量。文章还提及了包的概念和构造方法的使用注意事项。本篇为后续讲解继承和多态特性奠定了基础。

2025-06-15 18:41:46 779

原创 类和对象(一)

本文介绍了Java面向对象编程的核心概念。面向对象通过对象间交互解决问题,与面向过程相比更关注对象而非具体步骤。文章详细说明了类的定义和使用方法,包括成员变量和成员方法的声明,以及通过new关键字实例化对象的过程。重点讲解了this关键字的作用和三种用法,并深入探讨了构造方法的定义和使用注意事项,包括默认构造方法和构造方法调用的限制。通过洗衣机、电饭煲和猫等具体示例,帮助理解面向对象的基本原理和实践应用。

2025-06-14 13:11:38 729

空空如也

空空如也

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

TA关注的人

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