![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
文章平均质量分 64
Leaf_wuji
这个作者很懒,什么都没留下…
展开
-
Code Review 4
总结 代码评审是一种广泛应用的软件质量提升方法。它可以检测出代码中的各种问题,但是作为一个初学课程,这篇阅读材料只提及了下面几个好代码通用的原则:不要重复你的代码(DRY) 仅在需要的地方做注释 快速失败/报错 避免使用幻数 一个变量有且仅有一个目的 使用好的命名 避免使用全局变量 返回结果而非打印它 使用空白符提升可读性 下面把今天学的内容和我们的三个目标联系起来:远...原创 2018-04-07 14:55:43 · 247 阅读 · 0 评论 -
关于hashcode的那些有趣的事情
hashcode的作用是让基于散列的集合正常的运行,这些散列的集合有:HashSet、HashMap以及HashTable。 举个例子:当我们需要添加一个元素的时候a进Set的时候,我们会先取出a的hashcode,然后在散列桶里边找有没有散列值跟a这个元素的散列值相同的,没有的话,最直接添加;有的话,再用equals方法判断,添加的值。有趣的例子1:可变数据类型的操作改变,导致哈希值的改变...原创 2018-06-10 22:00:05 · 143 阅读 · 0 评论 -
Collections.unmodifiableList理解
unmodifiable 即只读的意思,不可以修改。 现在设计一个顾客信息的customer类,不好的写法如下:package rr;import java.util.ArrayList;public class Try{ public static void main(String[] args) { ArrayList<String>...原创 2018-03-31 13:44:34 · 16698 阅读 · 0 评论 -
继承&多态&重写&重载 理解小结
菜鸟教程 继承class SuperClass { private int n; SuperClass(){ System.out.println("SuperClass()"); } SuperClass(int n) { System.out.printl原创 2018-04-09 16:29:18 · 3212 阅读 · 0 评论 -
synchronized块(方法)的探索
例:public class Try implements Runnable{ public void run() { synchronized(this) { for(int i=0;i<4;i++) { System.out.println(Thread.currentThread().getName()+" : "+i); }...原创 2018-06-13 19:56:26 · 259 阅读 · 0 评论 -
创建线程的两种方法
有两种方式:从Tread中派生出新的子类、实现Runnable接口、还有一种习惯用法 一、从Tread中派生出新的子类 创建片段完整的创建一个线程,并调用 二、 创建片段 完整的创建一个线程,并调用 三、习惯用法 创建片段 new Thread(new Runnable() { public void run() { //TODO } ...原创 2018-06-13 17:15:04 · 1320 阅读 · 0 评论 -
chapter3 小结
1、基本数据类型 对象数据类型 基本数据类型: 2、静态类型检查 动态类型检查分别的出现情况,判断这会引起什么样的类型检查3、可变和不可变类型危害在哪(引用修改、size or length)如何修改(final、new)4、防御式拷贝 5、Snaphot 6、规格 前后置条件规格怎嘛写前置、后置条件是什么规格的替代:宽进严出javac @return...原创 2018-06-13 16:33:46 · 115 阅读 · 0 评论 -
3.1Data Type and Type Checking (补充)
key word :data typemutability and mutable objects static and dynamic type checkingNull referencesSpecific content as follows: 1 、Primitives&Object Reference Types P6 2、Boxed primitiv...原创 2018-06-18 14:03:26 · 216 阅读 · 0 评论 -
Software Construction 3
text3 一、测试优先 (1)为函数写一个规格说明。 (2)为上一步的规格说明写一些测试用例。 (3)编写实际代码。一旦你的代码通过了所有你写的测试用例,这个函数就算完成了。 二、分区测试(三个例子) EX1:/** * @param val another BigInteger * @return a BigInteger whose value is (this * ...原创 2018-04-06 23:19:25 · 181 阅读 · 0 评论 -
software construction1&2
txt1 一、静态检查、动态检查、不检查 1、静态检查:检查类型,保证变量的值在这个集合 (1)语法错误 Math.sine(2) (应该是 sin.) (2)参数的个数不对,例如 Math.sin(30, 20) (3)参数的类型不对 Math.sin(“30”) (4)错误的返回类型 ,例如一个声明返回int类型函数return “30”; 2、动态检查 (1)非法变量值:...原创 2018-03-31 13:00:54 · 175 阅读 · 0 评论 -
Mutability & Immutability
一、可变与不可变 1、不可变 需要创建新的对象String s = "a";s = s.concat("b"); // s+="b" and s=s+"b" also mean the same thing2、可变 StringBuilder 对象是可变的。这个类有对应的方法来改变对象,而不是返回一个新的对象StringBuilder原创 2018-04-09 16:17:56 · 610 阅读 · 0 评论