Posted on 2007-08-16 14:47
尚愛軍 閱讀(301)
評論(0) 編輯 收藏
25 java里面怎么定義宏?
答:java不支持宏,因為宏代換不能保證類型安全。
如果你需要定義常量,可以將它定義為某個類的static final成員。參見26和30。
26 java里面沒法用const。
答:你可以用final關鍵字。例如 final int m = 9。被聲明為final的變量不能被再次賦值?final也可以用于聲明方法或類,被聲明為final的方法或類不能被繼承 。
注意const是java的保留字以備擴充。
27 java里面也不能用goto。
答:甚至在面向過程的語言中你也可以完全不用goto。請檢查你的程序流程是否合理。
如果你需要從多層循環中迅速跳出,java增強了(和C++相比)break和continue的功能,支持label。
例如:
outer :
while( ... )
{
inner :
for( ... )
{
... break inner; ...
... continue outer; ...
}
}
和const一樣,goto也是java的保留字以備擴充。
28 java里面能不能重載操作符?
答:不能。String的+號是唯一一個內置的重載操作符。你可以通過定義接口和方法來實現類
似功能。
29 我new了一個對象,但是沒法delete掉它。
答:java有自動內存回收機制,即所謂Garbarge Collector。你再也不用擔心指針錯誤
30 我想知道為什么main方法必須被聲明為public static?
答:聲明為public是為了這個方法可以被外部調用,詳情見面向對象篇37。
static是為了將某個成員變量/方法關聯到類(class)而非實例(instance)。
你不需要創建一個對象就可以直接使用這個類的static成員,
在A類中調用B類的static成員可以使用B.staticMember的寫法。
注意一個類的static成員變量是唯一的,被所有該類對象所共享的。
31 throw和throws有什么不同?
答:throws用于聲明一個方法會拋出哪些異常。而throw是在方法體中實際執行拋出異常
的動作。
如果你在方法中throw一個異常,卻沒有在方法聲明中聲明之,編譯器會報錯。
注意Error和RuntimeException的子類是例外,無需特別聲明。
32 什么是異常?
答:異常最早在Ada語言中引入,用于在程序中動態處理錯誤并恢復。
你可以在方法中攔截底層異常并處理之,也可以拋給更高層的模塊去處理。
你也可以拋出自己的異常指示發生了某些不正常情況。常見的攔截處理代碼如下:
try
{
...... //以下是可能發生異常的代碼
...... //異常被拋出,執行流程中斷并轉向攔截代碼。
......
}
catch(Exception1 e) //如果Exception1是Exception2的子類并要做特別處理,應排在
前面
{
//發生Exception1時被該段攔截
}
catch(Exception2 e)
{
//發生Exception2時被該段攔截
}
finally //這是可選的
{
//無論異常是否發生,均執行此段代碼
}
33 final和finally有什么不同?
答:final請見26。finally用于異常機制,參見32。