软件构造
你跺你也麻.
欢乐编程,best编程
展开
-
HIT 软件构造 lab2
1 实验目标概述··· 12 实验环境配置··· 13 实验过程··· 13.1 Poetic Walks· 13.1.1 Get the code and prepare Git repository· 13.1.2 Problem 1: Test Graph <String>· 13.1.3 Problem 2: Implement Graph &...原创 2019-03-31 14:58:12 · 4154 阅读 · 0 评论 -
在Java程序中截获控制台输出
即使在图形用户界面占统治地位的今天,控制台输出仍旧在Java程序中占有重要地位。控制台不仅是Java程序默认的堆栈跟踪和错误信息输出窗口,而且还是一种实用的调试工具(特别是对习惯于使用println()的人来说)。然而,控制台窗口有着许多局限。例如在Windows 9x平台上,DOS控制台只能容纳50行输出。如果Java程序一次性向控制台输出大量内容,要查看这些内容就很困难了。对于使用java...转载 2019-06-02 22:35:29 · 1816 阅读 · 0 评论 -
使用设计模式进行代码性能优化
大家选择性参考,因为每个人的程序都是不一样的,使用什么设计模式,如何使用取决于自己。1. FlyWeight设计模式:因为AtomicStructure中Electron的对象过多,并且其实它们除了所处的track,是等同的。因此我们使用FlyWeight设计模式设计Electron工厂,基本思想就是对于每一个轨道只有一个Electron实例。但是有一处需要注意:因为以前的...原创 2019-05-29 17:49:48 · 691 阅读 · 0 评论 -
Lab5 在MAT内使用OQL查询内存导出
CircularOrbit 的所有对象实例;大于长度100的String对象:大于特定大小的任意类型对象实例PhysicalObject(及其子类)的对象实例的数量和总占用内存大小所有包含元素数量大于 100 的 Collections 实例更多参考:http://cr.openjdk.java.net/~sundar/8...原创 2019-05-29 17:46:59 · 1725 阅读 · 0 评论 -
使用JMC或VisualVM进行CPU和内存分析
我们可以通过 VisualVM 的监视标签和 Profiler 标签对应用程序进行 CPU 性能分析。一. 先看监视标签在监视标签内,我们可以查看 CPU 的使用率以及垃圾回收活动对性能的影响。在程序刚启动时,CPU usage达到了最高的50.5%。在其他时候,过高的 CPU 使用率可能是由于我们的轨道系统构建中中存在低效的代码,整体上看,垃圾回收活动并不频繁,没有占用了较高的 CPU ...原创 2019-05-29 17:43:21 · 3603 阅读 · 0 评论 -
java垃圾回收过程
垃圾回收的日志没有在这里截图了,大家可以使用-verbose:gc 参数,在控制台输出你的程序的 GC 情况或同时输出至 log 文本文件中(-Xloggc: 日志文件路径)。 对控制台输出或 log 文件进行简要分析。首先从jstat -gc打印出的结果,我们可以清楚的看到年轻代分区的情况1. 新生代内存按照8:1:1的比例分为一个eden区和S0、S1区。大部分对象在Eden区中...原创 2019-05-29 17:39:54 · 1604 阅读 · 0 评论 -
垃圾回收GC (Allocation Failure) Full GC (Ergonomics)
日志文件中的部分内容如下:分析:让我们来挑几条典型的日志进行分析:第一条:63.971: [GC (Allocation Failure) [PSYoungGen: 31073K->4210K(38400K)]31073K->4234K(125952K), 0.0049946 secs] [Times: user=0.05 sys=0.02, real=0.0...原创 2019-05-29 17:37:29 · 12581 阅读 · 0 评论 -
软件构造Lab5 Java 多种I/O策略 Strategy模式
实现了哪些I/O方式来读写文件,具体如何实现的。Input:首先为了strategy设计模式的方便实现和对input时间的准确收集,我选择了一次性读完整个文件,然后将文件存在一个string中(list中同理),然后通过分割字符串实现类似按行读文件的操作。其中将文件存到字符串的操作如下:StringBuffer buffer = new StringBuffer();buffe...原创 2019-05-29 17:33:46 · 458 阅读 · 0 评论 -
checkstyle 行内含有制表符tab,缩进符数量不正确
这个问题在所有的代码行中都出现了,当然对于这么大量的代码,我们不可能一行行修改,修改方式如下:采用的方法为:点击“Java”->“Code Style”-> “Formatter”菜单,在右侧选中模板后点击“Edit”按钮在Tab policy处选择Space only ,并且Indentation Size设置为2,这是为了使4个缩进符变为2个缩进符。...原创 2019-05-29 17:28:38 · 7087 阅读 · 0 评论 -
总结lab6 ADT设计方案
ADT设计方案 设计了哪些ADT、各自的作用、属性、方法;一. Monkey猴子类。继承Thread。作用:每个猴子为一个线程,对于一只猴子在某时刻选择并爬上某个梯子,意味着它跳到第 1 个踏板上。猴子一旦上了某个梯子,就不能在中途跳到别的梯子上。当猴子跳出梯子,该线程结束。fields: private final int id; //num of...原创 2019-06-06 20:56:01 · 463 阅读 · 0 评论 -
HIT 软件构造 lab3
由于上次lab2几乎把整个报告都放上去了,导致最后很多盆友的写报告的时候直接照样复制了,有点不太好。因此这次我只写了lab3自己的部分实现。其实我ADT的设计挺一般的,而且ddl都到了,我想这个时候大家的实验应该都写完了吧。由于最近太忙,文章内容我也没怎么认真排版了,大家见谅。 待开发的三个应用场景 首先请列出你要完成的具体应用场景(至少3个,1和2中选一,3必选,4和5中选一,鼓励...原创 2019-05-05 17:25:53 · 1432 阅读 · 0 评论 -
软件构造课程自我总结
以下仅谈我个人这一学期软件构造学习印象最深的内容部分和个人学习成果:1.为中等规模的程序应用基本的编程概念和ADT设计2.理解基本类型和静态类型的好处,了解泛型,子类型和重载,以及它们在构造程序中的作用3.将编程语言抽象映射到执行环境;使用程序的非源(文本)内部表示(例如,抽象语法树等)4.使用现代IDE和相关配置工具描述specification规范,分析文档和规范与其他代码,...原创 2019-06-23 19:24:43 · 490 阅读 · 0 评论