自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法】图解面试笔试热点二叉树相关算法题汇总

假设有一棵Node类型的节点组成的二叉树,树中每个节点的parent指针都正确地指向自己的父节点,头节点的parent指向null。只给一个在二叉树中的某个节点node,请实现返回node的后继节点的函数。在中序遍历中,节点的下一个节点叫做后继节点,节点的前一个节点叫做前驱节点

2025-01-24 11:04:45 1046

原创 【数据库】详解MySQL数据库中的事务与锁

锁定粒度:表锁>行锁加锁效率:表锁>行锁冲突概率:表锁>行锁并发性能:表锁<行锁。

2025-01-23 21:08:10 877

原创 【数据库】详解MySQL数据库中索引的本质与底层原理

这个过程叫寻道,所消耗的时间叫做寻道时间。答:局部性原理:当一个数据被用到时,其附近的数据被用到的概率会增大,所以操作系统为了提高效率,读取数据时往往不是按需读取,而是每次都会预读,即使只需要一个字节,操作系统也会从这个位置开始,顺序向后读取一定长度的数据放入内存中。如果节点既存储数据又存储索引,一个节点的大小一定,数据较多时索引就较少,每个节点的分支会变少,树的高度会变高,导致磁盘IO变多,效率变低。插入数据会平衡,但是插入的时候会改变树的结构,插入数据比较慢,而且树的层级会变高,会增加磁盘IO的次数。

2025-01-23 19:51:48 998

原创 【数据库】详解MySQL数据库中四种主要存储引擎

存储引擎在MySQL的逻辑架构中位于第二层,负责MySQL中数据的存储与提取。MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的。每一种存储引擎都有它的优势和劣势查看当前数据库所支持的所有存储引擎。

2025-01-21 22:25:22 1341

原创 【数据库】MySQL架构探秘——select语句与update语句的执行流程

当MySQL服务器启动(MySQL服务器就是一个进程),等待客户端连接,对于每一个客户的连接请求,服务器都会创建一个新的新的线程处理(如果是线程池的话,则是分配一个空的线程),每个线程都是独立的,拥有各自的内存处理空间

2025-01-21 20:37:54 855

原创 【数据库】详解MySQL数据库索引

索引是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引优势:提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗劣势:索引列占用空间(磁盘中的ibd文件、MYI文件)索引提高查询效率的同时也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE时,效率降低。

2025-01-20 20:38:24 1581

原创 【数据库】MySQL数据库之事务与存储引擎

引擎就是发动机,是一个机器的核心部分。不同的引擎适用于不同的场景,没有好坏之分存储引擎是MySQL当中核心的部分,是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型在创建表时,指定存储引擎CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释],......字段n 字段n类型 [COMMENT 字段n注释],)ENGINE=INNODB [COMMENT 表注释];查看当前数据库支持的存储引擎。

2025-01-20 20:25:43 803

原创 【部署】将项目部署到云服务器

将项目部署到云服务器(mac终端版)

2025-01-19 19:26:49 780

原创 【数据库】MySQL数据库之约束与多表查询

笛卡尔积:集合A和集合B的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)多表查询分类连接查询内连接:相当于查询A\B交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名子查询。

2025-01-18 22:11:09 919

原创 【数据库】MySQL数据库SQL语句汇总

DML是数据操作语言,用来对数据库中表的数据记录进行增删改操作添加数据INSERT修改数据UPDATE删除数据DELETE。

2025-01-17 22:46:36 2938

原创 【算法】图解二叉树的前中后序遍历

递归的方法遍历二叉树时每一个节点都会被访问三次

2025-01-16 20:26:18 464

原创 【算法】图解两个链表相交的一系列问题

实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果两个链表长度之和为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1)如果相同,head1先走20步,然后head2出发一起走,二者一定会在第一个相交节点相遇。初始化一个HashSet存储已经遍历过的节点,依次将abcde加入set中,当回到c时发现c已经在集合中,那么c为入环的节点。写一个函数,如果有环就返回入环的第一个节点,无环则返回空。让loop1继续往下走,如果在回到自己的路程中能遇到loop2就是情况a,否则为情况b。

2025-01-15 19:31:55 472

原创 【算法】复制含有随机指针节点的链表

设置新链表的next方向和random方向的指针,遍历老链表,通过map查出它的新链表,设置上next指针,random指针同理。给定一个由Node节点类型组成的无环单链表的头节点head,请实现一个函数完成这个链表的复制,并返回复制的新链表的头节点。首先生成克隆节点,把克隆节点就放在当前老链表节点的下一个,然后把原来老链表的下一个节点放在克隆节点的后面,接着一对一对的拿出老节点和新节点进行处理。(2) 不使用额外空间。(1) 使用额外空间。

2025-01-14 20:02:31 205

原创 【算法】将单链表按值划分

定义6个变量,小于部分的头SH=null,小于部分的尾ST=null,等于部分的头EH=null,等于部分的尾ET=null,大于部分的头BH=null,大于部分的尾BT=null。笔试:初始化一个Node类型的数组,对数组进行partition,然后把数组中的节点元素串成链表。将单链表按某值划分成左边小、中间相等、右边大的形式。

2025-01-13 21:34:02 253

原创 【算法】判断一个链表是否为回文结构

快慢指针找到终点位置,把右半个链表逆序,中点指向null,p1、p2分别为从左端、右端出发的指针,二者不断进行比对,最后恢复原来的结构。1 -> 2 -> 1返回true;1 -> 2 -> 2 -> 1返回true;15 -> 6 -> 15返回true。笔试:初始化一个栈用来存放链表中右半部分的元素(快慢指针),弹栈的顺序是链表的逆序。给定一个单链表的头节点head,请判断该链表是否为回文结构。

2025-01-12 19:32:36 452

原创 【JavaWeb】JavaWeb入门之Tomcat详解

C/S即客户端/服务器(Client/Server)例如QQ就是C/S结构的。我们可以在电脑上安装QQ的客户端,客户端软件向服务器端软件发送请求,服务器端给客户端返回响应但是,因为客户端需要不断的更新,用户使用起来就比较麻烦。现在的C/S结构的客户端已经好多了,可以提示用户更新,用户只需要点击更新就可以了。最早时需要用户自己去官网上下载最新客户端,然后把老版本卸载,再去安装新版本。

2025-01-11 22:03:32 823

原创 【算法】不基于比较的排序(图解)

返回负数的时候,第一个参数排在前面返回正数的时候,第二个参数排在前面返回0的时候,谁在前面都无所谓。

2025-01-11 21:55:03 362

原创 【JavaWeb】开发框架之JSTL

JSP标准标记库(JSP Standard Tag Library,JSTL)是一个实现Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML操作以及数据库访问。既然是第三方的东西,那么就需要导包。

2025-01-10 11:53:05 808

原创 【算法】图解排序算法之归并排序、快速排序、堆排序

时间复杂度O(NlogN),额外空间复杂度(N)求出中间位置,先将左侧排好序,再将右侧排好序,最后将整体整合,不断重复上述过程直到将整个数组排序如何整合:定义两个指针指向左右两个子数组最左侧的位置使用master公式求时间复杂度。

2025-01-10 11:38:57 1385

原创 【JavaWeb】EL表达式

EL(Expression Language)是一门表达式语言,它对应。在JSP中,表达式会被输出,所以EL表达式也会被输出EL表达式的格式:${ ... },例如:${1+2}在使用EL表达式时,要求page指令的isELIgnored属性为false。这样JSP在编译成.java时才不会忽略EL表达式如果希望某个EL表达式被JSP编译器忽略,那么可以在EL表达式之前添加“\”,例如:${1+2}

2025-01-09 21:12:08 792

原创 【算法】时间复杂度以及O(N^2)的排序

长度为N的数组,规定相邻位置的元素一定不相等,如果0位置的数比1位置的数小,那么0位置的数是局部最小;对于中间位置i,如果i位置的数不仅比i-1位置的数小,而且比i+1位置的数小,那么i位置的数为局部最小。相邻两个数字进行比较,大的数字往右移,一共遍历N-1次,第一次从第1个元素开始与相邻后一个元素比较,直到第N-1个元素与第N个元素比较完为止,此时当前数组中最大的元素一定被排序到了最后一位。在表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果为f(N),那么时间复杂度为O(f(N))

2025-01-09 19:55:01 1509

原创 【JavaWeb】JSP详解

JSP = Java Server Page = html + Java代码 + JSP动态标签通常在前台开发人员给出静态页面后,后台开发人员只需在静态页面中添加动态信息即可,而不用再使用Servlet一行一行的去输出了内置对象是在JSP页面中无需创建就可以直接使用的变量。在JSP中一共有9个这样的对象page(当前JSP的真身类型)out最为常用的方法是print(),即向页面输出。它与response.getWriter()基本相同config。

2024-11-14 19:59:02 848

原创 【JavaWeb】JavaWeb三大组件之Servlet

因为现在我们的请求都是基于HTTP协议的,所以我们应该专门为HTTP请求写一个Servlet做为通用父类由上图我们可以看出,以后再写Servlet可以直接继承HttpServletServlet是一个标准GenericServlet是Servlet接口的子类HttpServlet是GenericServlet的子类,一个专门处理HTTP请求的ServletServletContext是一个全局的储存信息的空间。服务器开始,其就存在,服务器关闭,其才释放。一个用户可有多个request;

2024-11-14 19:52:09 1052

原创 【JavaWeb】JSON介绍及入门案例

JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对JSON的支持,这使得JSON成为理想的数据交换格式JSON由键值对组成,并且由花括号包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间使用逗号进行分隔"key1":12,"key5":{},"key6":[{},{}]

2024-11-13 09:40:41 480

原创 【JavaWeb】JavaWeb入门之XML详解

students>可以看作是XML文档的说明最简单的xml文档声明:

2024-11-13 09:33:29 1443

原创 JavaScript入门笔记

-- 先写前端页面 -->​-- 内部 js --><script>// alert 页面弹出警示框</script>

2024-11-12 13:38:50 711

原创 【前端】CSS入门笔记+案例

除此之外, <em> 标签也可以使字体倾斜, 它的效果可以被 font-style 的效果覆盖。作用: 通过 id 属性值, 找到页面中带有这个 id 属性值的标签, 设置样式。一个 id 选择器只能选中一个标签, 它类似于身份证号码, 在一个页面中是唯一的。style 标签虽然可以写在页面任意位置, 但是通常约定写在 head 标签中。结构: #id属性值{css属性名: 属性值;结构: 标签名 {css属性名: 属性值;结构: .类名 {css属性名: 属性值;

2024-11-12 13:30:26 1168

原创 【前端】HTML标签汇总

在这里我们没有写 target 属性, 所以 target 会取默认值 _self 导致在本窗口打开新的网站. 为了在新窗口打开,我们把 target 取值为 _blank, 如下。被 <thead> 标签包围的行在顶端显示, 被 <tfoot> 标签包围的行在底端显示, <tbody> 在中间显示。数字输入框的属性: min 最小值, max 最大值, value 输入框的默认值, step 步长。table 是放表格的容器, tr 是表格的行, td 是表格的单元格, 没有列的概念, 如下。

2024-11-11 23:47:26 4854

原创 【算法】马踏棋盘(骑士周游)问题回溯算法实现以及使用贪心算法优化

将马儿随机放在国际象棋的 8*8 棋盘的某个方格中,马儿按照“马走日”进行移动,要求每个方格只进入一次,走遍棋盘上全部 64 个方格。注意:马儿不同的走法会得到不同的结果,效率也会有影响。

2024-08-18 08:31:43 1085 4

原创 【算法】弗洛伊德(Floyd)算法求最短路径

弗洛伊德算法用于计算图中各个顶点之间的最短路径迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径弗洛伊德算法中每一个顶点都是出发访问点,所以需要将每一个顶点看作被访问顶点,求出从每一个顶点到其他顶点的最短路径;迪杰斯特拉算法通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径。

2024-08-17 21:09:44 2583

原创 【java基础】IDEA 的断点调试(Debug)

每点一次就执行一步(F8)/*** 行断点*/int m = 10;int n = 20;System.out.println("交换前:m = " + m + ", n = " + n);swap(m, n);System.out.println("交换后:m = " + m + ", n = " + n);m = n;n = temp;运行结果我们发现 m 和 n 的值实际上并没有交换,为了探究其原因,我们可以使用行断点进行调试。

2024-08-16 23:59:27 1988

原创 【算法】迪杰斯特拉算法求最短路径

迪杰斯特拉算法是典型的最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。

2024-08-15 23:42:17 608

原创 【算法】克鲁斯卡尔算法求最小生成树

1.克鲁斯卡尔算法是用来求加权连通图的最小生成树的算法2.基本思路:为了连通 n 个顶点,按照权值从小到大的顺序选择 n-1 条边,并保证这 n-1 条边不构成回路3.具体做法:首先构造一个只含 n 个顶点的森林,然后按照权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止。

2024-08-14 23:59:53 2198

原创 MyBatis-Plus 插件之分页插件与乐观锁

Mapper/*** 根据年龄查询用户列表,分页显示* @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位* @param age 年龄* @return*/

2024-08-13 14:31:25 924

原创 MyBatis-Plus 进阶之条件构造器Wrapper和常用接口

Wrapper 是一个用于的抽象类。MyBatis-Plus 提供了一个强大的条件构造器机制,通过 Wrapper 类及其子类,开发者可以动态的构建复杂的 SQL 条件查询条件。作为一个抽象类,它的子类包括 AbstractWrapper、QueryWrapper、UpdateWrapper 等。Wrapper:条件构造抽象类,最顶端父类——AbstractWrapper:用于查询条件封装,生成 SQL 的 where 条件————QueryWrapper:查询条件封装。

2024-08-12 23:57:26 1645

原创 MyBatis-Plus 常用注解介绍及案例

将不同业务数据分散储存到不同的数据库服务器,能够支撑百万甚至千万用户规模的业务,但如果业务继续发展,同一业务的单表数据也会达到单台数据库服务器的处理瓶颈。此时,可以使用 MyBatis-Plus 提供的全局配置,为实体类所对应的表名设置默认的前缀,那么久不需要在每个实体类上通过 @TableName 标识实体类对应的表。在开发的过程中,我们经常遇到以上的问题,即实体类所对应的表都有固定的前缀,例如 t_ 或 tbl_公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的。

2024-08-11 15:14:35 1611

原创 MyBatis-Plus 基本增删改查(CRUD)的理论基础以及代码实现

语句设置不同的条件,若没有条件,则可以为该形参赋值。在实现插入数据时,会默认基于雪花算法的策略生成。中都已得到了实现,我们可以直接使用,接口如。类型的形参,此为条件构造器,可针。中的方法,大多方法中都有。最终执行的结果,所获取的。通过map条件删除记录。

2024-08-10 23:15:24 307

原创 初步认识 MyBatis-Plus

MyBatis-Plus 与 MyBatis 类似,是一种流行的持久层框架,它是 Mybatis 的最佳搭档,只做增强不做改变,为简化开发、提高效率而生。

2024-08-09 22:50:01 1313

原创 Spring Boot 入门以及对微服务的理解

自动装配(Autowiring)是 Spring 框架中的一个特性,它允许 Spring 自动为依赖注入的字段、方法或构造函数匹配和注入合适的 bean。通过自动装配,开发者不需要手动配置依赖关系,Spring 会根据一定的规则自动寻找合适的依赖并注入到需要的地方。内嵌 Tomcat(Embedded Tomcat)是指将 Apache Tomcat 服务器嵌入到 Java 应用程序中,使得应用程序可以独立运行,而不需要依赖外部的应用服务器。

2024-08-08 23:59:07 615

原创 【算法】普里姆算法解决修路问题

一、普里姆算法求最小生成树,也就是在包含 n 个顶点的连通图中,找出只有 n-1 条边包含所有 n 个顶点的连通子图,也就是所谓的极小连通子图二、普里姆的算法如下设 G=(V,E) 是连通网,T=(U,D) 是最小生成树,V,U 是顶点集合,E,D是边的集合若从顶点 u 开始构造最小生成树,则从集合 V 中取出顶点 u 放入到集合 U 中,标记顶点 v 的 visited[u]=1。

2024-08-07 23:59:23 585 1

空空如也

空空如也

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

TA关注的人

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