自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

959

gitee.com/Z_959

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

原创 AOP完全注解开发AspectJ

这里需要改的只有配置文件xml换成java文件:package cn.zsp.spring5.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;@Conf

2021-02-25 15:05:37 352

原创 依赖聚合/组合UML

左下右

2021-02-22 17:52:59 141

原创 工厂模式

1.简单工厂模式2.工厂方法模式3.抽象工厂模式工厂方法模式UML抽象方法模式UML

2021-02-22 17:51:38 213

原创 验证码获取过程

1.后端调用库绘制好验证码2.绘制的那些数字字母都是后端定义好的3.将绘制的图片的URL地址通过网络给客户端,然后客户端通过img属性,引用图片4.后端在绘制验证码之后,注意,数字字母不可以丢弃要放在Session中5.当客户端提交验证时候,提交表单,然后后端接收后和Session中的数字和字母比较。...

2021-02-22 17:32:45 2568

原创 react脚手架配置代理总结

方法一在package.json中追加如下配置"proxy":"http://localhost:5000"说明:优点:配置简单,前端请求资源时可以不加任何前缀。缺点:不能配置多个代理。工作方式:上述方式配置代理,当请求了3000不存在的资源时,那么该请求会转发给5000 (优先匹配前端资源)方法二第一步:创建代理配置文件在src下创建配置文件:src/setupProxy.js编写setupProxy.js配置具体代理规则:const proxy = requir

2021-02-22 17:18:25 215

原创 接口隔离原则

定义:客户端不应该依赖它不需要的接口。另外一种定义:类间的依赖关系应该建立在最小的接口上。场景:在接口I中定义多个方法(假如A,B,C,D),类C1通过实现接口I来扩展自己需要的方法A、B;类C2通过实现接口I来扩展自己需要的方法C、D;那么接口I对于类C1和类C2来说不是最小接口,则类C1和类C2必须去实现他们不需要的方法。解决方案:采用接口隔离原则。将臃肿的接口I拆分为独立的几个接口,类C1和类C2分别与他们需要的接口建立依赖关系。接口隔离原则说白了就是,让客户端依赖的接口尽可能地小,接口隔离原则

2021-02-19 18:34:08 139

原创 单一职责原则

单一职责原则的英文名称是Single Responsibility Principle,简称是SRP:There should never be more than one reason for a class to change.RBAC模型(Role-Based Access Control,基于角色的访问控制,通过分配和取消角色来完成用户权限的授予和取消,使动作主体(用户)与资源的行为(权限)分离)BO(Business Object,业务对象)Biz(Business Logic,业务逻辑)

2021-02-19 18:30:50 120

原创 里氏替换原则

里氏替换原则里氏替换原则(Liskov Substitution Principle,LSP)● 第一种定义,也是最正宗的定义:If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is substituted for o2 then S is a su

2021-02-19 18:17:55 149

原创 [Vue2] 生命周期/钩子函数

1. vue对象的生命周期 1). 初始化显示 * beforeCreate() * created() * beforeMount() * mounted() 2). 更新状态 * beforeUpdate() * updated() 3). 销毁vue实例: vm.$destory() * beforeDestory() * destoryed()2. 常用的生命周期方法 created()/mounted(): 发送a.

2021-02-19 16:43:34 220

原创 webstorm的快捷键

WebStom默认快捷键:alt+F2 可以选择打开的浏览器 上下键移动选择Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*…*/ )ctrl+shift+A 快速查找并使用编辑器所有功能(必记)ctrl+alt+s 打开配置窗口alt+Insert 新建一个文件或其他shift+tab/tab 减少/扩大缩进(可以在代码中减少行缩进)alt+F1 查找代码在其他界面模块的位置,颇为有用Shift+F6 重构-重命名Ctrl+

2021-02-18 18:31:32 335

原创 图像处理之Hessian矩阵提取关键点

给定一个图像f(x,y)上的一点(x,y)。其黑塞矩阵如下:其中Ixx表示X方向的二阶偏导数Iyy表示Y方向的二阶偏导数Ixy表XY方向的二阶导数因为导数的公式是f’(x)=(f(x+dx)-f(x))/dx在数字图像里,通常用相邻像素的灰度值来计算,它们的距离 dx=1。一阶导数就是相邻像素的灰度值的差f’(x) = f(x+1)-f(x)从二维图像来看,沿X方向和Y方向的一阶偏导数分别为f’x(x,y) = f(x+1,y)-f(x,y)f’y(x,y) = f(x,y+1)

2021-02-08 17:06:36 809 1

原创 什么是灰度图

图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度。实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色。产品能够展现的灰度数量越多,也就意味着色彩表现力更加丰富,能够实现更强的色彩层次。例如三原色16级灰度,能显示的颜色就是161616=4096色。不过目前产品256级灰度已经非常地普遍了。  所谓颜色或灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。灰度级取决于每个像素对应的刷新存储单元的位数和显示器

2021-02-08 16:50:57 19360 1

原创 高斯滤波

1.高斯函数1. 一维高斯函数对于任意的实数a,b,c,是以著名数学家Carl Friedrich Gauss的名字命名的。高斯的一维图是特征对称“bell curve”形状,a是曲线尖峰的高度,b是尖峰中心的坐标,c称为标准方差,表征的是bell钟状的宽度。2. 二维高斯函数A是幅值,x。y。是中心点坐标,σx σy是方差,图示如下,A = 1, xo = 0, yo = 0, σx = σy = 13.二维图像设计说道“sigma表示的是标准差,如果标准差比较小,这是就相当于图像点运

2021-02-08 12:37:02 694

原创 图像识别过程(概念)

图像识别过程分为图像处理和图像识别两个部分。图像处理图像处理(imageProcessing)利用计算机对图像进行分析,以达到所需的结果。图像处理可分为模拟图像处理和数字图像处理,而图像处理一般指数字图像处理。这种处理大多数是依赖于软件实现的。其目的是去除干扰、噪声,将原始图像编程适于计算机进行特征提取的形式,主要包括图像采样、图像增强、图像复原、图像编码与压缩和图像分割。1)图像采集图像采集是数字图像数据提取的主要方式。数字图像主要借助于数字摄像机、扫描仪、数码相机等设备经过采样数字化得到

2021-02-08 11:20:56 4711

原创 JVM_08 执行引擎_1(Execution Engine)

文章目录执行引擎概述Java代码编译和执行过程机器码、指令、汇编语言机器码指令指令集汇编语言高级语言字节码C、C++源程序执行过程解释器现状执行引擎概述执行引擎是Java虚拟机的核心组成部分之一虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字

2021-02-04 14:26:36 312 1

原创 对象的内存分布

美团面试:jvm的对象头是如何存储的,对象头中有哪些信息对象头里面的东西:运行时元数据,类型指针:Hashcode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳。如果是数组的化还需要记录长度就比如下面的代码来看,内存分布情况:由于是static的main方法所有局部变量表没有this,如果是非静态方法的话第一个放this。其次:栈帧:局部变量表,操作数栈,动态链接,方法返回值地址,附加信息cut对应的是堆空间的实例化对象。然后实例化对象的空间如图所示,有对象头,实例数

2021-02-03 19:38:47 265

原创 JVM_02 类加载子系统

JVM架构图1.类加载子系统作用类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识;ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定加载的类信息存放于一块成为方法区的内存空间。除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)1.1类加载器ClassLoader角色1.2加载通过一个类的全限定明获取

2021-02-03 12:57:59 180

原创 装饰者模式_设计模式_java

装饰者设计模式:可以解决类爆炸的问题和cop原则比如如果是一个卖咖啡的商店,去卖不同种类的咖啡,有黑咖啡,意大利咖啡,还可以加入很多调理的话.如果用传统的面向对象的方法的话会使得类爆炸。如果引用装饰者模式可以动态的增加方法。使得类自动建造这里有装饰者和被装饰者。以前我们都是咖啡上加入调理,现在我们是调理中加入咖啡Drink.javapublic abstract class Drink { public String des; private float price = 0.0f;

2021-02-03 12:47:55 261

原创 JVM执行流程

public class demo01{ public static void main(String args[] ){ int i = 500; int j = 100; int a = i/j; int b = 50; System.out.println(a + b); }}ipush 放到操作数栈istore 到本地变量表div 除getstatic #2->常量池中的#2找到函数符号引用转为直接引用invokevirtual最后肯定有一个

2021-02-03 12:07:52 247 1

原创 JVM_01 简介

1.JVM的位置2.一些JVMSUN ClassicExact VMHotSpot VM :HotSpot指热点代码探测技术BEA JRockit:(BEA 已被Oracle收购) 专注于服务端应用,世界最快的jvm之一IBM J9Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster Anywhere.最可能替代HotSpot的产品3.Android虚拟机 DVM

2021-02-03 11:24:24 189

原创 桥接设计模式_设计模式_java

桥接设计模式:解决了很多依赖关系,解决了类爆炸问题,不可扩展问题以及解决了单一职责原则传统的一个问题:卖手机:这个如果加上一个方法的话会增加很多手机,如果增加一个手机的话会加上很多方法变的代码比较多桥接模式:Phone充当桥接的桥梁Brand.java品牌public interface Brand { public void open(); public void close(); public void call(); }小米手机实现接口xiaomi.java

2021-02-02 20:24:04 167

原创 适配器模式_设计模式_java_接口模式

接口模式:顾名思义只是为了实现所有接口中的一个或者几个接口的模式Interface4.javapublic interface Interface4 { public void m1(); public void m2(); public void m3(); public void m4(); }AbsAdapter .javapublic abstract class AbsAdapter implements Interface4{ public void m1() {

2021-02-02 18:42:19 129

原创 适配器模式_设计模式_java_对象适配器

对象适配器是解决了类适配器耦合使得继承变为聚合Voltage220.javapublic class Voltage220 { public int output220() { int src = 220; System.out.println("输入"+src+"伏"); return src; }}Voltage5.javapublic interface Voltage5 { public int output5();}VoltageAdapt.java变

2021-02-02 18:26:23 149

原创 适配器模式_设计模式_java_类适配器

适配器模式:如同插口一样:3口和2口如何进行链接呢,需要一个适配器进行转换1.类适配器模式2.对象适配器模式3.接口适配器模式1.类适配器模式Voltage220.javapublic class Voltage220 { public int output220() { int src = 220; System.out.println("输入"+src+"伏"); return src; }}Voltage5.javapublic interface Volta

2021-02-02 18:12:07 139

原创 Mybatis之动态SQL语法详解

Mybatis动态SQL​ 1、sql_if & sql_where 判断&OGNL表达式 <!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 --> <!-- public List<Employee> getEmpsByConditionIf(Employee employee); --> <select id="getEmpsByConditionIf" resultType="com.atguigu.mybati

2021-02-02 16:14:59 490

原创 建造者模式_设计模式_java

建造者模式:顾名思义:是创造型模式而最重要的是解耦来获得建造者和用户之间的依赖关系JDK中的StringBuldder就是用的建造者设计模式类图:1.House.javapublic class House { private String baise; private String wall; private String roofed; public String getBaise() { return baise; } public void setBaise(Strin

2021-02-01 22:49:37 197

原创 原型模式_设计模式_java

复制粘贴功能我们都用过,我们可以把一个文件从一个地方复制到另外一个地方,复制完成之后这个文件和之前的文件也没有一点差别,这就是原型模式的思想:首先创建一个实例,然后通过这个实例去拷贝创建新的实例。这篇文章就好好地分析一下原型模式。文章目录1.认识原型模式2.代码实现原型模式1.浅拷贝:2.深拷贝:3.分析原型模式1、克隆对象不会调用构造方法2、访问权限对原型模式无效3、使用场景1.认识原型模式1、概念就比如克隆羊,用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。java上分析:首

2021-02-01 18:07:18 200

react hooks.zip

react hooks.zip

2023-09-17

空空如也

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

TA关注的人

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