关于public static void main()

刷《Java程序员面试宝典》P42题时候遇到一个问题
是关于

public static void main(String[] args){
}
  • public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。
  • static关键字,告知编译器main方法是一个静态方法。也就是说main方法中的代码是存储在静态存储区(方法区)的,即当定义了类以后这段代码就已经存在了。只要类被加载后,就可以使用该方法,不需要通过实例化来访问,可直接通过类名.main()直接访问。
  • void关键字表明main()的返回值是无类型。
  • main是jvm识别的特殊方法名,是程序的入口方法。
    同一个.java文件可以有多个main方法,但只有与文件名相同的用public修饰的类中的main()方法才能作为整个程序的入口方法
  • 参数String[] args,字符串数组参数args为开发人员在命令行状态下与程序交互提供了一种手段。
public class Testargs {
    public static void main(String[] args) {
        String str = new String();
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
            str += args[i];
        }
        System.out.println(str);
    }
}
//如果不使用编译器,使用命令行进行编译。你可以在准备编译class的时候传入abc,那么上面程序运行的结果就是abc,

另外一种作用就是像正常函数方法一样调用其函数,但是需要注意的一点就是static声明的变量或者方法,是类方法或者说是类变量,不需要实例化就可以直接使用

public classA {
  public static void main(String[] args)
  {
     for (int i = 0; i < args.length; i++) {
       System.out.println(args[i]);
     }
  }
}
public classB {
  public static void main(String[] args)

  {

  //A c = new A();

  String[] b = {"111","222","333"};

  //c.main(b); //输出111 222 333

  //因为main()函数是静态函数,因此不需要实例化就可以使用
  A.main(b);//输出结果和上面的是一样的

  }
}

其中引起了我对与static部分在JVM内存中到底扮演一个什么角色的兴趣

猜你喜欢

转载自blog.csdn.net/weixin_38719347/article/details/80907588