摘要: 不变量 好的ADT其中最重要的一点就是它会保护/保留自己的不变量。 不变量是一种属性,它在程序运行的时候总是一种状态,而不变性就是其中的一种:一旦一个不变类型的对象被创建,它总是代表一个不变的值。 当一个ADT保护/保留自己的不变量时,对代码的分析会变得更简单。例如,你能够依赖字符串不变性的特点,在 阅读全文
posted @ 2019-06-04 18:31 AllenHIT 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 在做lab6时,实现GUI的过程中,遇到了java.util.ConcurrentModificationException异常,本文讲述了java.util.ConcurrentModificationException异常产生的原因,以及如何处理该异常。 一.ConcurrentModifica 阅读全文
posted @ 2019-06-04 10:44 AllenHIT 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 本文主要讨论Java中"对象监视器Monitor"和"对象锁"区别 简短的答案是,锁为实现监视器提供必要的支持。 监视器是一种同步结构,它允许线程同时互斥(使用锁)和协作,即使用等待集(wait-set)使线程等待某些条件为真的能力。 在JVM的规范中,有这么一些话很好的总结了锁和监视器之间的关系: 阅读全文
posted @ 2019-05-31 14:50 AllenHIT 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 近期在做实验时遇到需要对程序改造支持原型模式的需求,将其中的经验整理在这里。 原型模式使得程序支持clone,通过clone()而非new的方法生成对象,不能使用简单的super.clone()进行浅拷贝,因为对于引用类型的属性,浅拷贝使得两个引用指向同一个对象,当clone后的对象对这个属性进行修 阅读全文
posted @ 2019-05-30 00:36 AllenHIT 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 本文通过从Java自身的发展路线上看,体现了JDK自身代码的逐渐优化过程,梳理了ava I/O的逐步优化和扩展的过程,并解释了每种I/O技术最适合的应用场景 Java I/O 模型的演进 Java 的 I/O 依赖于操作系统的实现,所以先了解 Unix 的 I/O 模型有助于理解 Java 的 I/ 阅读全文
posted @ 2019-05-27 00:46 AllenHIT 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 本文主要讨论重写equals方法的相关注意事项,在每个类中,在重写 equals 方法的时侯,一定要重写 hashcode 方法。 如果不这样做,你的类违反了 hashCode 的通用约定,这会阻止它在 HashMap 和 HashSet 这样的集合中正常工作。根据 Object 规范,以下时具体约 阅读全文
posted @ 2019-05-13 16:17 AllenHIT 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 规格说明 测试用例必须遵循规格说明,就像每一个客户用例一样,所以即使是白盒测试也要遵循规格说明。 正如null是隐式的不被允许的,我们也隐式的规定改变对象(mutation)是不被允许的,除非显式的声明 。例如 to­Lower­Case 的规格说明中就没有谈到该方法会不会改变参数对象(即代表不会改 阅读全文
posted @ 2019-05-04 16:30 AllenHIT 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一.软件的生命周期和配置管理 (1)经典软件模型 两个基础类型:线性、迭代 现有的模型:-瀑布(线性的,非迭代的)-增量(非迭代的)- v型模型(用于验证)-原型(迭代)-螺旋(迭代) 瀑布模型:线性类型 通过概念、启动、分析、设计、构建、测试、实现和维护的阶段,进展被视为稳步向下流动(就像瀑布一样 阅读全文
posted @ 2019-03-29 17:01 AllenHIT 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 二.软件构造的质量目标 软件系统的质量特性-外部和内部质量因素-重要的外部质量因素-质量因素之间的权衡 软件建设的五大质量目标-易于理解:优雅和美丽的代码/易于理解-随时准备变更:可维护性和适应性-开发成本低:设计用于/与重用:可重用性-安全的bug:健壮性-高效运行:性能 外部质量因素:质量,如速 阅读全文
posted @ 2019-03-19 01:00 AllenHIT 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 多维软件视图-按阶段:构建和运行时视图-动态:时刻和周期视图-按级别:代码和组件视图-每个视图的元素、关系和模型 (1)构建时视图 A. 概述:想法 -> 需求 -> 设计 -> 代码 -> 可安装可执行的包 代码级视图:源代码——源代码如何由基本程序块逻辑组织,如函数、类、方法、接口等,以及它们之 阅读全文
posted @ 2019-03-16 21:56 AllenHIT 阅读(113) 评论(0) 推荐(0) 编辑