自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BOBO的博客

高度不够看到的都是问题,格局太小纠结的都是鸡毛蒜皮。boubou516@163.com

  • 博客(106)
  • 资源 (1)
  • 收藏
  • 关注

原创 红黑树原理

1.二叉查找树 1.特点: 左子树所有节点小于根节点 右子树所有节点大于根节点,左右子树分别是一棵二叉查找树。 2.举例: 2.红黑树 【二叉查找树+自平衡(自旋+变色)】 1.特点 1.节点分为红色或者黑色 2.根节点必为黑色 3.叶子节点都为黑色,且为null 4.连接红色节点的两个子...

2020-09-03 11:29:13 227

原创 解决:SpringBoot 搭建聚合项目 报 “程序包XXX不存在”

项目目录:api 被 provider 依赖,provider项目打包时,报错:原因:api也是SpringBoot工程,SpringBoot工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar。默认情况下,这两种jar的名称相同,在不做配置的情况下,普通的jar先生成,可执行jar后生成,造成可执行jar会覆盖普通的jar。而provider工程无法依赖api工程的可执行jar。所以编译失败:程序包xxx不存在。解决办法:api中添加配置:&.

2020-08-22 18:08:50 1396 4

原创 IDEA 快速搭建SpringBoot项目 提供GitHub源码地址

一、环境:IDEA+SpringBoot+MySql+MyBatis+ThymeleafGitHub源码地址:https://github.com/516516/springboottestdemo二、搭建好的项目总览:访问测试:三、项目搭建:1.File --> new --> project :initializr:https://start.aliyun.com【初始化选择 使用 阿里云】【速度快--亲测】next完善...

2020-08-16 11:27:56 722

原创 SimpleDateFormat 线程不安全原因及解决办法

0.翻车演示:package com.knowledge.system.a_interview.ai_view;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.*;/** * @program: demo

2020-08-07 11:14:51 419

原创 Java 反射

简介1.定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制中,一个类的属性,方法,构造方法,以及注释 都有与之对应的类对其进行描述,反射的核心思想就是把原有类的属性、方法、构造方法、注释乃至包命用一个又一个的类去拆...

2020-03-08 20:13:03 186

原创 Java 泛型

简介:Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型接口:package com.knowledge.system.java_system.generices_system.generices_instan...

2020-03-08 14:30:27 150

原创 观察者模式(Observer Pattern)

介绍观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同 时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通 知并更新,属于行为型模式。优点1、观察者和被观察者之间建立了一个抽象的耦合。2、观察者模式支持广播通信。缺点1、观察者之间有过多的细节依赖、提高时间消耗及程序的复杂度。2、使用要得当,要避免循环调...

2020-02-24 16:38:39 159

原创 状态模式(State Pattern)

介绍在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。优点1、封装了转换规则。2、枚举可能的状态,在枚举状态之前需要确定状态种类。3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态...

2020-02-24 16:38:25 261

原创 访问者模式(Visitor Pattern)

介绍访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。优点1、符合单一职责原则。2、优秀的扩展性。3、灵活性。缺点1、具体元素对访问者公布细节,违反了迪米特原...

2020-02-24 16:38:00 264

原创 策略模式(Strategy Pattern)

介绍策略模式(Strategy Pattern)是指定义了算法家族、分别封装起来,让它们之间可以互 相替换,此模式让算法的变化不会影响到使用算法的用户。优点1、策略模式符合开闭原则。2、避免使用多重条件转移语句,如 if...else...语句、switch 语句3、使用策略模式可以提高算法的保密性和安全性。缺点1、客户端必须知道所有的策略,并且自行决定使用哪一个策略类...

2020-02-24 16:37:47 650

原创 备忘录模式(Memento Pattern)

介绍备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。优点1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。2、实现了信息的封装,使得用户不需要关心状态的保存细节。缺点消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。使用场景...

2020-02-23 19:49:20 203

原创 中介者模式(Mediator Pattern)

介绍中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。优点1、降低了类的复杂度,将一对多转化成了一对一。2、各个类之间的解耦。3、符合迪米特原则。缺点中介者会庞大,变得复杂难以维护。使用场景1、系统中对象之间存在比较...

2020-02-23 19:11:12 140

原创 迭代器模式(Iterator Pattern)

介绍迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。优点1、它支持以不同的方式遍历一个聚合对象。2、迭代器简化了聚合类。3、在同一个聚合上可以有多个遍历。4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点由于迭代器模式将...

2020-02-23 17:20:25 168

原创 命令模式(Command Pattern)

介绍命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。优点1、降低了系统耦合度。2、新的命令可以很容易添加到系统中去。缺点使用命令模式可能会导致某些系统有过多的具体命令类。使用场景认为是命令的地方都可以使...

2020-02-23 16:47:52 269

原创 责任链模式(Chain of Responsibility Pattern)

介绍责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。优点1、降低耦合度。它将请求的发送者和接收者解耦。...

2020-02-23 15:41:37 164

原创 解释器模式(Interpreter Pattern)

介绍解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。优点1、可扩展性比较好,灵活。2、增加了新的解释表达式的方式。3、易于实现简单文法。缺点1、可利用场景比较少。2、对于复杂的文法比较难维护。3、解释...

2020-02-23 14:55:00 192

原创 代理模式(Proxy Pattern)

介绍代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。在生活中,我们经常见到这样的场景,如:租房中介、售票黄牛、婚介、经纪人、快递、 事务代理、非侵入式日志监听等,这些都是代理模式的实际体现。目的1、保护目标对象2、增强目标对象。分类1、静态代理2、动态...

2020-02-23 12:39:21 1173

原创 装饰器模式(Decorator Pattern)

介绍装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对 象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰者模式在我们生活中应用也比较多如给煎饼加鸡蛋;给蛋糕加上一些水果;给房子 装修等,为对象扩展一些额外的职责。优点1、装饰者是继承的有力补充,比继承灵活,不改变原有对象的情况下动态地给一个对象 扩展功能,即...

2020-02-23 11:59:31 203

原创 享元模式(Flyweight Pattern)

介绍享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来...

2020-02-23 11:32:23 230

原创 外观模式(Facade Pattern)

介绍隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口,这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。优点1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。缺点不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。使用场景...

2020-02-23 10:50:01 171

原创 组合模式(Composite Pattern)

介绍将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。优点1、高层模块调用简单。2、节点自由增加。缺点在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。何时使用1、想表示对象的部分-整体层次结构(树形结构),如树形菜单,文件、文件夹的管理。2、您希望用户忽略组合对象与单个对象...

2020-02-22 22:29:02 141

原创 桥接模式(Bridge Pattern)

介绍将类的功能层次结构和实现层次结构相分离,使二者能够独立地变化,并在两者之间搭建桥梁,实现桥接,将抽象和实现放在两个不同的类层次中,使它们可以独立地变化。优点1、抽象和实现的分离。 2、优秀的扩展能力。 3、实现细节对客户透明。缺点桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。使用场景1、如果一个系统需要在构...

2020-02-22 22:02:31 285

原创 适配器模式(Adapter Pattern)

介绍将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,属于结构型设计模式。使用场景已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不 同厂家造成功能类似而接口不相同情况下的解决方案,有点亡羊补牢的感觉。优点能提高类的透明性和复...

2020-02-22 19:44:53 278

原创 原型模式(Prototype Pattern)

介绍原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此...

2020-02-22 16:13:44 194

原创 建造者模式(Builder Pattern)

介绍将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。对比现实世界,类似于: 要造一台计算机主机,需要CPU、内存卡、显卡、电源等。组装过程也相对复杂,比如一些接线的处理。 要造一辆汽车,需要底盘、方向盘、发动机、座椅、轮子等等。 要造航空母舰,需要甲板、起飞装置、机库、动力系统、武器库等。...

2020-02-22 14:37:08 273

原创 抽象工厂模式(Abstract Factory Pattern)

介绍在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。缺点:...

2020-02-20 15:44:50 164

原创 工厂模式(Factory Pattern)

介绍意图:提供了一种创建对象的最佳方式,定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决问题:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。应用实例:1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。优点:1、一个调用...

2020-02-20 12:15:12 168

原创 模板模式(Template Pattern)

使用场景:模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现、适用于流程标准化的业务场景。1、有多个子类共有的方法,且逻辑相同。 2、重要的、复杂的方法,可以考虑作为模板方法源码实例:JDK:AbstractList、MyBatis:BaseExecutor等优点:1、封装不变部分,扩...

2020-02-19 21:48:50 267

原创 单例模式(Singleton Pattern)

单例模式(Singleton Pattern)使用场景:独一无二确保一个类在任何情况下都绝对只有一个实例,并只提供一个全局访问点。优缺点 优:保证内存中只有一个实例,减少了内存开销,避免对资源的过多占用。类图: 略源码实例: ServletContext、ServletContextConfig、在 Spring 框架...

2020-02-16 21:17:16 185

原创 软件设计模式教程

教程简介教程将涵盖软件开发中涉及的23种设计模式,并且实时更新最新企业生产案例,侧重于实际应用案例讲解,期间会穿插部分设计模式在JDK、Mybatis、以及Spring源码中的使用,当然更多的还是介绍在企业实际项目中的经典使用。目录...

2020-02-16 18:16:19 444

原创 架构设计原则

软件开发--具体技术的学习?为什么学这项技术?----不同的目的对于即将学习的深度要求不一样、对于学习完之后产出的东西也不一样。1.学完这个是自己要写一个一样的框架出来???具体要求: 精通技术的实现细节 能够在其基础之上进行重构 实现出一个性能更优、功能更强大、更易于维护便于定位问题的商用框架 框架如何对外推广学习中主要考虑的几个点: 框架架构...

2020-01-17 17:07:19 215

原创 日期工具类

package com.knowledge.system.dateutil;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @program: zhs-pom * @description...

2020-01-17 09:59:27 117

原创 BigDecimal 工具类

package com.knowledge.system.bigdecimalutil;import java.math.BigDecimal;/** * @program: demo-pom * @description: BigDecimal工具类 * @author: bo.hu * @create: 2020-01-14 17:23 **/public class B...

2020-01-16 15:53:36 777

原创 Mysql8.0安装+navicat for Mysql安装+navicat for Mysql。

下载地址:https://www.mysql.com/downloads/环境变量配置:MYSQL_HOME:E:\TOOL\Mysql\Mysql-8\mysql-8.0.17-winx64%MYSQL_HOME%\bin;解压目录下建my.ini文件,内容如下:[mysqld]# 设置3306端口port=3306# 设置mysql的安装...

2019-09-23 14:25:58 1081

原创 IDEA Maven 聚合项目(多模块)搭建--最精简

一、环境:IDEA2018 Maven3.6 java1.8 Mysql8.0 环境搭建参考:二、搭建过程:创建空项目:file-->new project-->Empty project 创建父模块 file-->new-->Moudle-->Maven-->下图父工程(pom)fil创建java项目子...

2019-05-08 16:19:55 1261

原创 Moodle插件开发大全

moodle插件开发国内可参考资料少的可怜,该笔记为完成毕设过程整理,囊括插件目录结构自动化创建工具使用、插件数据库创建工具使用、插件开发调试技巧、插件开发必备php基础知识及moodle平台封装源码解读等。其中还包括自己开发的插件的一些内容,所以请读者自行判断择需阅读,写这篇博客的目的是将插件的大致开发流分享给大家,让大家尽快上手,具体的知识请到moodle官网阅读英文开发手册。整理匆忙...

2019-05-05 14:44:39 4187 1

原创 eclipse快捷键大全---分操作归纳

eclipse 快捷定制 http://www.runoob.com/eclipse/eclipse-shortcuts.htmlAlt+Shif+L:所有快捷键撸代码Ctrl+N 新建 Alt+Shift+S 快速生成getter与setter方法 Ctrl+/ 注释当前行,再按则取消注释 Ctrl+Shift+/ 整块注释,Ctrl+Shift+\ 取消整块注释...

2019-03-07 20:41:51 1470

原创 前端接口请求测试

1、win+R cmd2、ping czj.haiziwang.com3、浏览器F124、根据Remote Address 来改host中的具体IP。

2019-02-28 17:31:13 3242

原创 台式机连网基本设置

1、电脑连网IP设置:2、打开网络和共享中心:3、更改适配器设置:

2019-02-28 10:40:25 4096

原创 Type Dynamic Web Module 4.0 requires Java 1.8 or newer----彻底杀死Bug

0、确定要修改到的地方:(个人jdk版本是1.8)0、1Project Facets0、2Java Build Path ----Library0、3Java Compiler0、4.setting文件0、5pom.xml文件添加jdk版本限制 1、Project Facets右键项目----Properties----Maven 2、Java Buil...

2018-12-19 15:43:49 9096 8

网络编程课件

网络编程课件,包括计算机网络基本知识点介绍 主要是windows socket编程技术

2018-04-13

空空如也

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

TA关注的人

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