回答
每個變量都需要Java中的類型。
這不是一個變量的聲明,這是一個變量的賦值。 'a'的類型在其他地方定義。所以,這個代碼本身不會編譯,你需要一個變量聲明,如:
class X {
private static int a;
static {
a = 6;
}
}
作爲回答下面的評論,這是initializion序列:
- 靜態報表/靜塊被執行。
- 實例變量被賦予默認值
- 如果實例變量被分配了一個編譯時間常量,則會初始化實例變量。否則,將使用項目5完成(實例變量和實例初始化程序將按照它們定義的順序從頂部到底部一起完成)。
- 構造函數運行
- 實例初始化塊在所有調用超級已完成但尚未執行構造函數的其他部分之前運行。
- 其餘的構造函數被執行。
這個靜態在構造函數之前運行嗎? –
結帳第12.4章爲這個答案:http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html –
我已經更新了我的例子更擴展的答案[來源] (http://www.coderanch.com/t/267125/java-programmer-SCJP/certification/Initializing-Sequence) –
我想你的地方初始化的變量
private static int a;
static {
a = 6;
}
- 1. 爲什麼這個變量需要是靜態的?
- 2. 靜態變量不需要
- 3. 爲什麼要保留一個靜態變量?
- 4. 爲什麼靜態變量需要在C++中聲明兩次
- 5. Django - 爲什麼模型類中聲明的變量靜態
- 6. 什麼類型的變量不能是靜態的?
- 7. 爲什麼不能在泛型類中使用原始類型,靜態變量?
- 8. 爲什麼靜態變量不好?
- 9. 爲什麼對象類型需要動態內存和原始類型需要靜態內存?
- 10. 爲什麼在加載這種類型的靜態變量不需要調用代碼
- 11. 爲什麼不能在非靜態塊中聲明靜態最終變量?
- 12. 爲什麼CustomFieldSerializer需要靜態方法?
- 13. 爲什麼這裏需要靜態
- 14. 爲什麼靜態需要在這裏
- 15. 爲什麼我不能聲明一個參數化的靜態類變量?
- 16. 爲什麼try塊需要一個catch
- 17. 爲什麼模板類型的初始化需要重複變量的類型?
- 18. 作用域類型變量需要顯式作用。爲什麼?
- 19. 爲什麼不是這個靜態c#變量改變?
- 20. 什麼時候一個靜態constexpr類成員需要一個超類定義?
- 21. 爲什麼不設置一個靜態變量來消除靜態變量的目的?
- 22. 爲什麼註釋一個lambda類型不需要-XScopedTypeVariables?
- 23. 爲什麼需要一個變量指向一個結構
- 24. 爲什麼靜態類不能有非靜態方法和變量?
- 25. 爲什麼不能將靜態類變量分配給堆棧?
- 26. 爲什麼接口變量總是靜態的,爲什麼不抽象類總是靜態的?
- 27. 爲什麼不聲明每個變量都是靜態的
- 28. 需要的變量類型或不
- 29. OpenGL爲什麼需要統一變量(而不是常量)
- 30. 爲什麼我需要爲靜態lib構建指定運行時庫類型?
'A' 確實需要的類型。 a的類型必須在靜態塊之上聲明,否則將無法編譯。 –
這本身不會編譯。 –
[This](http://www.jusfortechies.com/java/core-java/static-blocks.php)是我在這個主題上找到的最佳參考。 – Mordechai