理论合集
文章平均质量分 90
软件工程等
氷泠
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记(三):JVM基本参数
1 来源来源:《Java虚拟机 JVM故障诊断与性能优化》——葛一鸣章节:第三章本文是第三章的一些笔记整理。2 GC日志:-Xlog:gc要打印GC日志的话,可以加上-Xlog:gc参数(JDK8及以下请使用-XX:+PrintGC),开启GC打印后,每次GC就会打印如下的日志(OpenJDK11 -Xlog:gc):[0.126s][info][gc] GC(0) Pause Young (Normal) (G1 Evacuation Pause) 25M->0M(502M) 1.9原创 2021-03-05 12:03:07 · 1564 阅读 · 1 评论 -
JVM学习笔记(二):JVM基本结构
1 来源来源:《Java虚拟机 JVM故障诊断与性能优化》——葛一鸣章节:第二章本文是第二章的一些笔记整理。2 JVM基本参数-Xmxjava命令的一般形式如下:java [-options] class [args..]其中-options表示JVM启动参数,class为带有main()的Java类,args表示传递给main()的参数,也就是main(String [] args)中的参数。一般设置参数在-optinos处设置,先看一段简单的代码:public class Mai原创 2021-03-03 17:25:10 · 243 阅读 · 0 评论 -
JVM学习笔记(一):JVM初探
1 来源来源:《Java虚拟机 JVM故障诊断与性能优化》——葛一鸣章节:第一章本文是第一章的一些笔记整理。2 Java里程碑2.1 Java起源1990年Sun公司决定开发一门新的程序语言——Oak,已经具备安全性、网络通信、面向对象、垃圾回收、多线程等特性,由于Oak已被注册,于是改名为Java。2.2 JDK 1.01995年Sun发布了Java以及HotJava产品,1996年正式发布JDK 1.0,包括两部分:运行环境:JRE,包括核心API,用户界面API,发布技术、JV原创 2021-03-02 13:17:20 · 280 阅读 · 0 评论 -
熵权可拓物元模型
1 物元模型2 熵权3原创 2020-02-19 18:15:39 · 16687 阅读 · 8 评论 -
软件测试笔记(四):白盒测试
1 白盒测试白盒测试是对软件的过程性细节做细致的检查,把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构以及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。白盒测试只测试软件产品的内部结构和处理过程,而不是测试软件产品的功能,可以分为静态和动态两种:静态白盒测试就是在不执行测试的情况下有条理仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程动态白盒测试也叫结构化测试,通过查看并使用代码的内部结构,设计和执行原创 2021-04-14 11:13:11 · 5221 阅读 · 0 评论 -
软件测试笔记(三):黑盒测试
1 黑盒测试概述黑盒测试也叫功能测试,通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息。黑盒测试以用户角度,从输入数据与输出数据的关系触发,试图发现一下几类错误:功能不正确或遗漏界面错误数据库访问错误性能错误初始化和终止错误用例设计方法包括:等价类划分边界值分析决策表因果图场景法原创 2021-03-31 14:05:58 · 866 阅读 · 0 评论 -
软件测试笔记(二):软件测试流程
1 测试流程概述软件测试流程包括:测试计划:测试计划是指根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,使得随后所有的测试工作都围绕着测试需求来进行,同时适当选择测试内容,合理安排测试人员、测试时间和测试资源等测试设计:测试设计是指将测试计划阶段制订的测试需求分解,细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例,保证测试结果的有效性测试开发:测试开发是指建立可重复使用的自动测试过程测试执行:测试执行是指执行测试开发阶段建立的自动测试过程,并对所发现原创 2021-03-17 13:33:58 · 539 阅读 · 0 评论 -
软件测试笔记(一):软件测试概论
1 软件测试目的测试的目的就是以最少的时间和人力找出软件中潜在的各种错误和缺陷,证明软件的功能和性能与需求说明相符,Glenford J.Myers曾提出以下观点:测试是为了证明程序有错,而不是证明程序无错误一个好的测试用例能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误软件测试的目的往往包含以下内容:测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进测试帮助测试人员设计有针对性的测试方法,改善测试原创 2021-03-08 15:06:02 · 1818 阅读 · 0 评论 -
GoF设计模式合集
文章目录1 概述2 基础2.1 设计模式2.2 UML与面向对象设计原则3 创建型模式3.1 单例模式3.2 简单工厂模式3.3 工厂方法模式3.4 抽象工厂模式3.5 原型模式3.6 建造者模式4 结构型模式4.1 适配器模式4.2 桥接模式4.3 组合模式4.4 装饰模式4.5 外观模式4.6 享元模式4.7 代理模式5 行为型模式5.1 职责链模式5.2 命令模式5.3 解释器模式5.4 迭代器模式5.5 中介者模式5.6 备忘录模式5.7 观察者模式5.8 状态模式5.9 策略模式5.10 模板方法原创 2020-08-06 03:01:41 · 263 阅读 · 0 评论 -
设计模式学习笔记(二十六):访问者模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象访问者2.3 具体访问者2.4 抽象元素2.5 具体元素2.6 对象结构3 实例4 主要优点5 主要缺点6 适用场景7 总结原创 2020-08-05 17:35:39 · 244 阅读 · 0 评论 -
设计模式学习笔记(二十五):模板方法模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色1.5 模板方法与基本方法1.5.1 模板方法1.5.2 基本方法2 典型实现2.1 步骤2.2 抽象类2.3 具体子类3 实例4 使用钩子方法5 主要优点6 主要缺点7 适用场景8 总结...原创 2020-08-05 00:33:57 · 271 阅读 · 0 评论 -
设计模式学习笔记(二十四):策略模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 环境类2.3 抽象策略类2.4 具体策略类3 实例4 JDK中的策略模式5 主要优点6 主要缺点7 适用场景8 总结原创 2020-08-04 18:33:31 · 306 阅读 · 0 评论 -
设计模式学习笔记(二十三):状态模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 环境类2.3 抽象状态类2.4 具体状态类3 实例4 共享状态5 使用环境类实现状态切换6 主要优点7 主要缺点8 适用场景9 总结原创 2020-08-04 11:34:28 · 320 阅读 · 0 评论 -
设计模式学习笔记(二十二):观察者模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 目标2.3 具体目标2.4 观察者2.5 具体观察者3 实例4 Java中的观察者4.1 Observer与Observable4.2 事件处理5 有关MVC6 主要优点7 主要缺点8 适用场景9 总结...原创 2020-08-03 21:59:28 · 609 阅读 · 0 评论 -
设计模式学习笔记(二十一):备忘录模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 原发器2.3 备忘录2.4 负责人3 实例4 多次撤销5 有关封装6 主要优点7 主要缺点8 适用场景9 总结原创 2020-08-03 03:18:12 · 377 阅读 · 0 评论 -
设计模式学习笔记(二十):中介者模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象中介者2.3 具体中介者2.4 抽象同事类2.5 具体同事类3 实例4 扩展中介者与同事类5 主要优点6 主要缺点7 适用场景8 总结原创 2020-08-03 02:03:18 · 297 阅读 · 0 评论 -
设计模式学习笔记(十九):迭代器模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象迭代器2.3 具体迭代器2.4 抽象聚合类2.5 具体聚合类3 实例4 内部类实现5 JDK迭代器6 主要优点7 主要缺点8 适用场景9 总结...原创 2020-08-02 08:17:03 · 255 阅读 · 0 评论 -
设计模式学习笔记(十八):解释器模式
1 概述1.1 引言1.2 相关术语1.2.1 文法规则1.2.2 抽象语法树1.3 定义1.4 结构图1.5 角色2 典型实现2.1 步骤2.2 抽象表达式2.3 终结符表达式2.4 非终结符表达式2.5 环境类3 实例4 环境类5 主要优点6 主要缺点7 适用场景8 总结...原创 2020-08-02 08:16:29 · 298 阅读 · 0 评论 -
设计模式学习笔记(十七):命令模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象命令类2.3 具体命令类2.4 调用者2.5 接收者3 实例4 命令队列5 撤销操作6 请求日志7 宏命令8 主要优点9 主要缺点10 适用场景11 总结...原创 2020-08-01 01:25:01 · 422 阅读 · 0 评论 -
设计模式学习笔记(十六):职责链模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象处理者2.3 具体处理者3 实例4 分类4.1 纯的职责链模式4.2 不纯的职责链模式5 主要优点6 主要缺点7 适用场景8 总结原创 2020-07-31 15:02:22 · 247 阅读 · 0 评论 -
设计模式学习笔记(十五):代理模式
1 概述1.1 引言1.2 定义1.3 结构图1.4 角色1.5 分类2 典型实现2.1 步骤2.2 抽象主题角色2.3 代理主题角色2.4 真实主题角色3 实例4 远程代理5 虚拟代理6 Java动态代理6.1 Proxy6.2 InvocationHandler7 主要优点8 主要缺点9 适用场景10 总结...原创 2020-07-31 10:01:35 · 455 阅读 · 0 评论 -
设计模式学习笔记(十四):享元模式
1 概述1.1 概述1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象享元类2.3 具体享元类2.4 非共享具体享元类2.5 享元工厂类3 实例4 加入外部状态5 单纯享元模式与复合享元模式5.1 单纯享元模式5.2 复合享元模式6 补充说明7 主要优点8 主要缺点9 适用场景10 总结...原创 2020-07-27 11:53:18 · 548 阅读 · 0 评论 -
设计模式学习笔记(十三):外观模式
1 概述1.1 概述1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 外观角色3 实例4 引入抽象外观类4.1 为什么需要引入抽象外观类?4.2 如何引入?5 补充说明6 主要优点7 主要缺点8 适用场景9 总结...原创 2020-07-27 06:27:30 · 284 阅读 · 0 评论 -
设计模式学习笔记(十二):装饰模式
1 概述1.1 概述1.2 定义1.3 结构图1.4 角色2 典型实现2.1 步骤2.2 抽象装饰类2.3 具体装饰类3 实例4 透明装饰与半透明装饰4.1 装饰模式的问题4.2 透明装饰模式4.3 半透明装饰模式5 注意事项6 主要优点7 主要缺点8 适用场景9 总结...原创 2020-07-26 16:30:21 · 353 阅读 · 0 评论 -
设计模式学习笔记(十一):组合模式
1 概述1.1 概述对于树形结构,比如文件目录,一个文件夹中可以包含多个文件夹和文件,而一个文件中不能在包含子文件或者子文件夹,在这里可以称文件夹为容器,称文件为叶子。在树形结构中,当容器对象(比如文件夹)的某个方法被调用时,将遍历整个文件夹,寻找也包含这个方法的成员对象(容器对象或叶子对象)并调用执行。由于容器对象以及叶子对象在功能上的区别,使用这些对象的代码中必须有区别对待容器对象以及叶子对象,但大多数情况下需要一致性处理它们。组合模式为解决此类问题而生,它可以让叶子对象以及容器对象的使用具有一原创 2020-07-26 10:18:47 · 265 阅读 · 1 评论 -
设计模式学习笔记(十):桥接模式
文章目录1 定义2 概述3 角色4 步骤5 实例6 主要优点7 主要缺点8 适用场景9 总结1 定义桥接模式:将抽象部分与其实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体模式或者接口模式。2 概述桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统变得更加符合SRP。比如,设计一个跨平台的图像浏览系统,支持的图片格式包括:PNGBMPJPGGIF等等,而支持的系统包原创 2020-07-25 08:37:30 · 439 阅读 · 0 评论 -
设计模式学习笔记(九):适配器模式
1 适配器模式1.1 定义1.2 结构图1.3 角色2 实例3 类适配器4 双向适配器5 缺省适配器6 主要优点7 主要缺点8 适用场景9 总结原创 2020-07-24 22:51:21 · 350 阅读 · 0 评论 -
设计模式学习笔记(八):建造者模式
1 建造者模式1.1 定义建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需的建造者类型即可。建造者模式关注一步一步地创建一个复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独立,增加新的建造者非常方便,无须修改已有代码,系统具有较好的扩展性。1.2 复杂原创 2020-07-18 14:43:35 · 403 阅读 · 0 评论 -
设计模式学习笔记(七):原型模式
1 定义原型模式:使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理很简单,将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象克隆自己来实现创建过程。原型模式是一种另类的创建型模式,创建克隆对象的工厂就是原型类自身,工厂方法由克隆方法实现。通过克隆方法创建的对象是全新的对象,它们在内存中拥有新的地址,通常对克隆多产生的对象进行的修改不会对原型对象造成任何的影响,每一个克隆的对象都是相互独立的,通过不同的方式对克原创 2020-07-18 01:13:25 · 348 阅读 · 0 评论 -
设计模式学习笔记(六):抽象工厂模式
1 相关术语在了解抽象工厂模式之前,首先来了解一下两个术语:产品等级结构产品族1.1 产品等级结构产品等级结构也就是产品的继承结构,例如一个抽象类是电视机,子类有不同品牌的电视机,比如海尔电视机,海信电视机,TCL电视机,而抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是子类。1.2 产品族产品族是指由一个同一个工厂产生的位于不同产品等级结构中的一组产品,例如海尔电器工厂生产的海尔电视机,海尔电冰箱。海尔电视机位于电视机产品等级结构中,海尔电冰原创 2020-07-16 22:53:36 · 384 阅读 · 0 评论 -
设计模式学习笔记(五):工厂方法模式
1 前言尽管简单工厂模式实现了对象的创建和使用分离,但是仍然存在以下两个问题:工厂类过于庞大,包含了大量的判断代码,导致维护和测试难度增大系统扩展不灵活,如果增加了新的产品类型,必须修改静态工厂方法的业务逻辑,违反了开闭原则具体产品与工厂类之间的耦合度高,严重影响了系统的灵活性和扩展性一个更好的办法是使用工厂方法模式。2 工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法让一个类的实例化延迟到其子类。工厂方法模式又简称工厂模式或虚拟构造器模式或多态原创 2020-07-16 22:49:43 · 282 阅读 · 0 评论 -
设计模式学习笔记(四):简单工厂模式
1 定义简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式用于创建实例的方法是静态的方法,因此简单工厂模式又被称为静态工厂方法模式,它属于类创建型模式。尽管简单工厂模式不属于GoF23种设计模式之一,但是实际中用途广泛,并且可以作为学习“工厂方法模式”以及“抽象工厂模式”的基础。2 结构由图可知包含以下三个角色:Factory(工厂角色):即工厂类,负责实现创建所有产品实例的原创 2020-07-13 10:24:23 · 312 阅读 · 0 评论 -
设计模式学习笔记(三):单例模式
1 定义有时候为了节约系统资源,需要确保系统中某个类只有唯一一个实例,当这个实例创建成功之后,无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一的实例,这是单例模式的动机所在。单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。2 要点某个类只能有一个实例它必须自行创建这个实例它必须自行向整个系统提供这个实例3 通用步骤一般来说把一个普通类重构为一原创 2020-07-12 03:34:58 · 404 阅读 · 0 评论 -
设计模式学习笔记(二):UML与面向对象设计原则
1 UML1.1 UMLUML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准。2003年6月UML2.0获得正式通过。1.2 UML特性U(Unified):统一,UML融合了多种优秀的面向对象建模方法以及多种得到认可的软件工程方法,消除了因方法林立且相互独立而带来的种种不便,集众家之长,股名“统一”。通过统一的表示方法可以让不同知识背景的领域专家,系统分析设计人员以及开发人员可以方便地交流原创 2020-07-11 10:18:29 · 787 阅读 · 0 评论 -
设计模式学习笔记(一):设计模式
文章目录1 前言2 设计模式2.1 来源2.2 定义3 常用设计模式3.1 创建型模式3.2 结构型模式3.3 行为型模式4 设计模式用途5 总结1 前言软件开发技术包含“招式”与“内功”,其中,编程语言,开发技术,著名框架可以认为是“招式”,而数据结构,算法,设计模式,重构,软件工程等则为“内功”。“招式”可以很快学会,但是“内功”的修炼需要更长的时间。对设计模式的学习会令“内功”大增,配合日益纯熟的“招式”,软件开发“功力”想必会达到一个新境界。下面来正式踏入修炼设计模式之旅。2 设计模式2.1原创 2020-07-10 14:03:28 · 283 阅读 · 0 评论