- 博客(36)
- 收藏
- 关注
原创 红黑树(Red–black tree)
一、红黑树的概念:在计算机科学中,红黑树是一种自平衡二叉搜索树。每个节点存储一个表示“颜色”(“红”或“黑”)的额外位,用于确保树在插入和删除期间保持平衡。当树被修改时,新树被重新排列和“重新绘制”以恢复着色属性(整个树的红黑结点会重新进行绘制,以适应红黑树的颜色排列规则),这些属性限制了树在最坏情况下的不平衡程度。属性的设计使得这种重新排列和重新排序可以有效地执行。重新平衡不是完美的(不能像平衡二叉树一样绝对平衡,只能做到相对平衡),但保证了搜索的时间,其中是树的节点数。插入和删除操作以及树的重新
2021-06-17 16:37:57 916 2
原创 MySQL的Explain
一、Explain介绍:使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的语句或是表结构的性能瓶颈,可以用来分析Select,Update,Delete,Insert,Replace等语句。二、Explain的作用:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询三、Explain的使用:Explain + SQL语句结果集的格式ColumnJSON
2021-06-16 17:23:43 253
原创 二叉树总结
一: 二叉树概念二叉树是n (n≥0) 个结点的有限集合:每个结点最多有两棵子树。左右子树有顺序。二: 二叉树特性二叉树有五种基本形态:空树只有一个根结点根结点只有左子树根结点只有右子树根结点既有左子树又有右子树三: 特殊二叉树1、斜树2、满二叉树分支结点都存在左子树和右子树叶子都在同一层非叶子结点的度一定是2相同深度二叉树中满二叉树的结点个数最多,叶子数最多3完全二叉树叶子结点只可能在层次最下两层出现且最下层的叶子结点一定集中在左部连续的位置,结
2021-06-04 13:35:46 175
原创 平衡二叉树(AVL树)
概念:平衡二叉树(AVL树)是特殊的二叉排序树,特殊的地方在于左右子树高度之差绝对值不超过1,而且左右子树又是一颗平衡二叉树,左右子树的高度差为该结点的平衡因子,平衡因子的值只可能是-1、0、1。平衡二叉树的建立过程和二叉排序树的建立过程是相似的,都是从一颗空树开始陆续插入结点。不同的地方在于平衡二叉树的建立过程中,由于插入结点可能破坏结点的平衡性。所以需要进行平衡调整。以距离插入结点最近的,平衡因子绝对值大于1的结点为根称为最小不平衡子树。(即上图43、22、10)每插入一个结点,都要检.
2021-06-03 15:20:14 533
原创 JS中的return xx;
return 返回值;该语句结束函数的执行,将返回值回调给调用函数。return true;更多的是返回真值。return false;在JS中,我们通常用来阻止提交表单或者阻止函数下面的代码继续执行。return;把控制权交由页面,让页面决定是否继续执行。...
2021-06-01 16:43:33 274
原创 范式和反范式的理解
范式: 符合某一级别的关系模式的集合,范式主要分为六大范式。下面对其中常用的前三大范式做介绍第一范式: 在此规则内,列具有原子性,不可再进行分割,同一列中不能有多个值。第一范式就是无重复的列。例: 员工姓名、员工性别、电话此例不符合第一范式,因电话可再分为手机电话、家庭电话、办公室电话等。第二范式: 在第一范式的规则上,建立第二范式,在此规则中,要求每一行都都必须有唯一的标识,既需要有其中一列是不可重复的,通常是主键,作为唯一标识。第二范式就是非主键的列完全依赖于主键。例: 员工编号
2021-04-28 13:51:26 466
原创 何为“脚手架“
就像建筑施工现场中的真实脚手架一样,脚手架它为您的项目提供了某种(快速,简化,临时)结构,您可以依靠该结构来构建真实项目。它可以被用来描述许多东西,从抽象数据库层到Web应用程序文件夹结构以及生成和管理项目依赖项。它不是特定于任何语言/技术的东西。它只是从实际脚手架中借用的一个术语。您将构建一些快速,简化的(有时是外部的,有时是临时的)结构,这将帮助您在该临时结构的上方,内部或外部构建真实,更复杂的最终结构。就像真正的脚手架一样,脚手架结构旨在支持项目的构建过程,而不是项目本身(有一些例外)。.
2021-04-02 17:49:55 318
原创 为何使用存储过程
何为存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。更新示例:-- nsql_upd_UserDROP PROCEDURE nsql_upd_UserGOCREATE PROCEDURE nsql_upd_User @vchrU
2021-04-02 17:17:43 130
原创 算法——搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0思路笔记:因为数组是有序的,所以从左往右进行遍历,只要是第一次出现大于或等于数据,直接返回索引,因为有可
2021-03-30 17:00:50 129
原创 算法——只出现一次的数字
题目:给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。注意:中心下标可能出现在数组的两端。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:中心下标是 3 。左侧数之和 (1 + 7 + 3 = 11),右侧数之和 (5 + 6 = 11) ,二者相等。
2021-03-30 16:49:08 133
原创 算法——替换空格
题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."题解:class Solution { public String replaceSpace(String s) { StringBuilder sb=new StringBuilder(); for(int i=0;i<s.length();i++){ ch
2021-03-30 16:41:01 109
原创 算法——只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题解:交换律:a ^ b ^ c <=> a ^ c ^ b任何数于0异或为任何数 0 ^ n => n相同的数异或为0: n ^ n => 0class Solution { public int singleNumber(int[] num
2021-03-30 16:37:38 111
原创 算法——存在重复元素
题目:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true题解:class Solution { public boolean containsDuplicate(int[] nums) {
2021-03-30 16:27:50 110
原创 算法——旋转数组
class Solution { //双重循环 完成K次数组向右移动 public void rotate_1(int[] nums, int k) { int arrLength=nums.length; k%=arrLength;//去除超出数组需要进行的重复步骤 for(int i=0;i<k;i++){ int temp = nums[arrLength-1]; for(int j=
2021-03-30 16:03:55 174
原创 Java: 运算符优先级
该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。优先级运算符运算符介绍结合性1[ ] ( ) .数组下标 ,方法调用 ,属性获取从左向右2! ~ ++ - -一元运算符从右向左3* / %乘,除,取余从左向右4+ -加,减从左向右5<< >>&.
2021-01-15 17:51:43 308
原创 HTTP vs HTTPS: 有什么区别?
HTTPHTTPSURL中是http://URL中是https://不安全安全默认端口80默认端口443在应用层运行在传输层运行不需要SSL证书需要SSL证书或TSL证书,另需CA签名不需要域验证至少需要域验证,某些证书甚至需要法律文档验证数据不加密数据在发送前已加密快速比HTTP慢...
2021-01-08 10:42:29 176
原创 ES6: 支持ES6的浏览器版本(汇总表)
浏览器不支持的版本部分支持的版本支持的版本IE6-1011Edge12-1415-18、79-87Firefox2-56-5354-86Chrome4-2021-5051-90Safari3.1-77.1-9.110-13.1、14、TPOpera10-12.115-3738-72iOS Safari3.2-6.17-9.310-13.7、14.2Opera MiniallAndroid ...
2020-12-18 16:12:10 15174 2
原创 JAVA: 基本类型&&引用类型
类型种类默认值占用字节范围包装类整型byte01-128~127Byte整型short02-32768 ~ 32767Short整型int04-2^31 ~ 2^31-1Integer整型long0L8-2^63 ~ 2^63-1Long浮点型float0.0f4Float浮点型double0.0d8Double字符型char\u00002Character布尔型bo...
2020-12-16 18:09:33 106
原创 HTTP: 状态码从100到599总结介绍(收藏翻看)
HTTP状态码被分为了5大类,从100到599,有一些状态码给出了其所代表的含义,有一些则还待被赋予含义,下面对这5大类状态码进行介绍:100~199——信息性状态码状态码原因短语含义 100 Continue说明收到了请求的初始部分,请客户端继续。发送了这个状态码 之后,服务器在收到请求之后必须进行响应。 101 Switching Protocols
2020-12-07 18:15:23 3417
原创 JS: 各种数据类型在IF等条件中の转换
Boolean 类型的字面值 true 和 false 是区分大小写的。也就是说,True 和 False (以及其他的混合大小写形式)都不是 Boolean 值,只是标识符。各种数据类型及其对应转换成true和false的规则:数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串“”(空字符串)Number任何非零数字值(包括无穷大)0和NaN (NaN 属性是代表非数字值的特殊值)Obje.
2020-12-07 11:14:30 213
原创 JDK12: JDK12新功能深度解析
在此次JDK12中,共更新了8个特性,下面对新特性做介绍。JDK12官方说明五大新特性一.表达式switch(预览特性):switch新特性:使用lamda表达式进行替换。public class SwitchTest { @Test public void test1(){ Week day=Week.FRIDAY; switch (day){ case MONDAY: case TUESDAY:
2020-10-28 16:23:44 1027
原创 Java: trim()方法和strip()方法之间的区别
Java在JDK11中的String类中引入strip方法,trim()和strip()功能类似,主要区别是:trim()可以去除字符串前后的半角空白字符strip()可以去除字符串前后的全角和半角空白字符半角和全角半角是我们多数人在打字的时候使用的状态,如果我们不去刻意调整半全角,它会一直伴随着我们,因为半角状态下,人们已经习惯了这种打字模式,半角状态下可以使用任何标点符号,而且对于空格也没有特殊限制。全角占两个字节,半角占一个字节。半角全角主要是针对标点符号来说的,全角标点占两个字节,半
2020-10-28 14:35:59 7089 2
原创 JDK13: JDK13新功能深度解析
五大新特性一.表达式switch(二次预览):switch新特性在JDK12已经进行预览,JDK13中二次预览,使用lamda表达式进行替换。public class SwitchTest { @Test public void test1(){ Week day=Week.FRIDAY; switch (day){ case MONDAY: case TUESDAY: case W
2020-10-22 15:28:09 979
原创 JDK14: JDK14新功能深度解析
主要七大特性一.模式匹配instanceof(预览特性):使用 instanceof,省去了在内部的类型转换,如下代码。 //新特性之前 @Test public void test1(){ Object obj=new String("hello,before JavaJdk14"); if (obj instanceof String){ String str =(String)obj; //必须显示的声明强制类型转换
2020-10-21 17:17:27 772
原创 JDK15: JDK15新功能深度解析
主要特性一.密封类sealed Classes:用于限制类的使用,密封的类和接口限制其他可能继承实现他们的类或接口。通过在类class添加关键字sealed实现,声明此类为密封类。接着在类名后添加关键字permits,声明可以该类可以被继承的子类,如下Animal类或Dog类。子类继承父类封装的密封类sealed,需要使用关键字final,sealed,或non-sealed进行修饰。当使用final修饰时,与之前JDK版本所声明相同,不可在被继承,如下Cat,SmallDog,LargeDo
2020-10-20 16:26:01 1477 1
原创 Mybatis generator报错targetProject不存在解决方案
问题截图原因路径不存在或者当前文件不可访问该路径解决方案使用./查看当前目录,以及当前目录可以访问的子目录,发现访问不到项目的根目录。要想设置targetProject为java的默认源文件夹,只能通过…/去找他的父级目录,这样targetProject即能设置目标文件夹/java,...
2020-07-06 18:19:12 931
原创 2020 intellij idea安装的插件所在的系统目录(idea插件目录)
2020年前的intellij idea安装的插件所在目录默认在:C:\Users\Administrator\.IntelliJIdea2019.3\config\plugins2. 2020年的intellij idea安装的插件所在目录默认在:C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.1\plugins...
2020-07-03 17:07:01 28051 2
原创 解决MySQL报错2003-Can not connet to MySQL server
问题截图原因错误2003表示网络连接已经被拒绝解决方案查看mysql服务器是否正在运行,如果没运行,手动吧它启动。查看是否启动网络连接。查看指定的网络端口是否是服务器上配置的端口,我这边网络端口指定的和服务器指定的都是3306端口,默认是3306。...
2020-07-03 16:44:59 1367
原创 IDEA: 无效的源发行版解决方案
问题截图原因原因是idea中设置Project SDK版本和Project language level不兼容我这里Project SDK用的是JDK1.8,而Project language level调到9,JDK1.8无法去编译8以上的版本,所以导致报错。解决方案将Project language level调成默认和SDK相同,这样当你改变JDK版本,Project language level也会相应的做调整。将 Project language level调整为8或8以
2020-06-24 15:34:53 470
原创 ORA-00001: 违反唯一约束条件解决方案(oracle 00001)
原因主要原因是在进行插入INSERT或者更新UPDATE的时候,违反唯一约束,导致操作某行数据时出现重复的值。解决方案删除或者更改唯一约束。修改你使用的插入INSERT或者更新UPDATE的语句。如果当有多个表进行操作时,你不知道哪个表出现唯一性索引的错误,你可以使用一下语句进行查询:SELECT DISTINCT table_nameFROM all_indexesWHERE index_name = 'CONSTRAINT_NAME';例子执行的数据库语句:SEL
2020-06-24 12:03:31 49023
原创 ORA-00904: 标识符无效解决方案(oracle 00904)
原因这是由于引用了不存在的列,或者在SELECT语句中引用了无效的别名造成的。这也可能意味着你在不需要的时候使用了引号。我们可以检查这个作为下面解决方案的一部分。解决方案检查列名是否在你所引用的表中。在引用列时,检查是否引用了正确的别名。检查列是否使用了正确的表别名(例如,如果department表的别名为dept,那么它应该是dept.department_id,而不是sup.department_id)。检查是否在WHERE子句中引用列别名。检查列名是否小
2020-06-23 18:09:33 27078
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人