java主函数一般定义如下:public static void main(String[] args)
其中每个单词表示的什么意思呢?我们一个个来看:
public-表示方法main()可被任何程序访问,包括Java技术解释器。
static- 是一个告知编译器,main()是用于类中的函数的关键字。为使main()在程序做其它事之前就开始运行,这一关键字是必要的。这里需要注意的是,如果Main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。这是因为你如果这样使用命令行的形式直接执行该程序,包含main()的类并没有实例化,所以其main()方法也不会存在,而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
void- 表明main()的返回值是“无类型”,其实它的返回值由主函数中的具体之星语句决定。这一点非常重要,因为Java编程语言要进行谨慎的类型检查,包括检查调用的方法确实返回了这些方法所声明的类型。
String args [] - 是一个String数组的声明,那么它的返回值是什么呢?
我们在"HelloWorld.class”这个程序执行时,并没有看到有数组的输出啊,这是为什么呢?
我们在运行编译后的"HelloWorld.class”是,是在命令行中直接输入"java HelloWorld"的,如果在后面加点东西呢?
比如说输入"java HelloWorld name",运行后就会发现,输出了name
原来,数组String args []是用来输出类名后跟的参数的,
要是输入"java HelloWorld name age",
则会输出:
......
name
age
由此看来:String args [0]="name",String args [1]="age"。
===============================================
JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了。我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享。
主函数的一般写法如下:
public static void main(String[] args){…}
下面分别解释这些关键字的作用:
(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。
(2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
(3)void关键字表明main()的返回值是无类型。
**(4)参数String[] args,这是本文的重点。
第一、程序使用者可以在命令行状态下向某个类传递参数。看下面的例子:
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);
}
}
总结:参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用,但毕竟为我们提供了一种选择。
(以上观点均系个人理解,不准确的地方欢迎批评指正。实例程序均调试通过)
================================
对static的理解还有问题。main方法的代码是存在方法区的。方法不管是否为static的,都存在方法区。
不过初学倒是不必追究太多细节。
分享到:
相关推荐
main 是 Java 主函数的名称,它不是关键字,而是 JVM 所识别的固定名称。 String[] args String[] args 是 Java 主函数的参数列表,表示该主函数可以接受一个字符串数组类型的参数。args 是参数的名称,可以被更改...
Java主函数,也被称为`main`方法,是Java程序的核心,它是程序执行的起点。Java虚拟机(JVM)在启动时会寻找包含`main`方法的类,并从那里开始执行代码。`main`方法的特殊性在于它的特定签名:`public static void ...
JAVA中的main函数详细讲解
Java小程序(GUI)是使用Java语言开发的图形用户界面应用程序,它通过提供直观的图形界面,使得用户可以与程序进行交互。在这个特定的例子中,我们关注的是一个加法计算器的实现,这通常是一个简单的GUI应用,用于...
在Java编程语言中,主函数(Main Function)是程序执行的起点,它是每个Java应用程序的入口点。在Java中,主函数由关键字`public static void main(String[] args)`定义。这个特殊的函数允许Java虚拟机(JVM)启动并...
在Java开发中,如果我们有一个包含主函数(Main方法)的类,通常我们会通过JDK提供的`java`命令来运行它。批处理文件可以帮助我们自动化这个过程,避免手动输入命令行参数。下面将详细讲解如何创建和理解这样的...
总的来说,Java iBatis main测试就是通过Java程序的主函数来验证iBatis框架的配置、SQL查询和数据操作的正确性。这种方式对于开发和调试数据库相关的功能非常有用,确保了代码在实际运行前的正确性。
public static void main(String[] args) throws Exception { // 配置邮件会话 Properties props = System.getProperties(); props.put("mail.smtp.host", "smtp.example.com"); props.put("mail.smtp.port", ...
讲到写代码,首先得说一下java的main函数,main函数又称主函数,是程序的入口。说人话就是程序启动后首先就从这个函数开始运行的。 上一章我们已经创建了一个类Test (此图片来源于网络,如有侵权,请联系删除! ) ...
这是一个基于遗传算法的社区发现算法代码 论文:Community detection based on modularity and an improved genetic algorithm ###使用方法: 1.在CommityData.java文件里面,更改path变量. ...5.MainRun.java:主函数
PS:下面通过示例代码看下JAVA中的main函数 package com.han; public class HanTest { public static void main(String[] args){ if(args==null){ throw new NullPointerException(The input is \null\); }...
是我把这其中的hibernate单独另外拿出来对hibernate进行讲解分析,这个项目文件与物流的项目没有具体关系,只是对hibernate的一个案例分析,运行的话每一个包下都有main主函数,可以直接进行java类的mian函数运行...
是我把这其中的hibernate单独另外拿出来进行对hibernate的讲解分析,这个项目文件与物流的项目没有具体关系,只是对hibernate的一个案例分析,运行的话每一个包下都有main主函数,可以直接进行java类的mian函数运行...
C#中的主函数定义为`static void Main()`,而Java中则是`public static void main(String[] args)`。在C#中,你可以选择加上`Main`函数的返回类型,如`int Main()`,但Java中只能是无返回值的`void`。此外,Java的...
Java 是一种广泛使用的编程语言,本资源摘要提供了 Java 学习笔记的关键要点,涵盖了 Java 主函数解析、Java 学习注意事项、JDK 和 JRE 的区别、变量、运算符、控制结构、数组、排序、面向对象编程、继承、多态、...
主函数(main method)是每个Java应用程序的入口点,`public static void main(String[] args)`,在这里编写程序的主体逻辑。 类与对象是面向对象编程的关键。类是对象的模板,定义了对象的属性和行为。对象是类的...
主函数(main方法)是每个Java应用程序的入口点。异常处理是Java中处理错误的关键,通过try-catch-finally语句块来捕获和处理运行时错误。 面向对象编程(OOP)是Java的基石。类和接口的定义,以及如何使用构造器...
4. **主函数(main方法)**:每个Java应用程序都从主函数开始执行。主函数的签名是`public static void main(String[] args)`,它是程序的入口点。 5. **控制台输入/输出(I/O)**:`System.out.println()`用于输出...