注釋/*@ pure @*/ 表明peek()方法是一個純方法(pure method),純方法是指沒有副作用的方法。JML中只答應使用純方法進行斷言確認,所以我們把peek()聲明為純方法,這樣我們就可以在pop()方法的后置條件中使用peek()方法。大家肯定想知道,為什么JML只答應使用純方法進行斷言確認?問題是這樣的,假如JML答應使用非純方法進行斷言確認的話,我們稍不注重就會寫出有副作用的行為規范。比如說可能會有這么一種情況,開啟了斷言確認以后,我們的代碼正確無誤,可是假如禁止了斷言確認后,我們的代碼卻不能運行了,或運行出錯了。這樣當然不行!后面,我們還會進一步討論副作用的問題。