main()方法必须都写在类里面,在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<args.length;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中学习中大障碍。

java main()方法必须都写在类里面相关推荐

  1. eclipse 主类中明明有main方法且没有写成mian,还老是提示找不到main方法。

    之前一直都是用IDEA写JAVA,IDEA好是好,就是要收费,而eclipse则是免费的,由于最近在准备各种考试,了解到考试环境都是eclipse编程,于是又改回用eclipse编程,但是一编译就提示 ...

  2. main方法中args_public static void main(String [] args)– Java main方法

    main方法中args public static void main(String[] args) is the most important Java method. When you start ...

  3. main方法为什么要写成:public static void main(String [] args){}?

    使用idea创建src的java文件时自带一个Main.java文件,该文件输出一句"Hello World",这是为什么呢?原来Hello World 中文意思是『你好,世界』. ...

  4. Java main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  5. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  6. java 中操作字符串都有哪些类?它们之间有什么区别?

    java 中操作字符串都有哪些类?它们之间有什么区别? String.StringBuffer.StringBuilder String : final修饰,String类的方法都是返回new Str ...

  7. java main 方法使用 HttpClients发送请求 不打印debug日志

    记录目的:java main 方法使用HttpClients发送请求不打印debug日志 记录背景: 使用java main方法测试接口响应时间 发现问题: 控制台打印巨多debug日志 解决方法: ...

  8. java main函数_都知道Java程序的入口方法是main,那你知道为什么是main方法吗?

    我们都知道Java的入口方法是main函数,下面这段代码就是Java中非常经典的Hello World代码: 我们通过Java提供的工具进行编译执行: 通过上面的代码我们知道Java入口方法的几个要求 ...

  9. java 委托_java 能不能自己写一个类叫 java.lang.System/String 正确答案

    来自:一汪清水 | 责编:乐乐 链接:blog.csdn.net/tang9140/article/details/42738433    正文    最近学习了下java类加载相关的知识.然后看到网 ...

  10. java main方法static_在java中为什么要把main方法定义为一个static方法?

    我们知道,在C/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易的就能找到这个main方法,然而当我们执行一个java程序的时候,因为ja ...

最新文章

  1. 一个JDK线程池BUG引发的GC机制思考
  2. 十进制转十六进制(蓝桥杯)
  3. 计算机配置中无可移动设备访问,USB连接正常,但是我的电脑中不显示可移动 – 手机爱问...
  4. MATLAB与图像处理(四):将图片序列转化为视频文件,将视频文件转化为图片
  5. lucene源码分析(7)Analyzer分析
  6. Spring OXM-XStream使用别名
  7. 最强 AWS 的十条军规,首席技术官总结过去十年的经验
  8. 高中计算机室名言,高中教室励志标语名言
  9. java二叉树的实现_二叉树的实现(Java语言描述)
  10. 知识图谱发展的三个时期以及事理图谱概念辨析
  11. Madagascar的自定义浮点型函数--取整函数
  12. 哈工大计算机学院2021复试分数线,哈尔滨工业大学2021年考研复试分数线
  13. html项目_Python Selenium项目实战之添加发送HTML测试报告邮件!
  14. 解释python中的join()和split()函数_python 中join()函数strip() 函数和 split() 函数的详解及实例...
  15. NumPy库---数组的基本操作
  16. arm android开发板推荐,arm7开发板推荐 最新arm开发板了解
  17. Golang sqlx 使用 Where in 解决办法
  18. 如何完整保存离线网页
  19. DPU网络开发SDK—DPDK(六)
  20. Tushare如何获取股票历史交易数据

热门文章

  1. 基于SRS的视频直播服务器搭建
  2. oracle recover datafile,recover datafile和alter database recover datafile;
  3. 中国草坪和花园设备市场现状研究分析与发展前景预测报告(2022)
  4. java线程栅栏_java多线程 栅栏CyclicBarrier
  5. 【python 监控报警】错误日志监控并钉钉报警
  6. 为什么我的iPhone上的某些iMessages绿色和某些蓝色?
  7. Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
  8. 计算机目录的制作步骤,怎么用word2003制作目录
  9. 第一次团队作业——团队选题报告
  10. 众核tilera的使用