JAVA是纯面向对象的语言,mian也是一个方法,它由程序员自己定义的一个公有类包装并重载这个方法,这个方法做为程序一开始的执行点,所以在没有任何类的实例对象时,程序就可以开始执行,所以main方法必须是静态的       public    static    void    main(String[]    args)     
      参数args    可以随便写,但是其他就是固定的。      1.main函数前面可以没有static。不信你编译看看,但是运行不通过,因为对于一个java的application而言,static    void    main(String    args[])这样的写法是必须的,以保证main函数合法且先执行。事实上该函数可以超载。   
      2.调用非staic函数的前提是必须对包含该函数的类进行实例化,如果不实例化,当然不行。因为main函数的运行在类实例化之前。(就是说可以认为staic    main函数独立于类之外)   
      3.这是java中最基本也是最迷惑人的地方-----一切staic的函数和变量,都先于类之前初始化或执行。      static表示静态方法,可以脱离类而实现,也就是说可以没有一个类的实例也能执行这个static方法,类似于一个全局方法。因此,static方法中的代码必须是可以单独拿出来执行的,如果要执行这个类中的非static方法,必须先实现一个这个类的实例。

解决方案 »

  1.   

    一个类的某个方法要能独立运行的话,该方法必须是静态的。否则就要产生一个该类的对象,即new。JDK在运行main不能生产这个类的对象,因此,main必须是静态的。
      

  2.   

    看对static的理解了,呵呵,学习。
      

  3.   

    说法还算正确,为什么要把main方法定义成静态的,因为静态方法是在类加载的时候就初始化了,并且java定义了main方法为程序执行开始的方法。
      

  4.   

    一切staic的函数和变量,都先于类之前初始化或执行
      

  5.   

    static成员无论实例化多少次,都只在该类加载的时候初始化一次,与创建多少对象无关
      

  6.   

    main方法应该是 JRE 里面定义的方法,你把名字改成 main1 ,它就无法识别成 java Application了
      

  7.   

    还可以写作static public void main。有个变态公司面试题问这样写可不可以。
      

  8.   

    类的初始化与实例化是两码事,应该说static成员是独立于类的对象,而不是类本身;
    static成员在类初始化(加载)的时候初始化;
    非static成员在类实例化(创建对象)的时候初始化;
      

  9.   

    都是对本来人家已经定义好的东西来个 “自我理解”,呵呵。这和JVM实现以及JAVA 规范有关吧。但是你硬是要去问 为什么这个 规定,那最好去问 SUN!
      

  10.   

    java笔试题:
    java中main函数的返回值是什么类型?
    大家说说看