哪一个被称为第一个静态块或oncreate方法



我想知道静态块或Oncreate方法哪个先执行

public class MainActivity extends Activity {
static{
// dosomething
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

回答你的问题,静态块,然后onCreate方法。

一个类是这样加载的

  • 首先,任何静态的东西,按照它定义的顺序。
  • 然后,一个构造器
  • 然后,可以调用实例方法。

    公共类示例{

    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

执行块的方法....

1:= Static声明。

2:= Non-Static声明

3:=构造函数执行。

4:= Methods execution.

静态块优先执行。

即使只访问静态字段而没有实例化对象,也会执行

Static块。在这种情况下,如果只访问静态字段,则构造函数或类方法(onCreate)尚未执行。

所有静态代码在创建Class对象时执行。This (Class)对象在内存中物理地保存静态变量(类变量)。静态块可以初始化类对象。以后每个类实例都要访问class对象中的静态变量。

Constructor在内部也是一个静态方法,因为它在对象实例化之前被调用。

如果你想进一步研究它,这个链接有更多的细节:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

静态块。

记住android程序主要是java程序。静态块用于类加载时的预初始化,因此在android中会在onCreate之前调用。

查看更多详细信息:http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html

首先调用static,然后调用onCreate

最新更新