- 博客(18)
- 收藏
- 关注
原创 MySQL数据库基础
数据库是用于管理数据的软件,分为关系型(如MySQL、Oracle)和非关系型(如Redis)两类。MySQL由服务端处理数据、客户端交互操作,通过Navicat等工具实现图形化访问。用户输入SQL后,经客户端传至服务器,执行后返回结果。一台MySQL服务器可含多个数据库,每个数据库包含多张表,结构清晰,便于数据管理与查询。
2026-10-28 17:28:11
225
原创 Java数据结构 二叉搜索树
二叉搜索树(BST)是一种基于“左子树<根<右子树”有序性质的高效数据结构,支持快速查找、插入和删除操作。理想情况下时间复杂度为O(logN),最坏情况退化为O(N)。其核心特性是中序遍历可生成有序序列,常用于排序与验证。插入时通常禁止重复值,删除分三种情况处理:无子节点直接删,单子节点用子节点替代,双子节点则用中序后继覆盖并删除后继。通过Java实现可完整验证其功能,适用于需要动态维护有序数据的场景。
2026-10-27 21:20:37
296
原创 Java 数据结构:堆与优先级队列详解
优先级队列基于堆实现,支持按优先级出队。大根堆/小根堆通过数组存储,利用向下(siftDown)和向上(siftUp)调整维护堆结构。入队(offer)与出队(poll)时间复杂度均为O(logN),建堆为O(N)。Java中PriorityQueue默认为小根堆,可通过比较器实现大根堆。堆常用于解决TOP-K问题及堆排序:升序建大根堆,降序建小根堆,每次交换堆顶与末尾元素并调整。
2026-10-19 20:25:14
148
原创 Java面向对象三大思想之一 继承(2)
本文讲解了Java继承体系下的代码块执行顺序和protected关键字的使用。在继承关系中,父类静态代码块先于子类执行;实例化时,先执行父类实例代码块和构造方法,再执行子类部分。protected修饰符允许不同包子类通过自身引用或super访问父类成员,但不能通过其他子类访问。文章还通过内存图解释了对象引用交换的原理,并对比了基础类型与引用类型参数传递的区别。
2025-09-03 13:24:38
1003
原创 super关键字和this关键字的区别
本文通过代码实例讲解了Java中super和this关键字的异同。相同点:两者都能调用成员变量和方法,都必须在构造方法首行使用,且只能在非静态方法中使用。不同点:super用于调用父类成员和构造方法(编译器会默认添加无参super()),而this指向当前对象,可调用当前类成员和构造方法(需手动添加this())。通过A、B类示例演示了具体用法,帮助理解继承关系中这两个关键字的使用场景。
2025-08-11 14:42:41
239
1
原创 Java面向对象三大思想之一 继承(1)
Java继承摘要 继承是面向对象三大特性之一,通过extends关键字实现子类对父类的扩展。子类继承父类后,可直接复用父类的成员变量和方法,同时可新增特有成员。当子类与父类成员重名时,遵循"就近原则"优先访问子类成员;若需访问父类同名成员,需使用super关键字。继承实现了代码复用,要求子类必须在父类基础上进行功能扩展,否则失去继承意义。通过继承,可构建清晰的类层次结构(如动物→狗/猴),体现"is-a"关系,增强代码可维护性。
2025-08-03 18:15:46
632
原创 Java面向对象三大思想之一 封装
概念: 包是用来管理Java文件的,可以防止类名冲突,提高代码可读性。简单理解包就是一个文件夹,文件夹都用来管理一些文件例如: 一个文件夹放Java代码,另一个文件夹放C语言代码,另一个文件夹可以放C++代码,更好的有效管理这些文件。以IDEA为例点击src包右键就会出现上面显示的窗口,接着点击New,然后再点击Package就可以新建一个包出现上面这个窗口,就时定义一个包,名字一般都是按照公司的域名倒过来命名。
2025-07-26 15:42:11
971
原创 static关键字和代码块
本文介绍了Java中static关键字和代码块的相关知识。static用于修饰成员变量和方法,被static修饰的静态成员属于类而非对象,存储在方法区且全局共享。静态方法不能直接调用非静态成员,但非静态方法可以调用静态成员。代码块部分讲解了普通代码块和静态代码块,静态代码块主要用于静态成员变量的初始化。文章通过具体代码示例展示了static的应用场景和注意事项,帮助读者理解这一重要概念。
2025-07-04 22:54:00
785
11
原创 Java类和对象
本文摘要: 面向对象与过程:Java是面向对象语言,通过对象交互完成功能,区别于C语言的面向过程思想。 类的定义:使用class关键字定义类,包含成员变量(属性)和成员方法(行为),采用大驼峰命名。 实例化对象:通过new关键字创建对象,对象占用堆内存存储成员变量,方法调用在栈内存进行。 this关键字:用于解决成员变量与局部变量命名冲突,表示当前对象引用,可访问成员变量和方法。 对象初始化:包括默认初始化、就地初始化和构造方法初始化。构造方法是一种特殊方法,用于对象创建时的初始化工作,具有类同名、无返回值
2025-06-30 16:02:34
879
原创 Java数组
本文介绍了Java数组的核心知识点,包括数组的定义、创建与初始化两种方式(静态和动态),以及数组元素的访问和遍历方法。重点解析了数组作为引用类型的内存存储机制,通过JVM内存分布图直观展示了基本类型与引用类型的区别。文章还详细讲解了数组作为函数参数的传递机制,说明如何通过引用修改外部数组内容。最后介绍了Arrays工具类的常用方法,如数组转字符串、拷贝数组和二分查找等实用操作。全文系统性地梳理了Java数组的基本概念和使用技巧,为开发者提供了全面的数组操作指南。
2025-06-25 09:25:06
984
原创 Java初识
Java是一种面向对象的跨平台编程语言,具有简单性、健壮性和安全性等特点。Java分为JavaSE(基础平台)和JavaEE(企业级扩展)两大版本。编写Java程序需要安装JDK并配置环境变量,程序通过JVM运行。Java的基本语法包括标识符命名规则、注释方式、数据类型(8种基本类型)和变量定义。特别需注意浮点数精度问题、整型除法结果以及字符编码等细节。初学者应掌握环境搭建、基础语法和简单的程序结构,了解JDK、JRE和JVM的层级关系。
2025-06-13 21:15:06
1076
原创 数据结构 ----- 排序算法(C语言版本)
排序算法比较摘要 本文介绍了常见的排序算法及其性能测试方法。主要内容包括:排序的基本概念(稳定性、内部/外部排序),插入排序(时间复杂度O(N^2),稳定)、希尔排序(分组预排序后插入,时间复杂度O(N^1.3),不稳定)和选择排序(每次选取极值)的实现原理和代码示例。通过TestOP()函数测试不同排序算法性能,比较各算法的时间效率。插入排序在数据接近有序时效率较高,希尔排序是对插入排序的优化,而选择排序通过极值选择实现排序。文章还展示了各排序算法的可视化过程和关键代码片段。
2025-06-09 22:49:44
504
原创 数据结构 ---- 顺序表的实现(C语言)
顺序表是一种线性表,通过物理地址连续的存储单元依次存储元素,通常用数组实现。顺序表分为静态和动态两种:静态顺序表使用定长数组,空间固定,可能导致空间浪费或不足;动态顺序表则通过动态数组实现,支持扩容,有效节省空间。顺序表的基本操作包括增删查改,如尾插、尾删、头插、头删、任意位置插入和删除等。动态顺序表在空间不足时,通常采用二倍扩容策略。顺序表的销毁需确保释放动态开辟的内存,避免内存泄漏。顺序表的实现需注意数组下标的控制,防止越界问题。
2025-05-16 10:12:26
851
原创 数据结构 -- 时间复杂度和空间复杂度
数据结构是研究数据在内存中的存储方式,分为逻辑结构(如集合、线性、树、网状结构)和物理结构(如顺序存储和链式存储)。数据结构在编程和面试中至关重要,涉及多种存储方式和排序算法。算法则是解决问题的步骤,通过输入转化为输出。学习数据结构需要多实践、思考和调试。时间复杂度和空间复杂度是衡量算法效率的两个关键指标。时间复杂度表示算法运行速度,空间复杂度表示算法所需的额外存储空间。时间复杂度通常用大O渐进表示法来描述,忽略常数和低阶项,关注最高阶项。常见的时间复杂度有O(1)、O(logN)、O(N)、O(N^2)
2025-05-12 18:29:10
1208
原创 C语言内存函数
首先我们可以准备三个文件,分别为memory.h、memory.c、test.c。memory.h用做头文件的包含、函数的申明。memory.c用来实现函数的定义。test.c用来实现函数的测试。
2025-05-06 15:30:26
957
原创 初学者如何理解 --- 指针(初阶)
生活中,一栋宿舍里面有很多间房子,每间房子都按照一间的形式划分好了,每间有8个床位。在计算机里我们可以把内存比作一栋宿舍,里面被划分了多个内存单元,一个内存单元占一个字节1byte,1byte = 8 bit,这里8个比特位也就对应这床位。假设你要去你朋友的宿舍,在没有宿舍门牌号的情况下,你只能挨个去找,为了解决这样的情况,于是就有了门牌号,也叫地址,这样你可以拿着门牌号去找到你朋友。而在计算机里,我们可以把门牌号比作内存单元的编号,也叫地址,这样我们就可以拿这个编号方便的找到内存中所对应的空间。
2025-03-31 11:49:10
857
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅