自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式(十九)——中介者模式(Mediator Pattern)

中介者模式(Mediator Pattern)基本介绍中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。核心如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系及其复杂,这些对象称为“同事对象”我们可以引入一 个中介者对象,使各个同...

2020-03-31 12:59:10 334

原创 设计模式(十八)——观察者模式(Observer Pattern)

观察者模式(Observer Pattern)基本介绍对象之间多对一依赖的一种设计方案,被依赖的对象为 Subject,依赖的对象为 Observer,Subject通知 Observer 变化。场景分析聊天室程序的创建。服务器创建好后,A,B,C三个客户端连上来公开聊天。A向服务器发送数据,服务器端聊天数据改变。我们希望将这些聊天数据分别发给其他在线的客户。也就是说,每个客户端需要更...

2020-03-30 11:20:46 318

原创 Java二进制、八进制、十进制、十六进制及其相互转换

Java二进制、八进制、十进制、十六进制及其相互转换进制的基本介绍所有数字在计算机底层都以二进制形式存在。对于整数,有四种表示方式:二进制(binary): 0,1 ,满2进1.以0b或0B开头。十进制(decimal): 0-9 ,满10进1。八进制(octal): 0-7 ,满8进1. 以数字0开头表示。十六进制(hex): 0-9及A-F,满16进1. 以0x或0X开头表示。此...

2020-03-28 22:31:05 1726

原创 设计模式(十七)——迭代器模式(Iterator Pattern)

迭代器模式(Iterator Pattern)基本介绍迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。提供一种可以遍历聚合对象的方式。又称为:游标cursor模式聚合对象:存储数据迭代器:遍历数据什么时候使用?如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客...

2020-03-28 15:42:15 990

原创 (Java)排序算法(八)——计数排序(Count Sort)

堆排序(Count Sort)基本思想计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。一句话:用辅助数组对数组中出现的数字计数,元素转下标,下标转元素。算法描述①找出待排序的数组中最大和最小的元素;②统计数组中每个值为i的元素出现的次数,存入数组helper的第i项;③利用偏差解决数组中...

2020-03-27 23:15:45 651

原创 (Java)排序算法(七)——堆排序(Heap Sort)

堆排序(Heap Sort)定义堆排序:是指利用堆这种数据结构所设计的一种排序算法。大根堆:每个结点的值都大于等于其左右孩子结点的值。小根堆:每个结点的值都小于等于其左右孩子结点的值。性质子结点的键值或索引总是小于(或者大于)它的父节点。完全二叉树的结构基本思想将待排序列构造成一个大顶堆(或小顶堆),整个序列的最大值(或最小值)就是堆顶的根结点,将根节点的值和堆数组的末尾...

2020-03-27 21:22:33 235

原创 (Java)排序算法(六)——快速排序(Quick Sort)

排序算法总结有关概念排序:将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。排序算法的稳定性:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b前面,而a=b,排序之后a有可能会出现在b的后面。内排序:所有排序操作都在内存中完成。外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。时间复杂度:描...

2020-03-27 20:36:53 373 1

原创 设计模式(十六)——访问者模式(Visitor Pattern)

访问者模式(Visitor Pattern)基本介绍定义访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。工作原理对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其访问方式也有所不同。在被访问的...

2020-03-27 12:16:24 323

原创 (Java)排序算法(五)——归并排序(Merge Sort)

归并排序(Merge Sort)基本思想归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。算法描述①把长度为n的输入序列分成两个长度为n/2的子序列;②对这两个子序列分别采用归并排...

2020-03-26 21:31:59 264

原创 (Java)排序算法(四)——插入排序(Insertion Sort)和希尔排序(Shell Sort)

插入排序(Selection Sort)和希尔排序(Shell Sort)插入排序基本思想对于未排序的元素,在已排序的元素中从后向前扫描,找到合适的位置后插入。在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的...

2020-03-26 21:22:02 230

原创 (Java)排序算法(三)——选择排序(Selection Sort)

选择排序(Selection Sort)基本思想每次都从未排序的数组中找到最小的元素,然后放在未排序元素最前端。选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法描述n个记录的直接选...

2020-03-26 21:03:36 525

原创 (Java)排序算法(二)——冒泡排序(Bubble Sort)

冒泡排序基本思想两个数比较大小,较大的数下沉,较小的数冒起来。简介冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述①比较相邻的元素。如果第一个比第二个大,就交换它们两个;②...

2020-03-26 20:56:37 1041 5

原创 (Java)排序算法(一)——排序算法简介

排序算法简介有关概念排序:将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。排序算法的稳定性:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b前面,而a=b,排序之后a有可能会出现在b的后面。内排序:所有排序操作都在内存中完成。外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。时间复杂度:描...

2020-03-26 20:49:33 216

原创 设计模式(十五)——命令模式(Command Pattern)

命令模式(Command Pattern)基本介绍命令模式:将一一个请求封装为一一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作Action模式、事务transaction模式。命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用...

2020-03-26 20:30:21 265

原创 设计模式(十四)——模板方法模式(Template Method Pattern)

模板方法模式(Template Method Pattern)基本介绍模板方法模式是编程中经常用得到模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。核心处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用模板方法模式,将这个节点的代码实现转移给子类完成。即:处理步骤父类中...

2020-03-25 20:15:29 276

原创 计算机字符编码——ASCII码和常用编码

计算机字符编码——ASCII码和常用编码ASCII码基本介绍上个世纪60年代, 美国制定了一套字符编码, 对英语字符与二进制位之间的关系, 做了统一规定,这被称为ASCII码。ASCII码一共规定了128个字符的编码, 比如空格“SPACE”是32(二进制00100000), 大写的字母A是65(二进制01000001)。 这128个符号(包括32个不能打印出来的控制符号), 只占用了一个...

2020-03-24 22:34:57 11120

原创 Java基本语法——关键字和保留字、标识符、变量、数据类型

Java基本语法——关键字和保留字、标识符、变量关键字定义被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。特点关键字中所有字母都为小写。官方网址https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html关键字分类保留字现有Java版本尚未使用, 但以后版本可能会作为关键字使用。...

2020-03-24 21:50:07 748

原创 设计模式(十三)——代理模式(Proxy Pattern)

代理模式(Proxy Pattern)基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。是AOP(Aspect Oriented Programming面向切面编程)的核心实现机制!核心作用...

2020-03-24 12:27:14 709 2

原创 设计模式(十二)——享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern)基本介绍核心以共享的方式高效地支持大量细粒度对象的重用。介绍享元模式(Flyweight Pattern) 也叫 蝇量模式。 常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个。享元模式能够解决重复对象的内存浪费的问题,当...

2020-03-23 18:53:22 217

原创 设计模式(十一)——外观模式(Facade Pattern)

外观模式(Facade Pattern)基本介绍外观模式(Facade),也叫“过程模式,为子系统中的一组接口提供一个一致的入口,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(封装子系统的复杂性,便于客户端调用)。外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。外观模式的UML类图角色分析...

2020-03-22 22:24:38 242

原创 设计模式(十)——组合模式(Composite Pattern)

组合模式(Composite Pattern)基本介绍组合模式(Composite Pattern),又叫部分整体模式,把部分和整体的关系用树形结构来表示,从而使客户端对单个对象和组合对象的访问具有一致性,可以使用统一的方式处理部分对象和整体对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。UML原理类图角色及职责分析抽象构件(Component)角色: 定义了叶...

2020-03-21 21:26:12 405

原创 设计模式(九)——装饰者模式(Decorator Pattern)

装饰者模式(Decorator Pattern)基本介绍动态的将新功能附加到对象上。装饰模式是一种用于代替继承的技术 ,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。装饰者模式UML类图角色分析Component抽象构件角色:真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实对象相同的方式同装饰对象交...

2020-03-20 12:22:06 1957

原创 Java代码不够规范?从注释做起

Java代码不够规范?写的代码纷乱不忍直视。想让代码变得简洁,可读性高,从注释做起.

2020-03-19 23:16:44 170

原创 Java语言概述

Java语言概述Java简介是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。 Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。 这些Java程序被称为Java小程(applet)。 applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在...

2020-03-19 22:58:12 792

原创 设计模式(八)——桥接模式(Bridge Pattern)

桥接模式(Bridge Pattern)基本介绍桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式。基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。...

2020-03-18 12:21:39 249

原创 计算机概述

计算机概述计算机包括硬件(hardware)和软件(software)两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。概念程序设计定义: 创建(或开发)软件。软件包含了指令,告诉计算机做什么。应用场景: 软件遍布我们周围。除了个人计算机,飞机、汽车、手机甚至烤面包机中,同样运行着软件。程序设计语言软件开发人员在称为程...

2020-03-17 22:26:26 620

原创 设计模式(七)——适配器模式(Adapter Pattern)

适配器模式基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。分类类适配器模式对象适配器模式接口适配器模式工作原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的...

2020-03-17 18:49:10 264

原创 设计模式(六)——建造者模式(Builder Pattern)

建造者模式基本介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 用户不需要知道内部的具体构建细节。建造模式的本质分离了对象子组件的单独构造...

2020-03-16 13:05:36 588

原创 websocket性能低?教你使用netty整合websocket(一)——客户端和服务端通讯

SpringBoot+Netty整合websocket现在的一般的项目当中一般都有长连接时事通讯的需求,客户端和服务器之间,客户端和客户端之间进行通讯。原生的websocket往往容易发生同步阻塞,导致效率低。采用Netty整合websocket,极大提升websocket的效率。

2020-03-15 19:50:14 3180 5

原创 设计模式(五)——原型模式(Prototype Pattern)

原型模式基本介绍原型模式(Prototype 模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()通过new产生一个对象需要非常...

2020-03-15 11:20:13 334

原创 设计模式(四)——工厂模式(Factory Pattern)

工厂模式意义工厂模式 实现了创建者和调用者的分离。将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦。从而提高项目的扩展和维护性。核心本质实例化对象,用工厂方法代替new操作。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。用到的面向对象设计的基本原则OCP(开闭原则,Open-Closed Principle):一个软...

2020-03-14 16:51:29 331 1

原创 (Java)算法——递归总结

递归总结定义递归递归是一种在程序设计语言中广泛应用算法。一种编程思想和技巧。 其主要特点就是通过反复调用自身函数来解决问题。递归函数直接或间接调用自身的函数称为递归函数。它通常把一个大型复杂的问题层层转化成一个与原问题相似的规模较小的问题来求解。递归基本思想将问题分解:把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题,最小问题可以直接解决...

2020-03-12 16:57:56 1955

原创 设计模式(三)——详解单例模式(Singleton Pattern)的8种写法

详解单例模式的8种写法单例模式简介单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。常见应用场景Windows的Task Manager(任务管理器)就是很典型的单例模式windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。项目...

2020-03-12 12:53:01 328

原创 微信小程序集成实时音视频通话功能

微信小程序集成实时音视频通话功能背景在项目的开发当中,很多时候,我们会有音频、视频通话的需求,但是一般都不会自己来写,所以我们就需要借助第三方来实现。尤其是这次的项目开发当中,需要在微信小程序当中集成实时音视频通话的功能,这里使用腾讯云的实时音视频服务。腾讯云——实时音视频实时音视频官方文档:https://cloud.tencent.com/document/product/647文档...

2020-03-11 22:46:39 8803 13

原创 设计模式(二)——UML类图

UML类图背景在学习设计模式或者进行软件系统设计分析的时候,经常会使用UML,所以总结一些UML的基本使用方法。UML基本介绍UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的...

2020-03-11 12:26:19 1657

原创 设计模式(一)——七大原则详解

设计模式(一)——七大原则设计模式简介定义设计模式是一套面向对象的代码设计经验总结,是在编程领域被反复使用、被多数人知晓、而且经过分类整理的代码设计方法。奠基人四人帮实质是一种思想(占绝大多数),也是一种技术是一种解决方案,开发者可快速完成某项工作指明开发方向,快速达成目标目的*编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方...

2020-03-10 12:27:50 569

原创 (Java)算法——位运算在算法题中的应用

位运算在算法题中的应用上篇博客总结的位运算的基础和基本的使用,这篇博客总结一下位运算在一些算法题中的使用上篇博客:位运算基础及基本应用题1数组1-1000中(1001个数),有唯一一个重复的数,其他数只出现一次,求唯一一个重复的数。要求:数组元素只能访问一次,不使用辅助空间解题思路代码实现 public static int findRepetitionNum ( int[] ar...

2020-03-05 12:19:26 478

原创 (Java)算法——位运算基础及基本应用

位运算基础在处理整形数值时,可以直接对组成整形数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位(??)位运算是针对整数的二进制进行的位移操作整数 32位 , 正数符号为0,负数符号为1。十进制转二进制 不足32位的,最高位补符号位,其余补零在Java中,整数的二进制是以补码的形式存在的位运算计算完,还是补码的形式,要转成原码,再得出十进制值正数:原码=反码=补码 负数...

2020-03-04 22:25:17 796

wechat_video.zip

微信小程序集成腾讯云实时音视频demo 实现多人音视频功能 详解如何实现音视频通话 配套博客地址:https://blog.csdn.net/qq_42937522/article/details/104807165#comments

2020-06-15

H5项目本地使用jquery、vue、element ui、vuetify所要的资源

H5项目本地使用jquery、vue、element ui、vuetify所要的资源 element-ui-index.css element-ui-index.js element-icons.ttf element-icons.woff jquery.cookie-1.4.1.min.js jquery-3.5.0.min.js vue-2.6.11.js vuetify.min.css-2.2.26.css vuetify-2.2.26.js

2020-05-25

vuetify.zip

H5项目引入Vuetify所需资源 vuetify.min.css-2.2.26.css vuetify-2.2.26.js

2020-05-25

element.zip

普通H5项目引入Element UI所需依赖 element-ui-index.css element-ui-index.js element-icons.ttf element-icons.woff

2020-05-25

空空如也

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

TA关注的人

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