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
constructor A
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-12 13:31:11