軟體測試技術 homework1 印象最深的錯誤

2022-08-21 09:57:14 字數 968 閱讀 1588

我印象最深的一次錯誤是關於==與equals的,是在寫資料庫的時候遇到的。

比如:string a = "123";

string b = new string("123"); 

結果是前者是true,後者是false。

後來,經過查閱資料,我發現:

==比較的是引用變數的值,也就是比較的物件的記憶體位址。當兩個引用變數指向同乙個物件時返回true,反之,返回false。

而在object裡,equals方法如下宣告:

public boolean equals(object obj) {

return (this == obj);

可以看到,在object裡,equals就是通過==來實現,所以object下的equals比較也是引用變數的值。

但是在string裡,equals方法如下宣告:

public boolean equals(object anobject) {

if (this == anobject) {

return true;

if (anobject instanceof string) {

string anotherstring = (string)anobject;

int n = value.length;

if (n == anotherstring.value.length) {

char v1 = value;

char v2 = anotherstring.value;

int i = 0;

while (n-- != 0) {

if (v1[i] != v2[i])

return false;

i++;

return true;

return false;

可以看到,在sring裡,其重寫了equals方法。先判斷是是不是同乙個物件,在判斷兩個物件的值是否相同,相同返回true。

資訊基礎Homework1

q1.什麼是線性賦範空間?a1 線性空間 範數 l0 非0個數 l1 曼哈頓距離 l2 距離 有向量的加法和數乘滿足 向量加法結合律 交換律 單位元 逆元素 標量乘法分配於向量加法上,分配於域加法,標量乘法一致於標量的域乘法 標量乘法有單位元 1 v v 線性賦範空間就是定義了範數的線性空間,所謂範...

系統分析與設計 homework 1

1 簡單題 軟體工程是指導計算機軟體開發和維護的工程學科。將 系統化的 規範的 可度量的 方法用於軟體的開發 執行和維護的過程,即將工程化應用於軟體開發中。採用工程的概念 原理 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,這就是軟體工程。軟體...

系統分析與設計 Homework1

1 簡單題 1 將系統化 規範化 可度量的方法應用與軟體的開發 執行和維護的過程,即將工程化應用於軟體中。2 對 1 中所述方法的研究。ieee iee93 軟體危機 software crisis 是早期電腦科學的乙個術語,是指在軟體開發及維護的過程中所遇到的一系列嚴重問題,這些問題皆可能導致軟體...