11 2022 档案

摘要:幂等 什么是幂等 幂等性:****多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 使用幂等的场景 1.前端重复提交 在用户注册、用户创建商品之后,如果用户不小心多点了几次,就会在数据库中创建多条重复记录,因此GET方法必须要进行幂等处理。 2.接口超时重试 对于给 阅读全文
posted @ 2022-11-29 16:12 深海之燃 阅读(92) 评论(0) 推荐(0) 编辑
摘要:HTTP(Hyper Text Transfer Protocol) 超文本传输协议。 ##HTTP协议格式 ==这个报文中的空行是为什么呢?== 其实为了解决黏包问题。主要原因如下: (1)因为HTTP协议并没有规定报头部分的键值对有多少个,使用空行就相当于报文的结束标记。 (2)因为TCP协议中 阅读全文
posted @ 2022-11-29 11:51 深海之燃 阅读(54) 评论(0) 推荐(0) 编辑
摘要:SQL注入 产生场景 主要是由于数据未与代码进行严格的隔离导致的。 ==场景1== 原始的更新需求 update table set memo = 'id' 由于用户的误触,输出了特殊符号,导致如下: update table set memo = ''#jjjkjkjjjjkjk' 这样就导致了S 阅读全文
posted @ 2022-11-28 20:57 深海之燃 阅读(63) 评论(0) 推荐(0) 编辑
摘要:TCP/IP协议 核心主旨 计算机之间是如何有效地进行连接和沟通,就是由于网络协议来定义和发送的。 网络基本模型 | A机器 | 协议 | B机器 | | | | | | 应用层 | HTTP/FTP | 应用层 | | 传输层 | TCP/UDP | 传输层 | | 网络层 | IP | 网络层 阅读全文
posted @ 2022-11-28 19:40 深海之燃 阅读(132) 评论(0) 推荐(0) 编辑
摘要:数据类型 整型 ==这里引入第一个问题:为什么byte的存放范围是-128~127呢?== 首先补充计算机的基础知识:二进制 其实是因为硬件上的二极管的限制,一个1节是8个bit,这里的bit其实就是二极管 其实是根据二进制的规律,然后设计出反码来解决减法运算,设计出补码来解决0的符号问题 int 阅读全文
posted @ 2022-11-24 09:45 深海之燃 阅读(66) 评论(0) 推荐(0) 编辑
摘要:树 为什么需要有树 树提高了数据存储,读取的效率。利用 二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也可以保证数据的 插入,删除,修改的速度。 二叉树的遍历 二叉树的前序遍历;中序遍历;后续遍历是根据根节点的顺序进行遍历的 ==前序遍历== public void 阅读全文
posted @ 2022-11-22 21:58 深海之燃 阅读(16) 评论(0) 推荐(0) 编辑
摘要:最小生成树 普利姆算法 算法思想 如果从A点出发,则先比较A-G;A-B;A-C,从而选择最小的点为G点,因此将AG作为生成树, 再依次比较距离AG生成树距离最小的顶点,从而加入生成树种,这里选择的就是AGB 普利姆算法图解 核心代码 ——prim最小生成树构建 for (int k = 1; k 阅读全文
posted @ 2022-11-22 16:56 深海之燃 阅读(23) 评论(0) 推荐(0) 编辑
摘要:KMP算法 算法的背景 KMP 是一个解决模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法 核心思想 KMP 方法算法就利用之前判断过信息,通过一个 next 数组,保存模式串中前后最长公共子序列的长度,每次回溯时,通过 next 数组找到,前面匹配过的位置,省去了大量的计算时间。 算 阅读全文
posted @ 2022-11-21 20:54 深海之燃 阅读(23) 评论(0) 推荐(0) 编辑
摘要:贪心算法 基本思想:就是程序在进行运算时,保证每一步达到最优值。不要求总体最优,而是要求每一步都是最优。 区间问题 给定多个区间,计算让这些区间互不重叠所需要移除区间的最小个数。 INPUT:[[1,2],[2,4],[1,3]] OUTPUT:1 这里贪心算法的体现:就是优先保留结尾小且不相交的区 阅读全文
posted @ 2022-11-21 20:28 深海之燃 阅读(38) 评论(0) 推荐(0) 编辑
摘要:动态规划 动态规划的原理其实也是将大问题划分为小问题,从而一步步获取最优解,但是适用于动态规划求解的问题,子问题往往不是独立的,是具有相互关联性。 背包问题 有一个背包,容量为4磅,现有如下物品: ①要求达到的目标为装入的背包的总价值最大,并且重量不超出 ②装入的物品不能重复 ==思路分析== 对于 阅读全文
posted @ 2022-11-21 17:48 深海之燃 阅读(21) 评论(0) 推荐(0) 编辑
摘要:分治法 分治法思想 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题 合并:将各个子问题的解合并为原问题的解。 分治法的实践 汉诺塔问题 思路: 就是把复杂的问题简单化,拆分为一个个小问题:如果我们有 n >= 阅读全文
posted @ 2022-11-16 22:05 深海之燃 阅读(61) 评论(0) 推荐(0) 编辑
摘要:图 为何要有图呢? 其实就是对于线性表和树的补充,线性表和树只能表示一对一的关系,而图可以表示多对多的关系。 关于图的基本解释: 完全图、连通图、非连通图、连通分量 图的两种表示方式 邻接矩阵 邻接表 图的两种搜索方式 辅助理解资源: 深度优先搜索与广度优先搜索 深度优先搜索 原理: 首先把一条路径 阅读全文
posted @ 2022-11-15 22:05 深海之燃 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Hash算法 hash算法背景 因为在有序表中查找,经常使用二分查找,这样效率就依赖与数据的规模,如果数据的规模过大,算法的效率就会变得很低,那么,有没有一种方法,直接通过关键字key一次得到所要的结果呢,这也就是hash表的由来。(hash表通过映射极大地提高了查询效率)——典型的用空间换时间 = 阅读全文
posted @ 2022-11-07 20:29 深海之燃 阅读(45) 评论(0) 推荐(0) 编辑
摘要:查找算法 二分查找(初始二分查找) ==算法原理:==就是一个分治的思想:分而治之,不断划分数据的查找范围,就可以提高查找效率,效率达到了O(logn) 前提:必须对应的是有序列表 //手写二分法,需求是返回索引 public static int binarySearch3(int[] arr,i 阅读全文
posted @ 2022-11-06 21:02 深海之燃 阅读(23) 评论(0) 推荐(0) 编辑
摘要:排序 冒泡排序法(交换) ==基本原理==:依次比较相邻元素的值,使值较大的元素逐渐前移或者后移,因为每一轮排序后值最大的元素一定是后移了一位。 //手写冒泡排序法 public static void bubbleSort(int arr[]){ int temp = 0;//定义交换用的临时变量 阅读全文
posted @ 2022-11-06 17:17 深海之燃 阅读(14) 评论(0) 推荐(0) 编辑
摘要:时间复杂度与空间复杂度 时间复杂度 首先我们要明确时间频度的概念。算法中语句执行次数被称为时间频度 当时间无穷大时,有几个步骤可以忽略: 算式中的常数可以直接忽略 低次项可以被直接忽略 最高项系数可以被忽略 常用的时间复杂度 常数阶O(1) 对数阶O(log2n) 线性阶O(n) 线性对数阶 O(n 阅读全文
posted @ 2022-11-04 20:24 深海之燃 阅读(20) 评论(0) 推荐(0) 编辑
摘要:递归(回溯) 为什么程序需要递归? 递归就是通过设置一定的规则和结束条件,让计算机来帮助我们去遍历,利用计算机的算力帮助我们找到正确答案。 (就是我设计一个算法,然后计算机帮我跑这些值) 递归中的return 递归中的return用法 return语法 return是一层一层返回,从被调用函数返回到 阅读全文
posted @ 2022-11-02 21:35 深海之燃 阅读(17) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示