《Core Java 2》讀書筆記(二)

2021-08-30 05:47:27 字數 1637 閱讀 6835

1,防禦性程式設計。必要時應當考慮採取保護性拷貝的手段來保護內部的私有資料,先來看下面這個例子:

pubic

final

class

period

public

dategetstart()

public

dategetend()}

這個類存在兩個不安全的地方,首先來看第乙個攻擊**

datestart

=new

date();

dateend

=new

date();

periodp

=new

period(start,end);

end.setyear(

78);

//改變p的內部資料!

這是因為外部和內部引用了同樣的資料,為了解決這個問題,應當修改period的建構函式:

public

period(datestart,dateend)

這樣內部的私有資料就與外部物件指向不同,則不會被外部改變

再來看第二個攻擊**:

datestart

=new

date();

dateend

=new

date();

periodp

=new

period(start,end);

p.getend().setyear(

78);

//改變p的內部資料!

這很顯然是由於公有方法暴露了內部私有資料,我們可以只返回內部私有資料的唯讀版本(即其乙份拷貝)

public

dategetstart()

public

dategetend()

2,讀到上面這個例子,我想起來了下面這樣的**片段

public

class

suit

public

stringtostring()

public

intcompareto(objecto)

public

static

final

suitclubs

=new

suit(

"clubs");

public

static

final

suitdiamonds

=new

suit(

"diamonds");

public

static

final

suithearts

=new

suit(

"hearts");

public

static

final

suitspades

=new

suit(

"spades");

private

static

final

suitprivate_values=;

public

static

final

listvalues

=collections.unmodifiedlist(arrays.aslist(private_values));}

讀書筆記2

關於this指標 雖然this指標大家已經很熟悉了,但是我這裡討論的關於this指標的問題可能大家還沒注意過 為了說明這個關於this的歸屬問題,我自寫了一段再簡單不過的程式,雖簡單但具體 include class a void aa 我的問題是指標p1是指向b自身嗎?一看程式,大家就知道 不是,...

讀書筆記(2)

沉默的藝術 意識科學基礎理論 量子效應只是用於穩定某種內在自由度極大的基本粒子,然後再用基本粒子的內在屬性產生意識體驗。只能通過呈現乙個系統的 物理 屬性來描述乙個系統。只能通過變成內在屬性配對的其中乙個系統,以直接體驗的方式來獲得這些內在屬性的資訊。定義乙個包含所有系統的系統d,除該系統外無任何系...

讀書筆記2

ripple專注於跨境支付領域,主要為銀行和其他金融機構提供基於區塊鏈協議的外匯 轉賬方案。目前已公布的銀行客戶有3家,並正在和另外80多家銀行深入洽談。ripple主 要通過其開發的interledger協議專案,在保持銀行等金融機構的各自不同的記賬系統的基 礎上,打造乙個全球統一的網路金融傳輸協...