java面試筆試題:什麼時候用assert。
assertion(斷言)在軟體開發中是一種常用的調試方式,很多開發語言中都支援這種機制.在實現中,assertion就是在程式中的一條語句,它對一個boolean運算式進行檢查,一個正確程式必須保證這個boolean運算式的值為true;如果該值為false,說明程式已經處於不正確的狀態下,系統將給出警告或退出.一般來說,assertion用於保證程式最基本、關鍵的正確性.assertion檢查通常在開發與測試時開啟.為了提高效能,在軟體發布後,assertion檢查通常是關閉的.
Java assert詳解:
Assert是從JDK1.4才開始引入的,但我使用的是JDK1.6,沒試過以前的版本.
assertion 斷言一般是在偵錯工具時使用,特別是使用Junit做單元調試時,更是大量使用assert.
assert有兩種文法:
1.assert expre1
exp1必須是返回boolean.
例: public class AsertTest{
public static void main(String args[]){
System.out.println("Assert begin!");
assert false;
System.out.println("Assert end!");
}
運行後得到:
assert為false時,會執出異常,System.out.println("Assert end!");沒有執行.當把assert改為true時,程式順利執行.
2.第二種文法:
assert exp1:exp2
當exp1為true的時候後面exp2被忽略,如果false的話,後面的運算式的結果會被計算出來並作為AssertionError得構造器參數
例:
public class AssertTest {
public static void main(String[] args) {
System.out.println("Assert begin!");
int i=0;
assert i == 0:"123456";
System.out.println("Assert end!");
}
}
運行後i == 0為true,而"123456"被忽略了.
還有就是,運行含有assert語句的java程式.由JDK預設狀態是關閉的,所以必須用以下的語句編譯執行.
編譯:javac -source 1.6 *.java.其中,1.6指java的版本.
執行:java -ea java類