天天看點

Java學習筆記----main

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