1.java中main方法是程式的入口方法。main還是必須的兩個修飾符是public和static.舉例
A:public static void main(String args[])
B:public static final void main(String args[])
C:static public void main(String args[])
D:static public synchronized void main(String args[])
E:static public abstract void main(String args);
上面能夠是入口main方法的僅僅有ABCD.
2.同一個java檔案其中可能夠有多個main方法舉例
class T{
public static void main(String agrs[]){
System.out.println("T mian");
}
}
public class Test{
public static void main(String args[]){
System.out.println("Test main");
}
}
執行結果:Test main
執行結果表明:僅僅有和檔案名稱同樣的類裡面的main方法才是程式的入口方法。即Test.java中僅僅有名為Test類中的main是程式的入口,同一時候一個java檔案裡能夠有多個main方法。
3.在main方法前輸出HelloWorld
public class Test{
static {
System.out.println("hello world1");
}
public static void main(String args[]){
System.out.println("hello world2");
}
}
執行結果是:hello world1
hello world2
public class Test{
public static void main(String args[]){
System.out.println("hello world2");
}
static {
System.out.println("hello world1");
}
}
這段程式和上面的程式輸出結果一樣。是以表明在程式執行時,靜态塊是在main方法之前被載入的,并且static塊在程式中的位置無關。
4.java程式的初始化順序
(1)靜态對象(變量)優先于非靜态對象(變量)初始化,靜态對象(變量)僅僅初始化一次,非靜态可能會初始化多次。、
(2)父類優先于子類進行初始化
(3)依照成員變量的定義順序進行初始化
class B extends Object{
static{
System.out.println("static B");
}
public B(){
System.out.println("constructor B");
}
}
class A extends B{
static{
System.out.println("static A");
}
public A(){
System.out.println("constructor A");
}
}
public class Test{
public static void main(String args[]){
new A();
}
}
運作結果:
static B
static A
constructor B