- 博客(114)
- 收藏
- 关注
原创 算法基础24-《进阶》AC自动机和卡特兰数
文章目录1 AC自动机1.1 AC自动机的实现1 AC自动机KMP算法解决的问题是,在一个大字符串中,求目标match串存在还是不存在,最早存在的地方在哪AC自动机要解决的问题是,在一个文章中,有一些候选字符串,求这个文章中命中了哪些候选串。1.1 AC自动机的实现为每一个候选串建立一个前缀树,每个树节点都有一个fail指针。头节点fail指针人为规定指向null,第一层节点的fail指针人为规定,指向头节点。建立好前缀树后,宽度优先遍历设置全部的fail指针比较绕,看不懂看代码宽度优先遍
2021-04-09 17:32:40
272
原创 23-《进阶》有序表原理及扩展
文章目录1 有序表原理及扩展1.1 搜索二叉树1.2 搜索二叉树的增删改查1.2.1 搜索二叉树的查找和添加1.3 传统搜索二叉树存在的问题1.3.1 平衡搜索二叉树1.3.2 左旋和右旋1.4 有序表1.5 有序表的实现(AVL树,SB树,红黑树)1.5.1 AVL树1.5.1.1 AVL树针对某个节点的平衡性处理1.5.2 SB树1.5.2.1 SB树针对某个节点的平衡性处理1.5.3 红黑树1.5.3.1 红黑树针对某个节点的平衡性处理Redis为什么选择跳表的结构?1.6 跳表SkipList(也可
2021-04-09 17:32:03
598
2
原创 算法基础22-《进阶》如何解决资源限制类题目
文章目录1 如何解决资源限制类题目1.1布隆过滤器用于集合的建立与查询,并可以节省大量空间(已讲)1.2 一致性哈希解决数据服务器的负载管理问题(已讲)1.3 利用并查集结构做岛问题的并行计算(已讲)1.4 哈希函数可以把数据按照种类均匀分流1.5 位图解决某一范围上数字的出现情况,并可以节省大量空间1.6 利用分段统计思想、并进一步节省大量空间1.7 利用堆、外排序来做多个处理单元的结果合并题目1(位图和分段统计):题目2(位图)1 如何解决资源限制类题目1.1布隆过滤器用于集合的建立与查询,并可以节
2021-04-09 17:31:42
542
原创 算法基础21-《进阶》哈希函数有关的结构和岛问题
文章目录1 哈希函数1.1 认识hash函数1.2 hash应用函数举例1.3 hash函数实现1.3.1 认识经典hash(数组加单链表)2 布隆过滤器2.1 位图的概念2.2 布隆过滤器2.2.1 布隆过滤去的添加2.2.2 布隆过滤器的查询2.2.3 k个hash函数如何选择,位图m空间选择多大2.2.4 布隆过滤器重要公式2.2.3 布隆过滤器的使用场景HDFS3 一致性Hash分布式存储的问题一致性hash的实现思路解决一致性Hash环的均分问题(负载均衡)利用hash函数的离散性不仅可以实现负载
2021-04-09 17:30:56
469
原创 算法基础20-《进阶》数组累加和问题
文章目录1 数组累加和问题三连1.1 数组累加和问题1.1.1 第一连例题--------------3251.1.2 第二连例题1.1.2 第三连例题1 数组累加和问题三连知识点补充:系统设计类题目设计一个系统,该系统的功能是可以一直不停的提供不同的UUID,该UUID使用的极为频繁,比如全球卖西瓜的,每个西瓜子是一个UUID思路,如果使用hashcode,有可能会产生碰撞。不使用hashcode,使用机器的ip或者mac地址加上纳秒时间,也不行,所有机器时间是否强同步解决思路:定义一台服
2021-04-09 17:30:17
539
原创 算法基础19-《进阶》打表技巧和矩阵处理技巧
文章目录1 打表技巧和矩阵处理技巧1.1 打表法1.1.1 打表找规律1.1.2 例题1 小虎买苹果1.1.2 例题2 牛羊吃草1.1.3 例题31.2 矩阵处理技巧zigzag打印矩阵转圈打印矩阵矩阵调整-原地旋转正方形矩阵---------------leedcode481 打表技巧和矩阵处理技巧在一个数组arr[]中,每个数的大小不超过1000,例如[10,9,6,12],所有的数,求所有数质数因子的个数总和?10=2*59=3*36=3*312=3*2*2我们可以把1000以内的数的质
2021-04-09 17:29:45
391
原创 18-《进阶》线段树
文章目录1 线段树(又名为线段修改树)1.1 线段树概念建立1.1.1 累加和数组建立1.1.2更新结构数组建立1.2 线段树案例实战---------6991.3 什么样的题目可以用线段树来解决?1 线段树(又名为线段修改树)线段树所要解决的问题是,区间的修改,查询和更新,如何更新查询的更快?线段树结构提供三个主要的方法, 假设大小为N的数组,以下三个方法,均要达到O(logN) :// L到R范围的数,每个数加上Vvoid add(int L, int R, int V, int[] arr)
2021-04-01 16:09:54
167
原创 算法基础17-《进阶》Morris遍历
文章目录1 Morris遍历1.1 Morris遍历目的算法流程时间复杂度估计1.2 Morris遍历的应用1.3 Morris遍历为最优解的情景1 Morris遍历1.1 Morris遍历目的在二叉树的遍历中,有递归方式遍历和非递归遍历两种。不管哪种方式,时间复杂度为O(N),空间复杂度为O(h),h为树的高度。Morris遍历可以在时间复杂度O(N),空间复杂度O(1)实现二叉树的遍历算法流程从一个树的头结点cur开始:1、cur的左树为null,cur = cur.right2、cur有
2021-04-01 16:07:54
138
原创 算法基础16-《进阶》Manacher(马拉车)算法
文章目录1 Manacher算法1.1 简介1.2 字符串最长回文子串暴力解1.3 Manacher解决最长回文串O(N)1.4 例题1 Manacher算法1.1 简介回文串概念:一个字符串是轴对称的,轴的左侧和右侧是逆序的关系,例如"abcba",“abccba”Manacher算法解决在一个字符串中最长回文子串的大小,例如"abc12321ef"最长回文子串为"12321"大小为5回文串的用途,例如我们可以把DNA当成一个字符串,有一些基因片段是回文属性的,在生理学上有实际意义1.2 字符
2021-04-01 16:07:12
167
原创 算法基础15-《进阶》KMP算法与bfprt算法
文章目录1 KMP算法1.1 KMP算法分析1.2 KMP算法应用题目1:旋转词题目2:子树问题2 bfprt算法2.1 bfprt算法分析2.2 bfprt算法应用1 KMP算法大厂劝退,面试高频^_^1.1 KMP算法分析查找字符串问题:例如我们有一个字符串str="abc1234efd"和match=“1234”。我们如何查找str字符串中是否包含match字符串的子串?暴力解思路:循环str和match,挨个对比,最差情况为O(NM)。时间复杂度为O(NM)KMP算法,在N大于M时
2021-04-01 16:04:45
357
原创 算法进阶14-《进阶》类似斐波那契数列的递归
文章目录1 类似斐波那契数列的递归1.1 求斐波那契数列矩阵乘法的方法1.2 菲波那切数列可优化为O(logN)时间复杂度1.2.1 矩阵加快速幂方法1.2.1.1 矩阵推导1.2.1.2 快速幂转化思路1.3 递推推广式1.4 迈楼梯问题1.5 递推经典例题一1.6 递推经典例题二2.蓄水池算法3.随机函数1 类似斐波那契数列的递归1.1 求斐波那契数列矩阵乘法的方法1、菲波那切数列的线性求解(O(N))的方法非常好理解(一次遍历,N项依赖于N-1项和N-2项)2、同时利用线性代数,也可以改写出另
2021-04-01 16:03:46
534
原创 算法基础13-《进阶》单调栈和窗口及其更新结构
文章目录1 单调栈和窗口及其更新结构1.1 窗口1.1.1 滑动窗口是什么?1.1.2 滑动窗口能做什么?1.1.3 维护窗口滑动的更新结构1.1.4 高频题:求滑动窗口最大值1.1.5 高频题二:达标子数组数量问题---560(不算)1.1.6 如何优化一个问题?1.2 单调栈1.2.1 单调栈结构1.2.2 单调栈的应用1 单调栈和窗口及其更新结构1.1 窗口1.1.1 滑动窗口是什么?窗口只是我们脑海中的一个范围,用过L和R来规定我们窗口的边界。保证L<=R这个条件1、滑动窗口是一
2021-04-01 16:03:16
281
原创 算法基础11-暴力递归思维、动态规划思维
文章目录1 暴力递归、动态规划1.1 暴力递归思维1.1.1 暴力递归下的尝试1.1.1.1 例一:汉诺塔问题1.1.1.2 例二:字符串子序列问题1.1.1.3 例四:字符串全排列问题1.1.1.4 例六:用递归逆序一个栈(考验脑回路)1.2 动态规划模型1.2.1 从左往右尝试模型1.2.1.1 数字字符转化问题1.2.1.2 背包价值问题1.2.2 范围上的尝试模型1.2.2.1 玩家抽取纸牌问题1.2.2.2 N皇后问题如何尝试一件事?1 暴力递归、动态规划1.1 暴力递归思维暴力递归实质就是
2021-03-30 19:32:50
363
原创 算法基础10-并查集、图相关算法介绍
文章目录1 并查集、图相关算法1.1 并查集1.1.1 并查集基本结构和操作1.1.2 例题1.2 图相关算法1.2.1 图的概念1.2.2 图的表示方法1.2.2.1 邻接表表示法1.2.2.2 邻接矩阵表示法1.2.3 图的遍历1.2.3.1 宽度优先遍历1.2.3.2 深度优先遍历1.2.4 图的拓扑排序1.2.5 图的最小生成树算法1.2.5.1 Kruskal(克鲁斯卡尔)算法1.2.5.2 Prim算法1.2.6 图的最短路径算法1.2.6.1 Dijkstra(迪杰特斯拉)算法1.2.6.2
2021-03-30 19:32:15
403
原创 算法基础09-贪心算法深度解析
文章目录1 贪心算法1.1 基本概念1.2.1 贪心算法解释1.2.2 贪心算法的证明问题1.2 贪心算法求解思路1.2.1 标准求解过程1.2.2 贪心算法解题套路1.3 贪心算法套路解题实战1.3.1 例一:会议日程安排问题1.3.2 例二:居民楼路灯问题1.3.3 例三:哈夫曼树问题1.3.4 例四:项目花费和利润问题1 贪心算法1.1 基本概念1、最自然智慧的算法2、用一种局部最功利的标准,总是能做出在当前看来是最好的选择3、难点在于证明局部最优解最功利的标准可以得到全局最优解4、对于贪
2021-03-30 19:31:30
989
原创 算法基础08-二叉树的递归思维
文章目录1 二叉树的递归套路1.1 二叉树的递归套路深度实践1.1.1 例一:判断二叉树平衡与否.1.2 例二:返回二叉树任意两个节点最大值1.1.3 例三:返回二叉树中的最大二叉搜索树Size1.1.4 例四:派对最大快乐值1.1.5 例五:判断二叉树是否是满二叉树1.1.6 例六:二叉搜索树的头结点1.1.7 例子七:是否是完全二叉树1.1.8 例子八:最低公共祖先1 二叉树的递归套路1、 可以解决面试中的绝大部分二叉树(95%以上)的问题,尤其是树形dp问题2、 其本质是利用递归遍历二叉树的便利
2021-03-30 19:30:55
355
原创 算法基础07-二叉树基本算法
文章目录1 二叉树基本算法1.1 二叉树的遍历1.1.1 二叉树节点定义1.1.2 递归实现先序中序后序遍历1.1.3 非递归实现先序中序后序遍历(DFS)1.1.4 二叉树按层遍历(BFS)1.2 二叉树的序列化和反序列化1.3 直观打印一颗二叉树1.4 题目实战1.4.1 题目一:返回二叉树的后继节点1.4.2 题目二:折纸问题1 二叉树基本算法1.1 二叉树的遍历1.1.1 二叉树节点定义 Class Node{ // 节点的值类型 V value;
2021-03-30 19:30:20
307
原创 算法基础06-链表相关面试题总结
文章目录1 链表问题1.1 链表面试常用数据结构和技巧1.1.1 快慢指针问题1.1.2 面试题一:判断回文结构1.1.3 面试题二:按值划分单链表1.1.4 面试题三1.1.5 面试题四1.1.6 面试题五1 链表问题面试时链表解题的方法论对于笔试,不用太在乎空间复杂度,一切为了时间复杂度对于面试,时间复杂度依然放在第一位,但是一定要找到空间最省的方法1.1 链表面试常用数据结构和技巧1、 使用容器(哈希表,数组等)2、 快慢指针1.1.1 快慢指针问题1、 输入链表头结点,
2021-03-30 19:29:43
202
原创 算法基础05-前缀树、桶排序、排序总结
文章目录1 前缀树结构(trie)、桶排序、排序总结1.1 前缀树结构1.2 不基于比较的排序-桶排序1.2.1 计数排序1.2.2 基数排序1.3 排序算法的稳定性1.3.1 稳定的排序1.3.2 不稳定的排序1.3.3 排序稳定性对比1.4 排序算法总结1.5 排序常见的坑点1.6 工程上对排序的改进1 前缀树结构(trie)、桶排序、排序总结1.1 前缀树结构单个字符串中,字符从前到后的加到一颗多叉树上字符放在路上,节点上有专属的数据项(常见的是pass和end值)所有样本都这样添
2021-03-30 19:29:07
254
原创 算法基础04-比较器、堆
文章目录1 比较器与堆1.1 堆结构1.1.1 完全二叉树结构1.1.2 数组实现堆1.1.3 大根堆与小根堆1.1.4 构建堆1.1.5 堆排序1.1.6 语言、系统提供的堆和手写堆的选择1.1.6.1 系统实现的堆1.1.6.2 系统堆和手写堆选择1.2 比较器1 比较器与堆1.1 堆结构1.1.1 完全二叉树结构完全二叉树结构:要么本层是满的,要么先满左边的,以下都是完全二叉树graph TDA-->BA-->Cgraph TDA-->BA--&
2021-03-30 19:28:34
322
原创 算法基础02-链表、栈、队列、递归、哈希表、顺序表
文章目录1 链表、栈、队列、递归、哈希1.1 链表1.1.1 单向链表1.1.2 双向链表1.1.3 单双链表简单练习1.2 栈、队列1.3 栈、队列常见面试题1.4 递归1.4.1 递归行为的时间复杂度1.5 哈希表HashMap、HashSet1.6 顺序表 TreeMap、TreeSet1 链表、栈、队列、递归、哈希1.1 链表1.1.1 单向链表单向链表的节点结构(可以实现成泛型) : public class Node { public int value;
2021-03-30 19:27:22
247
原创 算法基础01-复杂度、排序、二分、异或
文章目录1 时间复杂度、空间复杂度、排序、异或运算1.1 时间复杂度1.1.1 排序操作1.1.1.1 选择排序1.1.1.2 冒泡排序1.1.1.3 插入排序1.2 空间复杂度1.3 常数项时间复杂度1.4 算法最优解1.5 常见时间复杂度1.6 算法和数据结构脉络1.7 认识对数器1.8 认识二分法1.9 认识异或运算1 时间复杂度、空间复杂度、排序、异或运算1.1 时间复杂度常数时间操作:算数运算:+ - * /位运算:>>(带符号右移动)、 >>>(不带
2021-01-28 10:23:24
503
原创 springcloud中级学习---10.Hystrix断路器(下)
1.Hystrix 服务熔断熔断机制概述:熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。在SpringCloud框架里,熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand案例:Cont
2020-11-04 14:56:22
144
原创 springcloud初级学习---9.OpenFeign服务接口调用
1.初识 OpenFeign 服务接口调用官网:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeignFeign 简介:Feign 是一个声明式 WebService 客户端。使用 Feign 能让编写Web Service 客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign 也支持可插拔式的编码器和解码器。Spring Cloud
2020-11-04 09:19:18
128
原创 springcloud初级学习---8.Ribbon负载均衡服务调用
1.初识RibbonRibbon 简介:Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端 负载均衡的工具。Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出 Load Balancer(简称LB)后面所有的机器,Ribbon 会自动的帮助你基于某种规则(如简单轮询、随机连接等)去连接这些机器。我们很容易使用Ribb
2020-11-04 09:12:42
75
原创 springcloud初级学习---7.Consul服务注册与发现
1.Consul服务注册与发现Consul官网:https://www.consul.io/intro/index.htmlConsul简介:Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网络,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括:基于 raft 协议,比较简洁;支持健康检查,同时支持 H
2020-11-04 08:54:10
110
原创 springcloud初级学习---6.Zookeeper服务注册与发现
1.初识Zookeeper服务注册与发现Eureka停止更新了你怎么办?老项目还可以继续使用Eureka,新项目可以使用其他技术:ZookeeperConsulNacos使用SpringCloud整合Zookeeper代替Eureka2.Zookeeper入门概述:Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper工作机制:Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大
2020-11-03 22:00:55
137
原创 springcloud初级学习---5.Eureka服务注册与发现
1.Eureka集群原理问题: 微服务RPC远程服务调用最核心的是什么?高可用,试想你的注册中心只有一个only one,它出故障了那就呵呵o( ̄︶ ̄)o了,会导致整个微服务环境不可用。解决办法:搭建Eureka注册中心集群,实现负载均衡 + 故障容错Eureka集群的原理:互相注册,相互守望。一个Eureka集群包含7001和7002等许多服务,在这个集群中,7001指向其他所有服务,7002也指向其他所有服务。总之一句话:我自己一定要有我们这个圈子里的其他兄弟们的全部相关信息。
2020-11-03 21:43:31
109
原创 springcloud学习---入门(1-4)
前言: 尚硅谷老师的可真的很启发人,学的很踏实1. 新建Maven父工程 cloud2020maven架构选择org.apache.maven.archetypes:maven-archetype-sitepom.xml代码如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML
2020-10-29 19:45:02
194
原创 springcloud学习---笔记目录
入门:微服务架构零基础理论入门(小白必看)从2.2.x和H版开始说起关于Cloud各种组件的停更/升级/替换微服务架构编码构建初级:Eureka服务注册与发现Zookeeper服务注册与发现Consul服务注册与发现Ribbon负载均衡服务调用OpenFeign服务接口调用中级:Hystrix断路器Zuul路由网关Gateway新一代网关Spring Cloud Config分布式配置中心Spring Cloud
2020-10-29 16:48:23
98
原创 MyBatis笔记07---缓存
13、缓存 (了解)13.1、简介查询 : 连接数据库 ,耗资源! 一次查询的结果,给他暂存在一个可以直接取到的地方!--> 内存 : 缓存 我们再次查询相同数据的时候,直接走缓存,就不用走数据库了什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提
2020-10-09 09:43:44
58
原创 Mybatis笔记06---动态SQL
12、动态 SQL什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句利用动态 SQL 这一特性可以彻底摆脱这种痛苦。动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。ifchoose (when, otherwise)trim (where, set)
2020-10-09 09:29:39
120
原创 Mybatis笔记05---一对多和多对一处理
10、多对一处理多对一:多个学生,对应一个老师对于学生这边而言, 关联 … 多个学生,关联一个老师 【多对一】对于老师而言, 集合 , 一个老师,有很多学生 【一对多】SQL:CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO
2020-10-09 09:24:57
81
原创 Mybatis笔记04---使用注解开发
8、使用注解开发8.1、面向接口编程- 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程- 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好- 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;- 而各个对象之间的协作关系则成为系统设计的关键。小到不同类之
2020-10-09 09:23:07
1860
原创 Mybatis笔记03---ResultMap及分页
5、解决属性名和字段名不一致的问题1、 问题数据库中的字段新建一个项目,拷贝之前的,测试实体类字段不一致的情况public class User { private int id; private String name; private String password;}测试出现问题// select * from mybatis.user where id = #{id}//类型处理器// select id,name,pwd fro
2020-10-09 09:19:53
2196
原创 MyBatis笔记02---CRUD操作及配置解析
3、CRUD1、namespace将上面案例中的UserMapper接口改名为 UserDao;将UserMapper.xml中的namespace改为为UserDao的路径 .再次测试结论:namespace中的包名要和 Dao/mapper 接口的包名一致!2、select选择,查询语句;id : 就是对应的namespace中的方法名;resultType:Sql语句执行的返回值!parameterType : 参数类型!编写接口//根据ID查询用户
2020-10-09 09:15:09
136
原创 Mybatis笔记01---第一个程序
Mybatis-9.28环境:JDK1.8Mysql 5.7maven 3.6.1IDEA回顾:JDBCMysqlJava基础MavenJunitSSM框架:配置文件的。 最好的方式:看官网文档;1、简介1.1、什么是MybatisMyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接
2020-10-09 08:57:53
70
原创 MySQL学习---JDBC
JDBC核心技术讲师:宋红康微博:尚硅谷-宋红康第1章:JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。1.2 Java中的数据存储技术在Java中,数据库存取技术可分为如下几类:
2020-09-28 08:24:16
486
原创 JDBC相关编程
JDBC核心技术第1章:JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-66egPcF7-1598512627017)
2020-09-01 08:50:41
1218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人