JAVA:从public static void main(String args[])開始

我们都知道当你要执行一个JAVA文件的时候必需要有一个main函数。

这是为什么呢?

跟C语言的道理一样,当你执行一个文件的时候。你必需要有一个入口函数或者入口地址,在C里面是main函数。相同的在JAVA里面则是public static void main(String args[])这样一个入口函数。这是java程序的入口地址,java虚拟机执行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.仅仅有有main()方法的java程序才可以被java虚拟机欲行,可理解为规定的格式。

(1)publickeyword,这个好理解。声明主函数为public就是告诉其它的类能够訪问这个函数。

  (2)statickeyword,告知编译器main函数是一个静态函数。

也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。

假设main()方法没有使用static修饰符,那么编译不会出错。可是假设你试图运行该程序将会报错。提示main()方法不存在。由于包括main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。

而使用static修饰符则表示该方法是静态的,不须要实例化就可以使用。

因为JAVA是全然面向对象的语言,所以一切都是依托于对象而存在的,加static这种优点就是main函数不依托于类的对象。他属于类。可是在类载入的时候他自己也被载入到虚拟机上去了,不须要实例化。

(3)voidkeyword表明main()的返回值是无类型。

  (4)參数String[] args。

mian函数接收參数的形式有两种

第一、程序使用者能够在命令行状态下向某个类传递參数。看以下的样例:

 

 public class ArgsDemo {
  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);
  }
  }

  使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然后使用“java ArgsDemo 參数一 參数二 參数三 …”的格式向ArgsDemo类传递參数。

该演示样例程序将首先输出參数,然后输出全部參数的和。比方java ArgsDemo a b c,将得到这种输出:

  a

  b

  c

  abc

  须要注意的是。假设这里的循环条件不是i <args.length。而是i <5。则在命令行中输入的參数必须是5个,否则将会报错,错误类型为:

 

 Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3
  at ArgsDemo.main(ArgsDemo.java:5)

  第二、能够在还有一个类中向包括main()的类传递參数,例如以下例:

  public class A {
  public static void main(String[] args)
  {
  for(int i=0;i <args.length;i++)
  System.out.println(args[i]);
  }
  }
  public class B {
  public static void main(String[] args)
  {
  c = new A();
  String[] b = {"111","222","333"};
  c.main(b);
  }
  }

  首先定义一个class A,在A中定义一个main()函数,在该函数中输出參数args。

然后定义一个classB,在B中初始化一个A的实例c,然后向c传递參数。而且调用c的main方法打印出传入的參数值。输出结果例如以下:

  111

  222

  333

  因为main()函数是静态函数。即不须要实例化也能使用。所以B使用以下的写法也能完毕同样的功能:

  public class B {
  public static void main(String[] args)
  {
  //A c = new A();
  String[] b = {"111","222","333"};
  A.main(b);
  }
  }

參考文章java_main_函数

时间: 2024-10-24 18:03:42

JAVA:从public static void main(String args[])開始的相关文章

《Java程序员面试笔试宝典》之为什么需要public static void main(String[] args)这个方法

public staticvoid main(String[] args)为Java程序的入口方法,JVM在运行程序的时候,会首先查找main方法.其中,public是权限修饰符,表明任何类或对象都可以访问这个方法,static表明main方法是一个静态方法,即方法中的代码是存储在静态存储区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过类名.main()直接访问,JVM在启动的时候就是按照上述方法的签名(必须有public与static修饰,返回值为void,且方

第三次博客作业package com.fry; //导入java.util.Arrays; import java.util.Arrays; public class Demo1 { public static void main(String[]args){ //创建对象,对象名为hello Demo1 hello =new Demo1(); //调用方法并将返回值保存在变量中

1.  某网站管理系统,用户注册时,电话号码为可选输入项,输入格式为:区号-电话号码—分机号,中间用“-”隔开.以下为jsp页面上的设计,且并未对输入做任何控制. 假设系统现在需要取出中间的电话号码部分,代码如下: /** * * 该方法根据用户输入取出中间的电话号码部分 * @param strPhoneNum 电话号码,如:“0591-83279988—002” * @return 返回号码部分,如:“83279988” */ public String getPhoneNumber(Str

public static void main(String[] args){}函数诠释

主函数的一般写法如下: public static void main(String[] args){-} 下面分别解释这些关键字的作用: (1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数. (2)static关键字,告知编译器main函数是一个静态函数.也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就 已经存在了.如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示ma

将 main 方法定义为:public static void main(String[] args)的理由

1.没有public修饰符或者其他修饰符 错误: 在类...中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application 2.没有static 错误: main 方法不是类 ... 中的static, 请将 main 方法定义为: public static void main(String[] args) 3.返回值不是v

关于public static void main(String[] args)相关知识

main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同.比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等. 这个main()方法的声明为:public static void main(String args[]).必须这么定义,这是Java的规范.为什么要这么定义,和JVM的运行有关系. 1)解释main:当一个类中有main()方

错误: 在类 com.zs.container.CollectionData 中找不到主方法, 请将主方法定义为: public static void main(String[] args)

错误: 在类 com.zs.container.CollectionData 中找不到主方法, 请将主方法定义为: public static void main(String[] args) package com.zs.container; import java.util.ArrayList; import com.java.array.generator.CountingGenerator.String; import com.java.array.generator.CountingG

主函数特别之处:public static void main(String[] args)

public static void main(String[] args) 1 public class Test_java {//主函数特殊之处 2 public static void main(String[] args) { 3 System.out.println(args); 4 System.out.println(args.length); 5 for (int i = 0; i < args.length; i++) { 6 System.out.println(args[i

public static void main(String[] args)说明

/*public static void main(String[] args) 主函数特殊之处:1,格式是固定的.2,被jvm所识别和调用. public:因为权限必须是最大的.static:不需要对象的,直接用主函数所属类名调用即可.void:主函数没有具体的返回值.main:函数名,不是关键字,只是一个jvm识别的固定的名字.String[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型. */ class MainDemo { public static

public static void main(String[] args){}函数理解

主函数的一般写法如下: public static void main(String[] args){…} 下面分别解释这些关键字的作用: (1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数. (2)static关键字,告知编译器main函数是一个静态函数.也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段 代码就 已经存在了.如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示m

错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application

错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.application.Application 出现这种错误的原因其中一种就是 导包时错把其他的String包导入,以至于找不到main(String[ ]  args) 原文地址:https://www.cnblogs.com/mibloom/p/9497357.html