這個問題在這里已經有了答案: 靜態初始化塊和常規靜態初始化的區別 9 個回答 4天前關閉。
在靜態塊中分配靜態變數值是否有任何性能或其他優勢?甚至我們可以在java中宣告它時直接賦值嗎?
例如:
class C{
static float g=9.8f;
static{
g=9.8f;
}
}
uj5u.com熱心網友回復:
在您的示例中,沒有區別。(在您的示例中,您不會使用static塊`!)
更一般地說,astatic block允許您執行在普通初始化運算式中無法執行的操作。最有用的是:
- 捕獲初始化運算式可能引發的例外。
- 執行額外的方法呼叫(比如說)填充初始化程式創建的物件。
- 處理必須明確分配空白并且僅分配一次的限制。
static final
請注意,大多數這些事情在實踐中并不經常出現,所以這就是為什么static(甚至更多......實體)初始化程式塊很少使用的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/440093.html
