自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文带你精通Python装饰器

一文带你精通Python装饰器1.引入首先我们来用一个例子来引出什么是装饰器以及为什么要使用它.下面是定义的一个Python function,仅仅是print一行字段def f1(): print("This is a function 1")那么此时有了新的需求,需要在函数被调用执行时输出当时的时间,着很简单只需要调用一下其他类库就可以,代码如下from datetime import datetimedef f1(): print(datetime.now())

2021-07-11 23:18:29 256 3

原创 问题:Mysql修改了密码但是Sqlyog仍然可以使用旧连接

这是由于MySQL对于User@%和User@localhost是两个不同的用户,他们可以有相同的密码,一个用户的密码修改并不会影响另一个用户的密码。当你使用下面的命令修改密码后仅仅只是对@localhost用户修改了密码,所以sqlyog此时仍然可以使用alter user 'root'@'localhost' identified by '123';当你使用下面的命令修改密码后sqlyog就需要使用新密码了 alter user 'root' identified by '85...

2020-07-08 20:23:09 1073

原创 浅析Innodb事务底层实现原理

如果对事务的基本知识不是太了解,可以先去看这篇文章【MySQL】事务知识小结MySQL只有innodb引擎支持事务,因此这篇文章也是以innodb为背景写的。一、事务并发会带来什么问题?脏读:读到了其他事务未提交的数据 不可重复读:当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改成功的数据,导致两次读取到的数据不一致(update、delete) 幻读:当前事务读第...

2019-07-11 16:42:57 1759

原创 MySQL数据库索引知识小结

目录一、为什么需要使用索引?二、什么样的数据结构适合做索引?2.1、Hash算法(index = hash(key) 2.2、平衡二叉树2.3、B树2.4、B+树三、B+树中的节点到底存放多少元素四、密集索引和稀疏索引区别五、Innodb与Myisam的索引区别5.1Innodb中采用的是聚簇索引+辅助索引5.2MyISM使用的是稀疏...

2019-07-07 09:40:42 343

原创 【数据结构】初步认识B、B+树

在学习B树前,如果没有2-3树的基础,建议先去学习一下2-3树会更好理解B树图解2-3树(学习红黑树、B树的基础)首先需要明白B树就是B-树,因为B树的原英文名称为B-tree,所以很多人把B树又叫做B-树,这就导致很多人以为B树分为:B-、B、B+树三种,其实英文中B-Tree中的“-”不是减号,只是一个横杠的意思,就好比B+树英文为B+-tree.明白了基本概念后,对B树进行一个基本的...

2019-07-06 18:05:55 228

原创 【数据结构】深入分析红黑树

目录一、为什么要学习红黑树?二、红黑树的基本介绍三、图解+代码实现红黑树添加元素流程首先分析向2-3树中的2节点插入元素1.插入左孩子2.插入右孩子接下来分析向2-3树中的3节点插入元素1.插入右孩子(颜色反转filpColors)2.插入左孩子(右旋转)四、总结红黑树的添加元素过程①:向2-3树的2节点添加元素(分为插入的元素是左孩子还是右孩子)...

2019-07-05 00:30:49 386

原创 【数据结构】图解2-3树(学习红黑树、B树的基础)

一、基本介绍2-3树:满足二分搜索树的基本性质,是一颗绝对平衡的树,节点可以存放一个或两个元素,每个节点有2个或3个孩子(如果对二分搜索树不太了解,可以去看这篇文章【数据结构】二分搜索树小结) 如下图所示都是2-3树,左边是节点存放了一个元素,右边是节点存放了两个元素,对于右边的图,左子树<b,中间的孩子树则在b、c之间,右孩子则大于c。 ...

2019-07-03 14:39:14 957 1

原创 【数据结构】平衡二叉树AVL

一、基本概念 之前在分析二分搜索树时,就提出了一个问题,如果向二分搜索树插入顺序的元素就会形成下图,这样就会造成查询效率低等问题,这时就需要引入平衡二叉树解决此类问题,如果对二分搜索树不了解建议先去看看这篇文章【数据结构】二分搜索树小结平衡二叉树:本质上是一颗二叉查找树对于任意一个节点,平衡因子不能超过1,下图就是一颗平衡二叉树平衡因子: 左子树和右子树的高度差...

2019-07-03 00:14:56 414

原创 【数据结构】通过Trie字典树实现敏感词过滤

一、基本概念 Trie字典树主要用于存储字符串,Trie的每个Node保存一个字符。用链表来描述的话,就是一个字符串就是一个链表。每个Node都保存了它的所有子节点。 如下图所示,根节点不包含任何信息。每个节点表示一个字符串中的字符,从根节点到红色节点的一条路径表示一个字符串。红色节点不一定是叶子节点。 使用Trie这种数据结构存储字符串,查询每个字...

2019-07-01 18:47:41 1242 2

原创 【SSM】SpringMVC入门

目录一、什么是MVC设计模式?二、什么是SpringMVC三、SpringMVC核心组件四、SpringMVC执行流程五、SpringMVC的使用①:基于XML配置的开发②:基于注解配置的开发③:基于注解配置的开发其他方法五、拦截器一、什么是MVC设计模式?分为三层1.Controlle(控制层):负责接收并处理请求,响应客户端 ...

2019-05-22 19:07:14 116

原创 【SSM】Spring事务处理总结

目录一、事务的基本介绍二、MySQL事务处理三、JDBC事务处理四、Spring的事务处理内容介绍1.Spring事务处理的核心API ①:平台事物管理器PlatformTransactionManager接口 ②:事务定义TransactionDefinition接口定义如下: ③:事务状态TransactionStatus接口定义如下: ④:事务管...

2019-05-17 03:30:19 243

原创 【SSM】Spring JDBCTemplate总结

目录一、基本介绍二、环境搭建三、JDBC Template基本使用1.JdbcTemplate开发流程2.JdbcTemplate常用方法3.案例:①:DDL,使用excute()方法进行创建一个user数据库表②:使用update对数据进行增删改(update只能执行一条sql)③:使用batchUpdate对数据进行增删改(可以执行多条sql)④:...

2019-05-15 22:46:58 1004

原创 【SSM】AspectJ开发AOP流程

目录一、AspectJ基本介绍二、@AspectJ的通知类型三、在通知中通过value属性定义切点四、使用案例 1.首先创建目标类以及切面类 2.使用AspectJ进行AOP开发①:@Before前置通知②:@AfterReturing前置通知③:@Around环绕通知④:@AfterThrowing异常抛出通知⑤:@After最终通知...

2019-05-14 22:44:17 405

原创 【SSM】Spring的Bean管理

目录一、Spring的Bean管理(XML)方式二、Spring的Bean管理(注解)方式三、Spring容器中Bean的生命周期四、XML与注解方式的混合使用一、Spring的Bean管理(XML)方式 有三种方式:使用类的构造器方式(默认为无参) 使用静态工厂方法实例化(简单工厂模式)...

2019-05-14 17:00:08 999

原创 【SSM】Spring的属性注入

目录一、XML方式1、构造方法注入2.属性setter方法注入3、复杂类型的属性注入二、注解方式一、XML方式对于类成员变量,Spring注入方式有三种1.构造方法注入2.属性setter方法注入1、构造方法注入通过构造方法注入Bean的属性值或依赖对象,它保证了Bean实例在实例化后就可以使用首先创建一个对象类public class User...

2019-05-14 16:23:30 795

原创 【设计模式】代理模式详解

一、基本介绍核心作用:通过代理,控制对对象的访问,可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。应用场景:安全代理:屏蔽对真实角色的直接访问。 远程代理:通过代理类处理远程方法调用(RMI) 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象。(比如你要开...

2019-05-13 21:53:17 132

原创 【SSM】MyBatis动态代理及参数传递

目录一、原始dao开发的问题二、mapper动态代理模式三、测试四、Mybatis的多参数传递①:JavaBean传递模式(传递的参数为JavaBean的实体类)②:Map模式(如果传递的参数个数较少而且没有对应的JavaBean)③:注解@param模式五、参数为集合或数组一、原始dao开发的问题 程序员需要写dao接口和dao实现类,需要向...

2019-05-13 11:24:17 1175

原创 【SSM】MyBatis环境搭建及简单的增删改查

目录一、基本介绍二、环境搭建及测试三、MyBatis总体操作过程分解四、增删改查①:查找数据②:增加数据③:删除用户④:更新数据一、基本介绍概述:mybatis是一个持久层的框架,是apache下的顶级项目。 mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/...

2019-05-09 15:45:03 247

原创 【数据结构】堆和优先队列

目录一、堆二、优先队列一、堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是: ...

2019-05-07 23:27:16 414

原创 【设计模式】工厂模式

一、基本介绍核心本质:帮助我们来实例化对象,用工厂方法代替new操作 将选择实现类、创建对象统一管理和控制。从而将调用者跟实现类解耦和。分类:简单工厂模式、工厂方法模式、抽象工厂模式二、3种工厂模式介绍①:简单工厂模式优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系...

2019-05-07 16:01:11 160

原创 【设计模式】单例模式

目录一、基本介绍二、代码实现三、解决反射、序列化破解上面几种实现方式的漏洞(除枚举式外)①反射漏洞②反序列化漏洞一、基本介绍核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。优点:1.由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他 依赖对象时,则可以通过在应用启动时直接产生一个单例...

2019-05-07 14:12:17 121

原创 【MySQL】七种JOIN连接详解

1.内连接内连接查询出的数据是两张表的交集,即上图中红色所表示的部分。2.左外连接左外链接如图中红色部分的内容,即包含左边表的全部行(不管右边的表中是否存在与它匹配的行),和右边表中全部匹配的行。3.右外链接右外链接如图中红色部分的内容,即包含右边表的全部行(不管左边的表中是否存在与它匹配的行),和左边表中全部匹配行。4.左连接左连接如图中红色部分的内容,...

2019-05-06 21:39:58 11446

原创 【MySQL】数据库的设计三范式

1、第一范式:字段不能再分定义:每一个字段是原子性不能再分。举例: 下图就不符合第一范式,因为contact列中不是原子性可以再分为phone和QQ 经过修改后下图就满足第一范式。2、第二范式:有主键, 非主键字段完全依赖主键定义:第二范式事建立在第一范式的基础之上,要求数据库中所有非主键字段完全依赖主键,不能产生部份依赖。 ...

2019-05-05 12:03:22 174

原创 【MySQL】Explain

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法:就是在你的sql语句前加上 explain 即可下面我对以下每个字段做详细的介绍(除table外,talbe所在列就意为是那张表)一、id(表的读取顺序) 分为三种情况 id相同、id不同、id相同又不同 ①:id相同(自上而下执行...

2019-05-03 14:51:55 1105

原创 【MySQL】视图、存储过程和函数

一、视图概念:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表 ,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。 就类似于封装了一个sql语句,里面有具体的操作你只需要调用即可使用。应用场景: 多个地方用到同样的查询结果、该查询结果使用的sql语句较复杂创建视图:create vie...

2019-04-21 20:10:05 861

原创 【MySQL】系统变量和自定义变量

一、系统变量分类:全局变量:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效 会话变量:仅仅针对当前会话(连接)有效介绍:变量由系统提供,不是用户定义,属于服务器层面使用语法:1.查看所有的全局变量 (全局+会话变量)SHOW GLOBAL VARIABLES;SHOW SESSION VARIABLES; ...

2019-04-21 18:28:26 346

原创 【MySQL】事务知识小结

目录一、事务基本介绍二、数据库隔离级别1.为什么要对数据库数据使用隔离?2.事务并发有哪些问题:3.通过隔离级别解决事务并发问题的方案(自上到下递减):三、delete和truncate在事务中的区别一、事务基本介绍概念:事务由一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。整个单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执...

2019-04-21 13:54:00 361

原创 【MySQL】中主键(primary key)和唯一键(unique)区别

保证唯一性 是否允许为空 一个表中可以有多少个 能否组合primary key √ × ...

2019-04-20 19:00:50 27826 6

原创 【Java】注解内容小结

一、注解入门注解(Annotation)是从JDK5.0开始引入的新技术。Annotation的作用: – 不是程序本身,可以对程序作出解释。(这一点,跟注释没什么区别) --可以被其他程序(比如:编译器等)读取。(注解信息处理流程,是注解和注释的重大区别 。如果没有注解信 ...

2019-04-16 20:37:17 290

原创 【Java】多线程知识总结

一、多线程简介 介绍多线程之前要介绍线程,介绍线程则离不开进程。  进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;  线程:就是进程中的一个独立控制单元,线程在控制着进程的执行。一个进程中至少有一个进程。 多线程:一个进程中不只有一个线程。  为什么要用多线程?    ①、为了更...

2019-04-09 22:38:42 260

原创 【Java8】Lambda的简单使用

一、Lambda: Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。二、Lambda语法: Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作...

2019-04-08 10:02:36 240

原创 【数据结构】二分搜索树小结

一、基本概念二分搜索树:(又:二分查找树,二叉排序树)它或者是一棵空树,或者是具有下列性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。...

2019-04-07 20:29:00 269

原创 【Java代码实现】面试常见七大排序详解

一、基本介绍十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现...

2019-04-02 22:16:46 1446

原创 IDEA导入java项目失败:Could not determine Java version using executable

最近在做项目,在导入项目的代码时,一直报Could not determine Java version using executableD:\Java\bin\java.exe.的错误,在网上找了好多解决方法,最后是修改了项目中gradle目录的gradle-wrappter.properties中的distributionUrl这一行的参数。 ...

2019-03-17 13:41:20 1585

原创 TCP协议详解

TCP基本概念:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 [1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TC...

2019-03-16 17:51:53 304

原创 UDP协议详细解析

一、基本概念基本定义:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送...

2019-03-14 18:52:53 5248

原创 【动态规划】lettcode120 三角形最小路径和

: 首先记住:动态规划问题,最重要的就是找到状态转移方程,而状态转移方程很重要的一点就是明确函数的意义所在,以及记录结果的数据结构。 我们从上往下想,对于第一层的结点[0][0]它与第二层相邻的结点是[1][0],[1][1] 对于第二层的结点[1][0]...

2019-03-11 22:20:32 206

原创 【Linux】RPM和YUM

一、RPM包的管理                                                       基本介绍:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件件。RPM是RedHat Package Manager(RedHat软件包管理工 具)的缩写,类似windows的setup.exe,这一文件格式名称虽...

2018-12-22 11:39:54 251 2

原创 【Linux】进程管理

一、基本介绍1) 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一 个ID号。2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。3) 每个进程都可能以两种方式存在的,前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法 看到的进程,通常使用后台方式执行。4) 一般系统的服务...

2018-12-20 22:27:08 121

原创 【Linux】自动获取Ip的两种方法

       在安装好Centos系统后,每次登陆上之后都需要通过手动方式进行网络连接,过于麻烦,因此改成自动连接的方式。                             一、登陆后,通过页面来设置自动获取ip(获取的ip是随机的)操作步骤:1.点击系统、首选项、网络链接2.在现实的界面点击选中System eth0,点击编辑3.将自动链接打上对勾,再点击应用即...

2018-12-18 17:41:03 19967 1

空空如也

空空如也

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

TA关注的人

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