自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 使用matlab优化工具箱求解规划问题

matlab优化工具箱在命令行中输入optimtool,即可打开优化工具箱fmincon函数在matlab中,可以使用函数x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)求解非线性规划问题。fun为目标函数x0为不等式的初始值:x0=[x(1)0,x(2)0,…,x(n)0]A,b,Aeq,beq为线性不等式约束条件的参...

2019-01-23 18:20:01 9965 5

原创 【Spring5速成】IOC思维导图

2022-02-25 09:52:54 274

原创 【python】爬取元素周期表的元素信息

假期的第一个小任务是python以及爬虫的初体验

2019-07-20 20:56:06 2151

原创 【软件构造】关于泛型

关于泛型的好处:提高 Java 程序的类型安全;消除源代码中的许多强制类型转换。实例化泛型类的时候指明泛型的具体类型定义如下(lab2 p1)public interface Graph<L> { public static <L> Graph<L> empty() { Graph<L> graph = new Co...

2019-06-23 21:53:22 268

原创 【软件构造】github介绍及常用命令总结

git是一个开源的分布式版本控制系统,可以对项目进行版本管理。github是一个git的服务器提供商 帮我们共享代码(托管代码)也是一个开源平台使用git来操作github实现代码的共享git仓库有3个部分:.git目录:存储版本控制数据工作目录:就是当地文件系统暂存区 在内存中git中的文件有三种状态:修改、暂存、提交按照写实验中使用github的顺序总结一下命令git...

2019-06-23 21:39:20 197

原创 【软件构造】lab6吞吐率优化

为猴子选择梯子时,其中的一个策略是选择距离起点最近的猴子速度最大的梯子。我以为这个方案吞吐率会很高,但实际运行时,在最后时刻经常出现这种情况:如图,梯子1,2,3明明都是空的,但后上梯子的猴子还是只选择梯子0.实际观察会发现,在等待梯子1上所有猴子过河的过程中,吞吐率会有比较大的下降。(gui上显式的是实时吞吐率)思考之后我发现,可能是因为这些猴子在生成后,立刻进行选择梯子的操作,当时梯子0...

2019-06-15 17:56:49 118

原创 【软件构造】8.5 面向性能优化的代码调优

1.代码调优的策略与过程2.低效的来源3.从创建与重复使用对象的角度调优3.1 Singleton Pattern 单例模式3.2 Flyweight Pattern 轻量模式3.3 Prototype Pattern 原型模式3.4 Object Pool Pattern 对象池模式3.5 Canonicalizing Objects 规范化3.6 Avoiding Garbag...

2019-06-06 20:33:02 275

原创 【软件构造】8.4 动态性能分析方法与工具

1.动态程序分析 Dynamic Program Analysis动态程序分析:根据程序的一次或多次执行的过程与结果,分析代码在时空性能方面所展现出的性质静态分析:使用抽象的输入值动态分析:使用具体的输入值为使动态分析有效,目标程序必须执行足够多次,以观察到完整的、不同的执行行为。通过分析代码覆盖度,确认动态分析是否已经足够。要尽可能小的影响程序原本的执行,否则性能测量不准确。例一:...

2019-06-06 20:32:47 602

原创 【软件构造】8.3 I/O与算法性能

1. 软件系统的I/O输入:系统接收的信号或数据输出:系统发出的信号或数据2.Java I/O APIs例一:txt的读写FileReader inputStream = null; FileWriter outputStream = null;try { inputStream = new FileReader(“in.txt"); outputStream = new...

2019-06-06 20:32:33 128

原创 【软件构造】8.2 内存性能与垃圾回收

1. 操作系统与应用层面的内存管理2. 内存管理的三种模式3. Java内存模型4. 垃圾回收4.1 三种模式下的内存回收4.2 可达与不可达对象4.3 垃圾回收的定义5.垃圾回收的基本算法...

2019-06-06 20:32:13 124

原创 【软件构造】8.1 软件构造性能指标

性能性能是计算机系统完成工作的量给定工作的响应时间短高通量(加工工作率)CPU,内存,磁盘等计算资源利用率低计算系统或应用程序的高可用性快速数据压缩和解压缩高带宽数据传输时间短运行程序的性能1.时间性能每条指令、每个控制结构、整个程序的执行时间不同语句或控制结构执行时间的分布情况程序运行的时间瓶颈2.空间性能每个变量、每个复杂结构、整个程序的内存消耗不同变量/数...

2019-06-06 20:31:58 136

原创 【软件构造】6.3 面向可维护性的构造技术

面向可维护性的构造技术因为lab3和各种考试鸽了两周 希望可以补回来状态驱动的编程状态驱动的编程使用有限状态机来定义程序的行为,使用状态来控制程序的执行。根据当前状态,决定下一步要执行什么操作、执行操作之后要转移到什么新的状态。基于自动机的编程...

2019-05-23 00:03:41 111

原创 【软件构造】6.2 面向可维护性的设计模式

面向可维护性的设计模式1.创建型模式关于如何“创建类的新实例”的模式1.1 工厂方法模式当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。静态工厂方法:优点:避免将代码与具体的实现类(因具体应用而不同)绑定。代码对接口编程,因而适...

2019-04-21 10:38:00 189

原创 【软件构造】6.1 可维护性的度量与构造原则

可维护性的度量与构造原则1.软件维护与演化软件维护:修复错误、改善性能。<-- 软件开发中最困难的工作之一。软件维护的几个类型:纠错型维护、适应型维护、完善型维护、预防型维护。软件演化:对软件进行持续的更新。超过90%的成本来自维护阶段。软件维护不仅仅是运维工程师的工作,而是从设计和开发阶段就开始的工作。在设计与开发阶段就要考虑将来的可维护性,采用easy to change的设...

2019-04-20 18:55:40 462

原创 【软件构造】5.3 面向复用的设计模式

面向复用的设计模式结构型模式1.Adapter 适配器模式将某个类/接口转换为client期望的其他形式增加一个接口,将已存在的子类封装起来,client面向接口编程,隐藏具体子类示例:interface Shape{ void display(int x1,int y1,int x2,int y2);}class Rectangle implements Shape{ v...

2019-04-12 22:03:33 181

原创 【软件构造】5.2 面向复用的软件构造技术

面向复用的软件构造技术1.设计可复用的类(1).子类型多态与LSP原则子类型多态客户端可用统一的方式处理 不同类型的对象在可以使用父类对象的场景,都可以用子类对象代替而不会有任何问题静态检查规则:子类型可以增加方法,但不可删子类型需要实现抽象类型中的所有未实现方法子类型中重写的方法必须有相同或子类型的返回值子类型中重写的方法必须使用同样类型的参数子类型中重写的方法不能抛出额外...

2019-04-03 20:39:07 225

原创 【软件构造】5.1 可复用性的度量、形态与外部表现

可复用性的度量、形态与外部表现1.软件复用两个方面:(1).programming for reuse 面向复用编程:开发出可复用的软件(2).programming with reuse 基于复用编程:利用已有的可复用软件搭建应用系统优势:(1).降低成本和开发时间(2).经过充分测试,可靠、稳定(3).标准化,在不同应用中保持一致开发可复用的软件(for reuse)开发...

2019-04-03 19:59:27 256

原创 【软件构造】3.5 ADT和OOP中的等价性

ADT和OOP中的等价性1.等价关系ADT:对数据的抽象;体现为一组对数据的操作AF:内部表示—>抽象表示**基于AF定义ADT的等价操作等价关系:自反、对称、传递2.不可变类型的等价性从AF的角度:AF映射到同样的结果—>等价从外部观察者角度:对两个对象调用任何相同的操作都会得到相同的结果—>等价3.==与.equals()==:引用等价性,即是否指向内存中...

2019-04-01 20:32:51 167

原创 编写Junit程序测试控制台输出结果

首先创建一个ByteArrayOutputStream对象final static ByteArrayOutputStream outContent = new ByteArrayOutputStream(); 由于我的程序是一个控制台小程序,需要测试的控制台输出结果很多,在所有测试方法运行之前更改输出流:@BeforeClass public static void setOut()...

2019-03-31 21:42:02 2304

原创 编写Junit程序访问私有属性

比如某一类中有如下私有属性private Position position;使用set方法修改了positionpublic void setPosition(Position position) { this.position = position; checkRep(); }如何在Junit程序中访问position,看其是否被修改?代码如下:Piece go = ...

2019-03-31 21:25:55 609

原创 编写Junit程序测试私有方法

需要测试的私有方法如下:private boolean checkBound(int lower,int upper,int ...args) { for (int i:args) { if ((i < lower)|(i > upper)) { System.out.print("invalid input"); return false; } ...

2019-03-31 21:16:33 1158

原创 CSAPP大作业 hello的一生

摘 要本文在linux操作系统下对C语言程序hello.c的运行全过程进行了分析。分析了从c文件转化为可执行文件过程中的预处理、编译、汇编和链接阶段,和可执行文件执行过程中的进程管理、存储空间管理和I/O管理的原理。第1章 概述1.1 Hello简介Hello的P2P,020的整个过程:程序员通过编辑器创建hello.c。预处理器根据以字符#开始的命令修改hello.c得到另一个C程序...

2018-12-30 12:54:21 1547

空空如也

空空如也

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

TA关注的人

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