2024-05-12 12:14:06 | 我爱编程网
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。
在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Java类中main()方法的奥秘,程序的代码如下:
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
一、先说类:
HelloWorld 类中有main()方法,说明这是个java应用程序,通过JVM直接启动运行的程序。
既然是类,java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(默认的)。
二、再说main()方法
这个main()方法的声明为:public static void main(String args[])。必须这么定义,这是Java的规范。
为什么要这么定义,和JVM的运行有关系。
当一个类中有main()方法,执行命令“java 类名”则会启动虚拟机执行该类中的main方法。
由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。
对于java中的main方法,jvm有限制,不能有返回值,因此返回值类型为void。
main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于 字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。
因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[])”。
三、main()方法不准 throws Exception
因此main()方法中的异常要么处理,要么不处理,不能继续抛出。
比如写个public static int main(String args[]) throws Exception来定义main方法是错误的。
四、main()方法中字符串参数数组作用我爱编程网
main()方法中字符串参数数组作用是接收命令行输入参数的,命令行的参数之间用空格隔开。
下面给出一个例子,看看如何初始化和使用这个数组的。
public class TestMain {
public static void main(String args[]){
System.out.println("打印main方法中的输入参数!");
for(int i=0;i
System.out.println(args[i]);
}
}
}
执行方法和运行结果
D:\Study\basetest\src>javac TestMain.java
D:\Study\basetest\src>java TestMain 1 2 3
打印main方法中的输入参数!
1
2
3
五、给出HelloWorld的另外一个版本
public class HelloWorld2 {
static {
System.out.println("Hello Wordld!");
}
public static void main(String args[]){
System.exit(0);
}
}
这个main()方法执行的内容就一句"System.exit(0);" ,目的是让程序正常结束。那“HelloWorld!”是从哪里打印的,秘密就是在static打印的,因为static代码块的内容会在main调用前调用。
总结:
main方法作为一个特殊的规范,与普通的方法有很大区别,限制很多,理解其原理需要学习JVM相关知识。是Java中学习中大障碍。
首先,main方法不能直接调用非静态方法,要调用非静态方法只能通过new实现,new后会调用类的构造器,所以main调用非静态方法那么就一定会调用其构造器;
其次,构造器不属于静态的块,类的加载顺序中静态的会先加载,同样静态的会按顺序加载,你可以试试你就会发现静态的在构造器前或后都会比构造器先加载
最后说一句,静态调用可以不经过其构造器,就是说你调用某个类的静态属性(方法),可以不需要new这个类,没有new这个类是不会调用其构造方法的
我爱编程网(https://www.52biancheng.com)小编还为大家带来java中main的用法的相关内容。
void main的意思:表示无返回值。
void main()表示无返回值,就是说在程序尾不需要加return 0; void main(void)与上述是相同的,只是更严密而已。 在java/C/C++中,main为程序运行的主入口方法,每个程序只有一个,也就是所有程序建立在卖弄函数的基础之上。
main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的。虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main。
g++3.2中如果main函数的返回值不是int类型,就根本通不过编译。而gcc3.2则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用int main。
怎么实现javascript中调用java类中的方法实现javascript中调用java类中的方法如下:只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。1、映射Java对象到JavaScript对象上代码如下:mWebView=(WebView)findViewById(R.id.wv_content);mW
1,java程序的运行环境简称之为________.也称为构造器),程序块以及内部类.java程序的运行环境简称之为JRE。JRE全称JavaRuntimeEnvironment,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序(JavaApplication)。JRE的内部有一个Java虚拟机(JavaVirtualMachine,JVM)以及一些标准的类别函数库(C
java程序一般应当含有main方法,因为它是所有java程序执行的入口。是对还是错?错误java程序分为java应用程序+小应用程序applet如果是java应用程序,一般应当含有main方法,因为它是所有java程序执行的入口如果是applet,不用main方法。。。由init初始化,start启用主类是什么意思,为什么main方法是程序的入口,他是什么逻辑运行的
php将string类型转为int类型有哪些方法php将string类型转为int类型的方法有:1、强制类型转换方法;2、内置函数方法;3、格式化字符串方法。强制类型转换方法是指在要转换的变量之前加上用括号括起来的目标类型,如【(int)$var】。具体方法:(视频教程推荐:php视频教程)1、强制类型转换方式强制类型转换方式,就是“在要转换的变量之前加上用括号括起来的目标
phptp3.0框架里面的U方法怎么用U函数TP手册里面说的很详细啊:U方法的定义规则如下(方括号内参数根据实际应用决定):U('[分组/模块/操作]?参数'[,'参数','伪静态后缀','是否跳转','显示域名'])如果不定义项目和模块的话就表示当前项目和模块名称,例子:U('User/add')//生成User模块的add操作的URL地址U('Blog/rea
如何用命令行运行含有多个类的java程序,是全部写在一起,然后用含main的那个命名,还是别的什么方法?设计。在学之前来了解下,编写JAVA时要建立哪几个文件夹?——不用建什么文件夹,只要安装好JDK。说明每个文件夹的作用——现在在网吧,没有JDK,没法为你解释那些文件夹。学编写JAVA是不是英语一定要会?——英语,初中文化就够了,虽然程序源码那么多英语,但是并不是涉
php方法重写和多态的区别重写是多态实现方法的一种,多态的实现方法包括但不局限于重写,二者不是并列关系!多态是一种思想,重写是一种方法!换句话说,只会执行子类,不会执行父类。如果一定要执行父类,那么就要用到关键词parent。PHP类方法重写原则是什么PHP类方法重写原则:1、final修饰的类方法不可被子类重写;2、PHP是否重写父类方法只会根据方法名是否一致判断;3、重写时访
PHP中的函数ThinkPHP中C(),D(),S()1.在具体的Action方法里面,可以用C()对某些参数进行动态配置,主要指那些还没有使用的参数。具体用法如下:C('参数名称');//获取已经设置的参数值C('参数名称','新的参数值');//设置新的值2.D()函数的使用:先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01