自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 问答 (1)
  • 收藏
  • 关注

原创 SQL语言基础知识(2)

本文介绍了SQL数据库中的数据类型和表操作指令。数据类型包括整型、浮点型、字符串、二进制、日期以及枚举和集合类型,详细说明了各类型的大小、取值范围及对应Java类型。表操作指令包含创建表(CREATE TABLE)、查看表结构(DESC)、删除表(DROP TABLE)以及修改表(ALTER TABLE)的各种操作,如新增列、修改列属性、重命名列和表等。文章还建议复杂SQL操作使用可视化工具MySQL Workbench,并提供了建表示例和修改表的具体语法说明。

2025-08-28 16:00:56 701

原创 SQL语言基础知识(1)

本文介绍了MySQL的基础配置与操作知识。主要内容包括:1)MySQL配置文件my.ini的关键参数解析,如端口号、数据目录、存储引擎和字符集设置;2)客户端与服务器的C/S架构通信原理;3)关系型数据库概念;4)SQL语言分类(DDL、DML、DCL);5)数据库基本操作命令,包括查看、创建(含字符集设定)、选择和删除数据库等。特别强调了实际工作中的注意事项,如使用if not exists参数防止错误中断批量执行,以及数据库删除的安全规范。文章还提供了字符集查看、系统默认字符集查询等实用命令。

2025-08-27 13:39:54 746

原创 分析 HashMap 源码

HashMap核心实现分析:1)成员变量包含初始容量16、最大容量2³⁰、默认负载因子0.75、树化阈值(链表长度>8且数组长度>64)等;2)构造方法仅初始化参数,实际内存分配由put操作触发;3)putVal实现核心逻辑,处理哈希冲突、扩容及链表转红黑树;4)get方法通过哈希计算快速定位节点。重点提示:HashMap的懒加载机制和树化策略是面试高频考点,需掌握put/get的完整执行流程及扩容原理。

2025-08-23 20:18:58 338

原创 Java哈希表(HashTable,又称散列表)

哈希表是一种高效的数据结构,通过哈希函数将关键码映射到存储位置,实现O(1)时间复杂度的查找。文章详细介绍了哈希表的核心概念:哈希函数、哈希冲突(不同关键码映射到同一位置)、负载因子(元素个数/表长度,Java限制为0.75)及其调节方法。重点分析了两种解决冲突的方案:开放定址法(线性探测和二次探测)和链地址法(数组+链表)。文章还提供了哈希表的Java实现代码,包括插入、扩容、查找等操作,并讨论了性能分析和与Java集合类的关系。最后通过多个实际案例(如统计词频、找单身狗、复制链表等)展示了哈希表的应用。

2025-08-22 11:23:11 602

原创 Map 和 Set

本文介绍了Java集合框架中Map和Set的核心内容。重点讲解了二叉搜索树的概念、基本操作(搜索、插入、删除)及其性能分析,阐述了TreeMap/TreeSet基于红黑树的实现原理。详细对比了TreeMap与HashMap、TreeSet与HashSet在底层结构、时间复杂度、有序性等方面的区别。同时说明了Map和Set在键值对存储、去重等方面的特性差异,并提供了实际使用示例。文章强调掌握哈希表原理的重要性,为后续学习HashMap和HashSet的实现打下基础。

2025-08-20 16:36:45 595

原创 Java算法之排序

本文系统介绍了七大基于比较的排序算法,包括插入排序(直接插入和希尔排序)、选择排序(直接选择和堆排序)、交换排序(冒泡和快速排序)以及归并排序。重点分析了快速排序和堆排序的实现原理,详细讲解了快速排序的三种分割方法(Hoare法、挖坑法和前后指针法)及其优化策略(三数取中法和减少递归深度)。文章还探讨了归并排序的递归和非递归实现,并对各种算法从稳定性、时间复杂度和空间复杂度三个维度进行了性能比较。最后简要介绍了非基于比较的计数排序及其适用场景。排序算法的选择需根据具体数据特征和应用场景。

2025-08-19 10:09:07 576

原创 Java集合中的优先级队列(堆)

本文介绍了优先级队列(PriorityQueue)的实现原理及其应用。优先级队列基于堆数据结构实现,堆是一种特殊的完全二叉树,分为大根堆和小根堆。文章详细讲解了堆的存储方式、模拟实现过程(包括建堆、插入和删除操作),分析了时间复杂度。在Java中,PriorityQueue默认实现小根堆,可通过Comparator实现大根堆。最后探讨了Top-K问题的解决方案,比较了不同方法的时间复杂度。文章还包含PriorityQueue的源码分析,包括成员变量、构造方法和扩容机制等核心内容。

2025-08-16 09:30:16 755

原创 Java集合中的栈 Stack 和队列 Queue

本文介绍了栈和队列的基本概念、实现方式及应用场景。栈是一种先进后出的线性结构,可通过数组或链表实现;队列是先进先出结构,可通过链表或循环数组实现。文章详细阐述了栈的数组模拟实现(包含判空、判满、入栈出栈等操作),并展示了栈在括号匹配、逆波兰表达式等场景的应用。同时讲解了循环队列的实现逻辑,以及如何使用双队列模拟栈和双栈模拟队列的面试题解法。最后区分了栈数据结构与JVM中虚拟机栈的概念差异。

2025-08-11 14:33:56 569

原创 Java集合中的 LinkedList

本文探讨了双向不带头链表(LinkedList)的实现与应用。与单向链表相比,双向链表通过prev引用可回溯前驱节点,提高了操作效率。文章详细介绍了LinkedList的模拟实现方法,包括节点定义、增删改查等核心操作,特别强调了删除节点时的边界处理。并将 LinkedList 与 ArrayList在不同的情况下进行比较。

2025-08-10 15:31:29 492

原创 Java集合中的链表

本文详细介绍了Java中LinkedList的实现原理及其应用。首先分析了ArrayList在插入删除操作上的效率问题,引出链表结构的必要性。文章详细讲解了单向链表的基本概念、8种链表结构分类,以及不带头单向链表的具体实现,包括节点定义、接口设计和基本操作方法(增删改查)。重点说明了头插法、尾插法和任意位置插入的实现细节与注意事项。最后提供了9个链表相关的经典面试题及其解决方案,包括链表反转、中间节点查找、回文判断、环检测等。

2025-08-08 22:01:10 1040

原创 List、ArrayList 与顺序表

本文详细介绍了Java中List接口及其实现类ArrayList的相关知识。主要内容包括:1. List接口的定义与继承关系,以及ArrayList和LinkedList的实现特点;2. 线性表的数据结构特性及存储方式;3. 通过自定义MyArrayList类实现顺序表的基本操作(增删查改等);4. 深入分析ArrayList的源码实现,包括成员变量、构造方法、常用方法和遍历方式;5. 实际应用案例(字符串处理、杨辉三角、扑克牌游戏)展示了ArrayList的使用场景;6. 探讨了ArrayList的优缺点

2025-08-06 22:57:18 666

原创 Java实现的数据结构基础

本文介绍了Java数据结构学习的预备知识,主要包括集合框架、算法效率分析和泛型等内容。集合框架是Java对数据结构的封装,包含List、Set、Map等接口及其实现类。算法效率分析重点讲解了时间复杂度和空间复杂度的大O表示法。泛型部分阐述了泛型类的定义和使用,包括类型擦除机制和泛型上界的概念。此外还介绍了包装类的装箱拆箱操作及其底层实现原理。这些知识为后续数据结构学习奠定了重要基础,帮助理解Java集合类的实现原理和使用方式。

2025-08-05 07:31:54 920

原创 Java中的字符串 - String 类

本文详细介绍了Java中String类的使用方法和特性。主要内容包括:1. String的三种构造方式及其内部存储结构;2. 常用字符串操作方法,如拼接、比较、查找、转化、替换、拆分等;3. String的不可变性设计及其优势;4. StringBuilder和StringBuffer的使用场景及区别;5. 字符串处理的高效方法,推荐使用StringBuilder替代直接拼接;6. 常见面试题和练习题解析,包括字符串反转、回文判断、单词统计等。

2025-08-02 16:52:03 583

原创 Java基础——实现图书管理系统交互功能

本文介绍了一个基于JavaSE的图书管理系统实现方案。系统采用面向对象编程思想,分为图书类(Book)、书架类(BookList)、用户类(User)三个核心模块。用户分为管理员和普通用户,通过继承User抽象类实现不同权限管理。系统功能包括查找、新增、删除、借阅、归还图书等操作,通过接口(IOperation)实现多态调用。文章详细阐述了类的设计思路、继承关系、接口实现以及具体的业务逻辑。该系统充分运用了封装、继承、多态等面向对象特性,是Java基础知识的综合应用案例。

2025-08-02 08:35:40 672

原创 Java接口、Object类、内部类

本文主要讲解Java中的接口概念以及如何实现并列举了几个常用的接口示例,如 Comparable 和 Comparator 用来比较大小,而 Cloneable 接口用来拷贝对象,拷贝又分浅拷贝和深拷贝的重要知识点。本文还注重讲解接口的特性与注意事项;此外还讲到了所有类的父类 Object 类下的一些方法,如 toString、equals、hashcode方法;并提及到内部类的定义与使用,其中匿名内部类的理解需要接口的知识。

2025-07-30 14:33:00 1148

原创 Java语言中的数组

本文系统介绍了Java数组的核心概念和使用方法。主要内容包括:1)数组的定义和内存结构,强调数组是引用类型;2)数组的创建与初始化方式(动态/静态);3)数组元素访问与遍历方法;4)引用类型特性及null值处理;5)数组作为方法参数和返回值的应用;6)常见数组操作(查找、排序、拷贝等);7)二维数组的定义和使用。文章通过代码示例详细演示了数组的各种操作,并强调了使用时的注意事项,如下标越界的问题。

2025-07-30 10:13:45 728

原创 Java中的抽象类& abstract 关键字

本文介绍了抽象类的概念与应用。抽象类通过abstract关键字修饰,不能实例化但可包含抽象方法和普通方法。抽象类必须被继承,子类需重写所有抽象方法。本文以图形类为例,说明抽象类的作用是提供继承基础和多态支持,同时通过编译器强制检查抽象方法实现。还讨论了多层继承中抽象类的使用规则,以及匿名对象在抽象类应用中的特点与局限。抽象类在面向对象编程中扮演着重要角色,既规范了类的设计,又实现了代码复用和多态特性。

2025-07-24 20:04:13 875

原创 面向对象三大特征之一,多态

本文系统介绍了Java多态的核心概念与实现方式。主要内容包括:1.多态的定义:不同对象执行同一行为产生不同状态;2.实现条件:继承体系、方法重写、父类引用调用重写方法;3.向上转型的三种方式(直接赋值、方法传参、返回值);4.方法重写的规则与动态绑定机制;5.多态的优势:降低圈复杂度(替代大量if-else)、增强可扩展性;6.关键概念区分:重写与重载、静态与动态绑定、向上与向下转型。通过形状绘制的典型案例,展示了多态如何使代码更简洁灵活,并详解了方法调用时的绑定机制和转型注意事项。

2025-07-24 09:41:45 767

原创 面向对象三大特征之一,继承

本文主要通过讲解子类继承父类的使用方法,深入讲解了 super 和 this 两个关键字以及代码块执行顺序、访问修饰符的权限等知识,以下是提取的一些重点知识:1、继承是为了实现代码的复用;2、子类继承父类使用 extends 关键字;3、子类访问遵循就近原则;4、子类继承了父类之后,Java各自为子类和父类提供了默认的构造方法;一旦父类定义了构造方法,子类就必须也创建类似的构造方法;5、根据先有父再有子的原则,实例化子类时,先加载父类构造方法,再加载子类的构造方法……

2025-07-20 09:01:51 787

原创 Java访问修饰符、静态成员变量与静态方法、代码块

本文总结了Java中四种访问修饰符(public、protected、default、private)的使用规则,重点讲解了封装特性及其实现方式。详细分析了static关键字修饰成员变量和方法的特点,包括静态成员的访问方式和初始化方式。通过实例代码演示了静态代码块、实例代码块和构造方法的执行顺序:静态代码块在类加载时执行且只执行一次,实例代码块在每次实例化对象时都会执行,构造方法最后执行。

2025-07-16 15:34:31 947

原创 Java中的类和对象

本文介绍了面向对象编程的核心概念,主要包含以下内容:1. 类与对象的定义与实例化,通过类模板创建具体对象;2. 类成员变量和方法的访问方式;3. this关键字的用法,解决变量命名冲突并代表当前对象;4. 构造方法的特点与使用,包括无参构造、带参构造和方法重载;5. 通过this()调用其他构造方法的方式。文章通过冰淇淋类等实例,演示了如何定义类、创建对象并进行交互,同时对比了面向过程与面向对象编程的区别。

2025-07-15 17:37:31 477

原创 C语言自定义函数与Java方法

C语言函数和Java语言方法在语法形式、形参与实参、return 返回值等形同与相似的讲解。嵌套使用的对象只能是C语言中的函数,Java是不支持嵌套使用的。C语言在调用函数时,要先声明再调用,多个文件中则要包含头文件;Java没有声明方法这一说,也不关心方法的顺序。Java有特殊的方法重载和方法签名概念。

2025-07-15 15:58:16 1022

原创 C语言转Java,相同与相异之处

本文对比了C语言和Java在基础语法上的主要差异。主要包括主程序入口、注释、数据类型、变量、常量、类型转换、输入输出等内容。

2025-07-15 09:32:01 1053

原创 自定义类型——结构体

文章系统介绍了C语言中结构体的关键知识点,包括结构体的创建与初始化、自引用、内存对齐规则、传参方式和位段实现。重点讲解了结构体内存对齐的原理(通过偏移量计算和平台性能考虑)以及位段的内存分配特性。

2025-06-10 15:44:06 1696

原创 整数、浮点数在内存中的存储方式

保姆级解释整型和浮点型数据在内存中的存储方式,还涉及到进制转换、整型提升、占位符、有无符号字符类型取值范围等一些知识。

2025-06-04 16:27:12 1504

原创 C语言内存函数

本文详细讲解了C语言中四种内存操作函数:memcpy、memmove、memset和memcmp。memcpy用于内存块拷贝,不处理重叠区域;memmove功能类似但可处理重叠内存;memset以字节为单位设置内存内容;memcmp比较两块内存内容。文章从语法形式、使用示例到模拟实现三个层次展开……

2025-06-01 10:29:37 1958

原创 C语言中操作字符串的函数

文章详细介绍了C语言中常用的字符串处理函数(strlen/strcpy/strcat/strcmp等),重点解析了各函数的功能、参数、返回值及使用注意事项。通过代码示例演示了标准库函数的正确用法,并提供了strlen、strcpy、strcat、strcmp等函数的模拟实现方案。特别强调了字符串处理中的关键点:必须以'\0'结尾、目标空间足够大且可修改、无符号返回值可能导致的比较陷阱……

2025-05-31 22:54:44 686

原创 C语言指针pointer基础知识

简单来说,一个指针是计算机内存这家酒店中某一间房间的门牌号,使用"*"解引用符号这把钥匙就能打开那个房间,找到储存在那个房间里面的数据。指针变量包括指针变量名及其类型,不同类型的指针变量大小都相同,只是对其进行+-运算时跳过的字节数不一样。对于数组,指针的重点其实是数组名表示的意思,通常是指首元素的地址(即 arr == &arr[0];),但有两个特例是表示整个数组:&arr 和 sizeof(arr)。

2025-05-25 20:12:56 859

原创 C语言中sizeof、strlen介绍

区分 sizeof() 和 strlen() 使用对象和场景。sizeof 主要用于计算数据类型长度,strlen 主要用于计算字符串长度。

2025-05-04 17:28:52 869

原创 C语言编写简单的扫雷游戏——入门级别

利用C语言中数组、函数的知识编写并成功运行简单的扫雷游戏

2025-04-25 17:31:43 601

原创 C语言中的循环语句

C语言中循环语句包括:while语句,for循环语句,do-while循环语句。其中do-while循环语句较少使用,但也有使用的地方。且需要特别注意的是区分break和continue的作用。

2025-04-13 19:51:52 365

原创 C语言的分支结构:if和switch语句

C语言中有if和switch两种分支结构。需要注意if语句中悬空else的问题,以及switch语句中break的重要性。更要区分什么时候用if语句,什么时候用switch语句。

2025-04-13 17:41:34 383

原创 Hello World!

我憧憬海上冒险,遨游在汪洋大海,在惊险刺激的海域上不断探索、不断利用得到的工具寻找每一个岛屿,再造访每一个岛屿上的景点,了解人文历史,获得知识,丰富视野,锻炼意识。作为一个计算机小白,我的目标为读懂代码→会编写基础代码→能自己写代码→制作一个基础小游戏等等,当然仅有这些还不够,因此我的目标还需要继续完善,我还需要继续深入学习,努力作出一个像样的项目。1、选择一门计算机语言入门,比如C语言,结合书籍和网上教程学习了解其基础概念,如变量、常量、数据类型、关键词、运算符、循环体、结构体等等。

2025-03-29 21:34:21 147

空空如也

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

TA关注的人

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