自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HerryBody

If you don't learn to think when you are young, you may never learn.。

  • 博客(40)
  • 收藏
  • 关注

原创 SQL注入与SQL优化

目录什么是SQL注入SQL注入原理SQL注入有哪几种注入类型SQL注入的危害及防御?危害防御SQL优化的具体操作:什么是SQL注入SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。SQL注入原理SQL注入攻击指的是通过构建特殊的输入作为参数传入Web

2021-09-12 22:21:33 343

原创 死锁知识点总结

目录什么是死锁?死锁产生的四个必要条件?解决死锁的几种方式?预防死锁的几个方法?解决死锁的基本方法:什么是死锁?多个进程在运行过程中因资源争夺而造成的阻塞状态。比如一个线程A,按照先锁a再获得锁b的顺序获得锁,同时又有一个锁B,按照先锁b再获得锁a的顺序获得锁。死锁产生的四个必要条件? 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。

2021-09-12 22:19:36 346

原创 RPC知识点总结

目录RPC介绍及调用流程RPC原理为什么要用 Dubbo?什么是分布式?为什么要分布式?RPC调用流程:RPC最大的优点:RPC介绍及调用流程 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。为了让你调用远程方法像调用本地方法一样简单。 RPC原理先简单理解过程: 消费方调用服务,client stub将服务内容变成能网络传输的格式,client stub发送到服务端。 服务端解码,调用本地服务,返回

2021-09-12 22:11:15 339

原创 Dubbo知识点总结

Dubbo定义Dubbo 是一个高性能、轻量级的开源的远程过程调用面向服务分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。Dubbo 提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo 提供的下面四点特性:负载均衡——同一个服务部署在不同的机器时该调用那一台机器上的服务。服务调用链路生成——哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。Dubbo 可以为我们解决服务之间互相

2021-09-12 22:08:32 234

原创 volatile关键字和synchronized关键字

volatile关键字volatile关键字是轻量级的synchronized(严格来说不是轻量级syn),主要就是保证共享变量的可见性,就是一个线程修改一个变量,对其他的线程是可见的。而且volatile可以通过内存屏障防止指令重排序。内存屏障是一条CPU指令,主要用来确保一些特定操作的执行顺序,Java内存模型将在写操作后插入一个写屏障指令,在读操作前插入一个读屏障指令。内存屏障主要分为读读屏障,写写屏障,读写屏障,写读屏障,写读屏障是万能屏障。volatile的实现有两点,lock前缀指令可以

2021-09-09 17:32:17 454

原创 String中常用的方法

 1、int length();  语法:字符串变量名.length();  返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度) String a="挨点aidian \t\n"; int l = a.length(); System.out.println(l);运行结果:112、char charAt(值);  语法 :字符串名.charAt(值);  返回值为 char 类型。从字符串中取出指定位置的字...

2021-09-05 22:28:45 381

原创 HashMap知识点总结

key-value形式用key做hash定位 整个将key和value存储到相应位置1.7与1.8的区别 1.7 1.8 头插法 ...

2021-09-01 12:09:37 657

原创 计算机网络之TCP四次挥手

客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。 服务端收到该报文后,就向客户端发送 ACK 应答报文,接着服务端进入 CLOSED_WAIT 状态。 客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。 等待服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进...

2021-09-01 10:00:24 254

原创 计算机网络之TCP三次挥手

简单理解

2021-08-31 22:45:20 955

原创 计算机网络之体系结构

目录应用层域名系统 HTTP协议 运输层网络层数据链路层物理层总结应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。...

2021-08-28 22:45:43 136

原创 MySQL之索引

MySQL索引使用的数据结构主要有BTree索引 和 哈希索引 。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大部分场景,建议选择BTree索引。目录什么是索引?为什么要用索引?索引的优缺点分析索引的优点索引的缺点索引这么多优点,为什么不对表中的每一个列创建一个索引呢?B 树和 B+树区别覆盖索引选择索引和编写利用这些索引的查询的3个原则索引创建原则单列...

2021-08-27 21:14:50 129

原创 MySQL之事务

什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行 。事务就是保证这两个或多个操作要么都成功,要么都要失败。事务的四大特性(ACID) 原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性(Consistency): 执行事务后,数据库从一个正确的状态变化到另一个正确的状态; 隔离性(Isolation): 并发访问数据库时,一个用户的事务...

2021-08-27 15:22:20 143

原创 MySQL之MyISAM和InnoDB

MyISAMMyISAM是MySQL的默认数据库引擎(5.5版之前),包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。InnoDBInnoDB(事务性数据库引擎) ,只有InnoDB支持事务两者之间的区别1、是否支持行级锁 : MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,...

2021-08-27 10:55:58 311

原创 力扣之最短路径和问题

题目:给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。思路:动态规划状态定义:设dp为大小 m×n矩阵,其中dp[i][j] 的值代表直到走到(i,j) 的最小路径和转移方程:走到当前单元格 (i,j)的最小路径和 = “从左方单元格 (i-1,j) 与 从上方单元格(i,j−1) 走来的 两...

2021-08-26 22:25:38 1131 1

原创 力扣之岛屿数量问题

题目:给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。思路:可以使用深度优先搜索 遍历整个二维数组,如果当前数为1,则进入感染函数并将岛的个数+1感染函数:是一个递归标注的过程,会将所有相连的1都感染成2(这样就避免了遍历过程重复计数的情况)一个岛所有的1变成了2后,遍历就不会重复遍历了代码:...

2021-08-26 21:49:10 372 1

原创 JVM之垃圾收集器与内存分配策略

一、低延迟垃圾收集器衡量垃圾收集器的三项最重要的指标是:内存占用、吞吐量和延迟。Shenandoah收集器Shenandoah的目标是实现一种能在任何堆内存大小下都可以把垃圾收集的停顿时间限制在十毫秒以内的垃圾收集器 工作阶段·初始标记(Initial Marking):与G1一样,首先标记与GC Roots直接关联的对象,这个阶段仍 是“Stop The World”的,但停顿时间与堆...

2021-08-21 22:18:10 162

原创 JVM之经典垃圾收集器

目录各收集器之间的关系一、Serial收集器 特点 适用场景 优点二、ParNew收集器成也萧何败也萧何首选的新生代收集器原因三、Parallel Scavenge收集器 吞吐量计算公式Parallel Scavenge收集器与ParNew收集器的区别四、Serial Old收集器主要意义五、P...

2021-08-20 23:03:41 228

原创 JVM之HotSpot的算法细节体现

一、根节点枚举迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的。现在可达性分析算法耗时 最长的查找引用链的过程已经可以做到与用户线程一起并发,但根节点枚举始终还 是必须在一个能保障一致性的快照中才得以进行——这里“一致性”的意思是整个枚举期间执行子系统 看起来就像被冻结在某个时间点上,不会出现分析过程中,根节点集合的对象引用关系还在不断变化 的情况,若这点不能满足的话,分析结果准确性也就无法保证。在HotSpot 的解决...

2021-08-20 21:07:29 251

原创 jvm之垃圾收集算法

从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类。其均属于追踪式垃圾收集的范畴一、分代收集理论建立在两个分 代假说之上:1)弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的。2)强分代假说(Strong Generational Hypothesis):熬过越多次垃圾收集过程的对象就越难以消亡...

2021-08-19 22:21:10 129

原创 JVM之对象已死?

目录一、判断对象已死的算法1、引用计数算法 定义 优缺点 实例2、可达性分析算法 定义可作为GC Roots的对象二、再谈引用三、生存还是死亡?四、回收方法区判定一个常量是否“废弃“判定一个类型是否属于“不再被使用的类”一、判断对象已死的算法有两种: 引用计数算法 可达性分析算法...

2021-08-18 22:27:24 159

原创 记录设计模式之原型模式

目录一、模式定义二、模式角色三、模式实例浅拷贝 深拷贝四、模式分析 1、优缺点 2、适用场景一、模式定义原型模式使用原型实例指定创建对象的种类,并且通过拷贝原型对象创建新的对象。实际上就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。原型模式是简单程度仅次于单例模式的简单模式,它的定义可以简单理解为对象的拷贝,通过拷贝的方式创建一个已有对...

2021-08-18 20:26:32 119

原创 记录设计模式之建造者模式

一、建造者模式的定义与使用场景创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。在建造者模式中,有四个角色:Product产品类:通常是实现了模板方法模式,也就是有模板方法和基本方法Builder抽象建造者:规范产品的组建,一般是由子类实现。ConcreteBuilder具体建造者:实现抽象类定义的...

2021-08-17 20:49:31 85

原创 记录设计模式之抽象工厂模式

目录一、定义与类型二、使用场景三、优缺点四、代码实例现一、定义与类型定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需制定它们具体的类类型:创建型二、使用场景客户端不依赖于产品类实例如何被创建、实现等细节 强调一系列相关的产品对象(属于统一产品族)一起使用创建对象需要大量重复的代码 提供一个产品类的库,所以的产品以同样的接口出现,从而使客户端不依赖具体实现三、优缺点优点 具体产品在应用层代码...

2021-08-16 21:26:45 92

原创 记录设计模式之单例模式

目录一、什么是单例模式二、单例模式应用场景三、 单例模式的优缺点四、单例模式的实现 饿汉式 懒汉式 双重加锁机制 静态初始化一、什么是单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问...

2021-08-15 22:56:45 102

原创 Java面试坑之final、finally、finalize区别

一、final 在java中,fguanxi可以用来修饰类,方法和变量(成员变量或局部变量)。修饰类:当用final修饰类的时,表明该类不能被其他类所继承。修饰方法:方法不能被重写修饰变量: final成员变量表示常量,只能被赋值一次,赋值后其值不再改变。二、finallyfinally语句块是在try-catch时使用或在try之后使用,在捕获异常处理完成之后都会执行finally语句块,不管有没有异常。,也就是一定会执行。三、fin...

2021-08-15 22:23:49 113

原创 JVM浅解垃圾回收四种引用

目录一、强引用 定义 特点 使用场景 代码输出二、软引用 定义 特点 使用场景 代码 输出三、弱引用 定义 特点 使用场景 代码 输出四、虚引用 定义 特点 使...

2021-08-15 21:29:48 399

原创 记录设计模式之工厂模式(一)

目录一、什么是工厂模式?二、工厂模式的分类三、简单工厂模式 定义: 优缺点: 优点: 缺点: 适用环境及涉及角色 环境: 角色: 代码使用 pc接口 具体类 戴尔 具体类 微星 具...

2021-08-14 21:28:45 101

原创 Java初始化块、构造函数、初始化语句执行顺序

大家都知道Java中有静态与非静态初始化块、静态与非静态初始化语句以及构造函数。接下来我们来研究下它们的执行顺序。 在研究代码之前我们先来看下以下知识点: ...

2021-08-14 16:32:15 199

原创 浅谈Java反射和代理

目录一、反射 什么是反射? 获取类信息的三种方式反射进行赋值 方法一(直接暴力赋值) 方法二(Method反射调用自身)二、代理 什么是代理 静态代理 静态代理的好处 接口实现 实现类 代理类 jdk动态代理Cglib实现代理AOP 代理...

2021-08-13 23:00:34 269 1

原创 Java的值传递

一、值传递和引用传递在程序设计语言中将参数传给方法或函数的方式目前有两种:一种是值传递,一种是引用传递。值传递表示将实参的值传递给方法;引用传递表将实参a的地址引用传递给方法。Java是采用值传递的,Java程序中的方法得到的总是实参值的拷贝,二、代码运行 我们来看下下面代码的运行结果public class Main { public static void main(String[] args) { ...

2021-08-12 22:49:13 4460

原创 springboot+vue分配角色框与分配权限框

一、分配角色二、分配权限

2021-08-10 17:48:50 1214

原创 文件EasyExcel的导入和导出

一、EasyExcel是什么以及常用场景easyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。easyExcel常用场景:(1)数据的导入:减少录入的工作量 (2)数据的导出:统计信息归档二、easyExcel后端代码 1、首先引入依赖 <dependency> <groupId&g...

2021-08-09 20:24:12 324

原创 SpringBoot+VUE部署至服务器

一、配置好两个Tomcat,确保Tomcat能正常运行

2021-08-09 20:14:53 297

原创 Spring boot短信验证登录

一、短信验证码业务 我用的是第三平台的短信服务,当用户点击发送验证码,会调用短信平台接口,从而给手机发验证码。流程如下:c首先需要工具类,来发送验证码public class DXMessageUtil { public static Boolean sendMessage(Long phone, String code){ int appId = xxxxxx; String appKey = "xxxx...

2021-08-09 16:30:15 955

原创 AOP主要方法

上一篇简单说了下aop的基本概念,想必大家对aop都有了基本的认识。接下来主要讲解下aop的使用。 1、首先引入依赖<!-- aop切面 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></...

2021-08-07 23:10:57 545

原创 AOP基础

111

2021-08-07 21:06:13 184

原创 Token的使用

首先是token工具类JWT的添加public class JwtUtil { //过期时间 30min private static final int EXPIRE_TIME = 30; //私钥 private static final String TOKEN_SECRET = "privateKey"; private static final String USER_NAME = "name"; /** * ...

2021-08-06 23:08:08 1048

原创 128陷阱

啊啊

2021-06-14 14:01:26 85

原创 springboot实战和idea知识点总结

原来小白写代码,不懂什么命名规范,一直随便写,最近写的项目文件有些多,过一段时间后自己写的都不清楚了,还要一点一点找,捋思路(you'yu'ben'ren'mei'y)

2021-06-14 12:08:48 1553 2

原创 springboot实战异常问题总结

最近在用springboot写一个实战项目,遇到了些问题以及异常。现在总结一下:1、在进行添加时,出现了id没有默认值

2021-06-13 22:56:08 399 1

空空如也

空空如也

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

TA关注的人

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