![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
软件构造课程笔记
小镇二掌柜
这个作者很懒,什么都没留下…
展开
-
并发(多线程)复习总结概要
线程之间通过共享内存和消息队列来进行消息传递;进程之间通过消息传递进行协作。进程创建线程,多个线程共享创建它们的进程所分配的内存,同时,每个线程又独立地拥有自己的方法栈和寄存器。创建线程:继承Thread类或实现Runable接口(推荐使用),然后通过start()方法来创建线程。线程个数例题:public class Moirai { public static void main(String[] args) { Thread clotho = new Thread(.原创 2020-07-03 18:34:04 · 99 阅读 · 0 评论 -
数据类型与类型检验复习概要
Java是静态类型检测,在编译时进行类型检测,在运行时不进行类型检测。动态类型检测(针对具体的值)强于静态类型检测(针对类型)。final类无法派生子类;final变量无法改变值/引用;final方法无法被子类重写。...原创 2020-07-10 21:39:39 · 217 阅读 · 0 评论 -
程序的健壮性与正确性复习概要
unchecked Exception(不需要捕获):Eror:不是由程序引起的,是由外部环境(设备错误等)引起的,通常程序员无法处理。RuntimeException:由于程序员写的程序本身存在的错误引起。checked Exception(一定要捕获):other Exception:使用错误,client引起。异常应该用来捕获client端的错误,而非程序本身的错误。异常处理的5个关键字:try:探测异常catch:如果异常出现,进入错误处理路径finally:无论是否出..原创 2020-07-05 12:58:43 · 206 阅读 · 0 评论 -
重写equals方法和hashCode方法
判断两个对象是否相等,java提供了两种方法:"“和equals方法。""判定两个对象相等的机制是看这两个对象是否是同一个对象,即这两个对象是否指向同一个地址。equals方法用来判断两个对象的内容是否相等。在Object类中默认的equals方法是return this == obj 。为了能够判断两个对象的内容是否相等,我们常常需要重写equals方法(equals方法须满足自反、对称、传递三个性质)。public class Teacher { private String IDNumber原创 2020-05-14 22:13:32 · 143 阅读 · 0 评论 -
java.util.ConcurrentModificationException
java.util.ConcurrentModificationExceptionat java.util.AbstractListItr.checkForComodification(UnknownSource)atjava.util.AbstractListItr.checkForComodification(Unknown Source)at java.util.AbstractList...原创 2020-03-24 23:29:19 · 91 阅读 · 0 评论 -
isInterrupted和interrupted的区别
133原创 2020-05-28 19:14:26 · 1344 阅读 · 0 评论 -
可复用性复习概要
可复用的不仅仅只有代码,最主要的复用是在代码层面, 但软件构造过程中的任何实体都可能被复用,如需求、设计/规约spec、数据、测试用例、文档。代码复用的类型:(1) 白盒复用:源代码可见,可修改和扩展。通过继承进行复用。(1) 黑盒复用:源代码不可见,不能修改。通过实现接口/委托复用。设计可复用的类:继承与重写、重载、参数多态与泛型编程、行为子类型与Liskov替换原则、组合与委托。Liskov替换原则:子类型可以增加方法,但不可删;子类型需要实现抽象类型中的所有未实现方法;..原创 2020-07-09 16:10:36 · 183 阅读 · 0 评论 -
正则表达式的作用及其使用
正则表达式,又称规则表达式,常被用来检索、替换那些符合某个模式(规则)的文本。给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1.给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。下面分别举例说明正则表达式如何达到这两个目的:1.语法判断:输入一个QQ号,匹配其是否符合规则。QQ号是从10000开始的,所以对其进行匹配可以用"[1-9][0-9]{4,}",其中,"[]"代表区间,[1-9]代表匹配区间1-9之间的单个原创 2020-05-18 21:47:58 · 5455 阅读 · 0 评论 -
使用git上传及更新项目到GitHub仓库
本文简要总结了使用git上传及更新项目到GitHub的两中方法。原创 2020-03-14 21:29:37 · 328 阅读 · 0 评论 -
list多次赋值后得到的结果全部被最后一次赋值所覆盖原因及解决方法
最近在写程序的时候发现,向list中多次赋值后得到的结果全部被最后一次赋值所覆盖,重现一下当时出现此问题的代码:public static void main(String[] args) { List<String> list = new ArrayList<String>(); List<List<String>> lists = new ArrayList<List<String>>();//存放list list.原创 2020-06-06 20:36:39 · 3579 阅读 · 0 评论 -
JAVA中scanner的使用感想
最近写程序在用到scanner的时候遇到了一些问题,为此,查阅了一些资料,系统的了解了一下scanner的使用方法及其注意事项。原创 2020-04-22 16:44:28 · 239 阅读 · 0 评论 -
可维护性的度量与构造原则复习概要
种类:a.纠错性维护,修复bug;适应性维护,迁移相关(电脑->手机);完善性维护,扩充软件功能(比重最大);预防性维护,为了以后软件的可能变化,提前做出准备(比重最小,本应最大)。提高软件可维护性的一些基本原则:(1) 模块化编程:高内聚(每个模块完成一个功能),低耦合(模块之间联系尽量少);分离关注点,信息隐藏。(2) SOLID原则(模块化编程原则):单一职责原则;开放-封闭原则;Liskov替换原则;依赖转置原则;接口聚合原则。...原创 2020-07-08 15:11:30 · 155 阅读 · 0 评论