我想知道其上執行第一靜塊或onCreate方法哪一個叫做第一個靜態塊或者創建方法?
public class MainActivity extends Activity {
static{
// dosomething
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
我想知道其上執行第一靜塊或onCreate方法哪一個叫做第一個靜態塊或者創建方法?
public class MainActivity extends Activity {
static{
// dosomething
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
的類加載這樣
所以,要回答你的問題,靜態塊,然後onCreate方法。
public class Example {
public static int FIRST = 1;
static {
// second
}
public int third = 3;
{
// forth
}
public Examle(){
// fifth
}
public void sixth(){
}
}
http://javarevisited.blogspot.com/2012/07/when-class-loading-initialization-java-example.html
靜態塊。
記住一個android程序主要是一個java程序。靜態塊用於類加載時的預初始化,因此將在android中的onCreate
之前調用。
看到更多細節:http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
首先靜被調用,然後的onCreate被稱爲
以下方式來執行塊 ....
1:=靜態聲明。
2:=非靜態聲明。
3 = =構造函數執行。
4 = =方法執行。
首先執行靜態塊。
即使只訪問靜態字段而未實例化對象,也會執行靜態塊。在這種情況下,如果僅訪問靜態字段,則構造函數或類方法(onCreate)也不會執行。
所有靜態代碼在創建Class對象時執行。這個(Class)對象將靜態變量(類變量)物理地保存在內存中。靜態塊可以初始化爲Class對象。稍後,每個類實例都會訪問Class對象中的靜態變量。
構造函數也是一個內部的靜態方法,因爲它在對象實例化之前調用。
此鏈接進入更多的細節,如果你想進一步研究它: http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
'static'塊.. – NINCOMPOOP
爲什麼不;噸您嘗試並打印日誌,以檢查自己 – Raghunandan
你應該嘗試找出 ... – Anukool