自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringIoC和DI

工厂模式是一种创建型设计模式,用于将对象的创建逻辑封装起来,客户端无需直接实例化具体对象,从而提高代码的灵活性和降低了代码的耦合度。

2025-04-02 00:06:33 977 1

原创 SpringBoot配置文件

YAML (YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,它通常用于配置文件,在各种编程语言中作为一种存储或传输数据的方式。YAML的设计目标是易于阅读和编写,同时保持足够的表达能力来表示复杂的数据结构。YAML文件的扩展名可以是. yaml 或 . yml .常见的数据存储和交换格式properties 、 XML 、JSON 、 YAML 这几种格式是用来存储和交换数据的常见方式但它们各有特点和适用场景:Properties。

2025-03-15 22:53:46 1124 2

原创 SpringBoot快速入门

SpringBoot框架设计的目标是:程序员关注业务逻辑就行面的事儿交给Spring Boot就行。1.启动器starter之前做web开发,需要引入json处理的jar包,tomcat服务器,SpringMVC的依赖,还需要管理版本,—繁琐Spring Boot引入starter启动器,可以自动管理这个功能相关的依赖,自动管理依赖版本的控制 2.自动配置 之前需要手动配置之后用注解,现在Spring Boot会尽可能的自动配置Spring应用和第三方库举例:如果要进行事务的控制,不用做任何事务相关的配置,

2025-03-15 20:44:54 805

原创 SpringMVC详解

MVC是一种设计模式,主要用于用户界面的设计。Model(模型):负责数据和业务逻辑。View(视图):负责数据的展示。Controller(控制器):负责接收用户输入并调用模型和视图。Postman 是一款用于测试 API 的工具,支持 GET、POST 等多种请求方式。Cookie 是服务器发送到客户端(通常是浏览器)并存储在客户端的一小段数据。Session 是服务器端存储用户会话信息的一种机制。学习SpringMVC,其实就是学习各种Web开发需要用的到注解。

2025-03-05 21:03:21 613

原创 Javaee:IO和文件操作

为了减少设备操作的次数,在写数据的时候都会将数据先暂时写入内存的一个指定区域里,直到该区域 满了或者其他指定条件时才真正将数据写入设备中,这个区域一般称 为缓冲区。需要在最后或者合 适的位置,文件由于被操作系统进行了管理,所以根据不同的用户,会赋予用户不同的对待该文件的权限,一般地可以认为有可读、可写、可执行权限。文件的元信息:描述文件属性的数据,但不涉及文件的实际内容,元信息帮助操作系统和应用程序管理和识别文件。在生活中,大多涉及到的是狭义上的文件,所以这里围绕的也是狭义的文件概念所展开。

2025-02-28 21:57:58 1017

原创 树和二叉树

一棵二叉树是结点的一个有限集合,该集合可以为空,也可以是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。注意二叉树不存在度大于2的结点二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树。

2025-02-26 21:47:12 786

原创 Javaee:阻塞队列和生产者消费者模型

阻塞队列是一种支持阻塞操作的队列,在多线程中实现通线程之间的通信协调的特殊队列。

2024-10-30 15:37:17 559 6

原创 Javaee:单例模式

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。有多种实现方式,懒汉模式需要注意线程安全问题。

2024-10-29 17:11:18 565 6

原创 Javaee:线程安全问题和synchronized关键字

这个就是不具备原子性的。的根本性原因,可能执行了t1的load,之后就调度了t2中的load,执行着某个操作,执行着执行着可能就被其他线程调走了,count++操作就并没有真的做到count+1。在这些步骤之间,其他线程可能会插入并执行自己的操作,从而干扰原始线程的操作结果。当一个线程访问被synchronized修饰的类或对象时,必须先获得它的锁,而这个锁的状态对于其他任何线程都是可见的。:当一个线程已经持有某个锁时,如果该线程再次尝试获取该锁,它将无法成功获取,即会被阻塞,直到持有锁的线程释放锁为止。

2024-10-28 23:01:42 736 7

原创 认识Thread类

推荐。

2024-10-18 08:53:04 733 9

原创 进程和线程的区别和联系

这个过程操作系统需要为进程分配独立的内存空间,并复制父进程的某些资源,销毁同样需要回收其占用的所有资源,所有线程都销毁才释放资源(进程销毁)这个过程复杂且耗时。,同样的,销毁线程时,操作系统只需回收其占用的少量资源(线程栈,线程控制块),这个过程相对简单且快速。,因为存在切换,所以进程管理了很多资源,比如:打开的文件、挂起的信号、进程状态、内存地址空间等等。cpu分配资源给进程,同一进程的所有线程共享该进程的所有资源。每个进程都对应着打开的文件的列表,线程之间是共用的。

2024-10-15 19:57:02 730 6

原创 Map和Set,TreeMap和TreeSet,HashMap和HashSet

若左子树不为空,则左子树上的所有节点的值都小于根节点的值. 若右子树不为空,则右子树上的所有节点的值都大于根节点的值左右子树也都是二叉搜索树不存在键值相等的节点。

2024-09-27 15:25:31 1007 13

原创 数据结构-排序(冒泡,选择,插入,希尔,快排,归并,堆排)

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;当到达=1时,所有记录在统一组内排好序。,与下一个数进行比较,直到找到最大的数,放在n的位置,这是一趟,下一趟还是同样的思路,找到第二大的数,放在n-1的位置,依次下去,总共要走。的区间上找最小的数,在进行交换,也就是有序区间不动,对于无序区间进行比较,依次下去,直至全部有序。

2024-09-19 11:53:21 1273 15

原创 认识String类

相信你看完已经对String类有了一定的理解,继续学习下去吧!

2024-07-03 17:08:00 767 19

原创 图书管理系统(含登录验证码操作)

欢迎小伙伴在评论区指导!💕💕💕💕。

2024-07-03 15:51:13 1263 6

原创 浅拷贝和深拷贝

了解了深拷贝和浅拷贝的区别,并学会用内存图分析代码❤️❤️❤️❤️。

2024-05-22 21:29:47 594 45

原创 抽象类和接口

被abstract修饰的类就是抽象类一个类可以实现多个接口,解决类只能单继承问题对于接口可以用对象来接收实现了多态,同样需要重写方法,然后可以进行调用相信小伙伴看到这已经对抽象类和接口有了一定了解,一起加油啊。

2024-05-22 21:27:40 1233 27

原创 栈和队列的实现

需要有数组的首元素地址,栈顶,和栈的容量//数组首元素地址}ST;要入的数据,结构体指针next,头尾指针,}QueueNode;}Queue;

2024-05-18 15:15:28 546 22

原创 继承和多态

通过对类和对象,继承和多态的学习,相信你对java的语法有了一定了解,让我们一起继续学习吧!

2024-05-18 15:13:30 1285 17

原创 单链表题-ysf-反转-中间节点-回文-合并-分割

注意事项:对于大链表中的尾节点,需要置空,要不会出现死循环;创建哨兵位,需要手动释放空间;让小链表的尾指向大链表哨兵位的next。思路:创建两个新链表,一个放比特定值小的数,一个放大的然后链接起来;遍历链表找到中间节点,从中间节点为分割线去比较两边是否先相同。核心思想:将链表反转后,比较后半部分是否相同。,请你对链表进行分隔,使得所有。每个分区中各节点的初始相对位置。给你一个链表的头节点。

2024-05-15 12:52:36 301 25

原创 javaSE:类和对象

如何定义一个类呢?类是用来对一个实体(对象)来进行描述的,定义了类中都具有什么属性(成员变量)在java中,必须先设计类,才能获得对象通过关键字class格式是:public class 类名{成员变量成员方法构造方法代码块内部类举例:我们定义一个学生类,我们写一个标准的javabean,不认识的关键字都会在下面一一讲解;//空参构造//带参数的构造方法return age;return sex;//成员方法。

2024-05-15 12:49:37 1101 30

原创 带头双向循环链表

和单链表一样,有指针域和数据域,不过比单链表多了一个存储上一个节点的指针}ListNode;

2024-04-08 20:17:58 1041 38

原创 单链表的实现

需要定义数据域和指针域为了程序的健壮性,需要进行宏定义,当我们想保存的数据类型为字符型、浮点型或者其他⾃定义的类型时,方便更改每个节点都存储了下一个节点的地址}SListNode;补充说明1、链式机构在逻辑上是连续的,在物理结构上不⼀定连续2、节点⼀般是从堆上申请的3、从堆上申请来的空间,是按照⼀定策略分配出来的,每次申请的空间可能连续,可能不连续。

2024-04-08 15:47:15 1767 29

原创 顺序表的动态实现

注意命名方式,采用驼峰法结构体里包含要插入的数据,计数器,容量大小(开辟空间)宏定义有利于管理代码#define N10int sz;

2024-04-05 19:13:54 547 37

原创 动态内存管理

void*是因为malloc不知道会传什么类型的指针进来size_t类型表示C中任何对象所能达到的最大长度,它是无符号整数。功能是向堆区申请空间,方便内存的分配内存开辟失败返回的是空指针成功返回只想开辟好的空间的指针没有free会不会造成内存泄漏?在程序退出时,会自动回收内存什么是内存泄漏?向堆区申请了空间,但没用了却未还,内存泄漏很麻烦所以申请了空间还是free掉比较好,养成良好的编程习惯,成对出现!

2024-03-28 10:55:05 979 37

原创 数据在内存中的存储

char字符类型1个字节short短整型2个字节int整形4个字节long长整型4个字节long long更长的整型8个字节float单精度浮点数4个字节double双精度浮点数8个字节unsigned代表无符号。

2024-03-24 15:12:57 844 22

原创 通讯录的动态实现

功能的具体实现初始化通讯录添加联系人删除联系人查找联系人查找名字修改联系人打印通讯录排序通讯录检查容量并扩容加载通讯录保留通讯录完整代码Contact.htest.cContact.c总结

2024-03-23 12:06:36 546 27

原创 结构体联合体枚举和位段

像上面的s1 s2 Node就是定义的变量声明类型的同时定义变量//定义结构体变量p2初始化int x;int y;}p1;声明类型的同时定义变量p1定义结构体变量p2初始化:定义变量的同时赋初值。struct Stu 类型声明名字int age;年龄初始化int data;结构体嵌套初始化结构体嵌套初始化打印.操作符直接访问->间接访问#if0struct Stu//结构体成员int age;

2024-03-16 19:12:07 2167 21

原创 指针和数组面试题

梳理完毕~有问题欢迎指出来,一起进步!

2024-03-11 12:54:23 570 24

原创 字符串函数和内存函数

看完相信你对字符串函数和内存函数有了一定认识,有什么问题欢迎在评论区指出来~

2024-03-06 21:55:55 2003 20

原创 轻松拿下qsort函数

使用*快速排序*的思想冒泡排序只能排序整型数组,对于更复杂的数据类型就不适用了,像浮点数,字符串,结构体c语言库函数提供了qsort()函数,是对冒泡排序的优化理解cmp比较函数的地址,e1和e2是你要比较的两个元素的地址,cmp就会调用函数进行比较把cmp函数作为参数传给内置函数qsortvoid* ->无具体类型的指针,可以接受任意指针的类型void*不能解引用,也不能加减整数。

2024-02-04 12:00:00 926 18

原创 解开操作符神秘的面纱

总结:对于操作符的了解就先告一段落了,操作符是基础,基础不牢地动山摇,有什么可改进的,欢迎小伙伴们在评论区指出来~16进制的数字每⼀位是0~9,a ~f 的,0~9,a ~f的数字,各⾃写成2进制,最多有4个2进制位就⾜够了。比如 f 的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进。型还是不够的,假设我想描述学生,描述⼀本书,这时单⼀的内置类型是不行的。C语言为了解决这个问。如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制。

2024-01-30 17:40:08 931 9

原创 对指针的认识

文章到这里就结束,指针的知识远远不止这些,还要会应用,这才是重头戏。简而言之,我会好好学习的!欢迎小伙伴在评论区指导哦~

2023-12-29 16:54:55 1045 9

原创 快和我一起来认识数组吧~

数组是相同类型对象的集合,数组的访问是借助下标,下标是从0开始的;数组的命名和存储如下图,我们创建了包含5个int型变量的数组。

2023-12-12 21:16:40 513 4

原创 扫雷游戏的实现

define宏定义, #define 的功能是将标识符定义为其后的常量。一经定义,程序中就可以直接用标识符来表示这个常量,宏定义是c语言预处理中的一种;注意不加分号噢~扫雷小游戏这只是基础版,先要一步一步走,初阶到进阶,有扫雷的拓展,慢慢领悟~涉及到的知识点都是基础类型,通过写游戏来巩固知识。这次的分享到此结束,有错误的欢迎小可爱们在评论区指出~

2023-12-11 08:52:16 246 6

原创 打印素数的几种方法

今天整理打印素数的几种方法,希望能对你有所帮助~

2023-12-07 13:03:12 538 5

原创 C语言中的分支和循环

首先,c语言是结构化程序设计语言,分为三种结构,分别是顺序结构、选择结构、循环结构。接下来我会详细的讲讲~顺序结构只要你逻辑不出错,一步一步往下走就行了,我们重点讲的是选择结构和循环结构,一般用if、switch来实现选择,用for、while、do while来实现循环。

2023-11-30 12:35:12 152 7

原创 无问的第一篇博客

自我介绍学习目标和愿景

2023-11-20 17:09:14 95 2

空空如也

空空如也

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

TA关注的人

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