main方法详解

main方法详解学习Java有一段时间了,一直没用过博客来写写自己在学习过程中遇到的问题和学习心得,看到别人在诸如博客这样的社区写一些总结觉得挺好的。索性,今天开始自己也用起博客记录学习。一来呢,能更好的总结学习知识。二来,有问题更有机会让别人指出,对自己学习也很有帮助。话不多说,就以main方法详解开始今天的主题吧。      为了表述方便,我先把mian方法写出来:publicclassDemo

大家好,又见面了,我是你们的朋友全栈君。

       学习Java有一段时间了,一直没用过博客来写写自己在学习过程中遇到的问题和学习心得,看到别人在诸如博客这样的社区写一些总结觉得挺好的。索性,今天开始自己也用起博客记录学习。一来呢,能更好的总结学习知识。二来,有问题更有机会让别人指出,对自己学习也很有帮助。话不多说,就以main方法详解开始今天的主题吧。

      为了表述方便,我先把mian方法写出来:

public class Demo {
	public static void main(String[] args) {
		System.out.println("Hello Word");
	}
}

      1、为什么是公共的(public)

       我们都知道,Java指定了一些可访问的修饰符如:private,protected,public。每个修饰符都有它对应的权限,public权限最大,为了说明问题,我们假设main方法是用private修饰的,那么main方法出了Demo这个类对外是不可见的。那么,JVM就访问不到main方法了。因此,为了保证JVM在任何情况下都可以访问到main方法,就用public修饰。

       2、为什么是静态的(static)

       静态可以让JVM调用main方法的时候更加方便,不需要通过对象调用。但这么说的话说服力好像还不够,那我们同样先假设没有static。“main”方法写成:

public class Demo {
	public void main(String[] args) {
		System.out.println("Hello Word");
	}
}

此时,JVM要调用main方法可以这样做:new Demo().main();对于这种情况来说显然是可以的。但是我们接着看下面这种情况:

public class Demo {
	public Demo(String name,int age){
		
	}
	public void main(String[] args) {
		System.out.println("Hello Word");
	}
}

这种情况下,Demo这个类没有了无参构造方法,只有带参的构造方法。此时要创建对象就会调用的带参的构造方法,而带参的构造方法必然是要接受参数的,可是对于JVM来讲,根本就不知道要传递什么参数。所以,将main方法设计成静态的,就避免了这种问题。

       3、为什么没有返回值(void)

       这个很好理解,假设是有返回值的,JVM调用了main方法,main将数据返回给JVM,main方法一旦返回数据,也就意味着程序结束了,而JVM要这个返回的数据是没有意义的。所以就设计main方法为voi。

      4、main

       这个没什么好说的,只不过是JVM能识别的一个特殊的函数名而已。

      5、String [] args

      担心某些程序在启动的时候需要参数,这个我在这里简单演示一下使用方法,好像几乎用不到。

public class Demo {
	public void main(String[] args) {
		System.out.println("数组的长度:"+args.length);
		for (int i = 0; i < args.length; i++) {
			System.out.println(args[i]+",");
		}
	}
}

 
main方法详解

   当然JDK1.5之后引入了可变参数,所以将String [] args写为String…arrgs也是可以的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138333.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]

    java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]作为文件形式存在的证书一般有这几种格式:1.带有私钥的证书由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。2.二进制编码的证书证书中没有私钥,DER编码二进制格式的证书文件,以cer作为证书文件后缀名。3.Base64编码的证书证书中没有私钥,BASE64编码格式的证书文件…

    2022年5月27日
    70
  • 金蝶K3数据库表名对应及表说明[通俗易懂]

    金蝶K3数据库表名对应及表说明[通俗易懂]金蝶K3数据库表名对应及表说明,金蝶报表开发必备

    2022年6月10日
    93
  • 常用的数据库函数_数据库中自定义函数

    常用的数据库函数_数据库中自定义函数1.COALESCE();很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用。返回其参数中第一个非空表达式语法:COALESCE(expression[,…n])如果所有参数均为NULL,则COALESCE返回NULL。至少应有一个Null…

    2022年10月25日
    0
  • 说明电磁型继电器的工作原理_永磁继电器工作原理

    说明电磁型继电器的工作原理_永磁继电器工作原理原文地址点击这里:电磁继电器(electromagneticrelay)是一种电子控制器件,它具有控制系统(输入回路)和被控制系统(输出回路),通常应用于自动控制电路中,它是用较小的电流、较低的电

    2022年8月1日
    4
  • navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例

    navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例navicat存储过程界面功能点击运行时,会弹出窗口填入输入参数。使用Navicat创建存储过程在函数位置,右键新建函数,OUT参数没有默认值,写了也没用。软件自动生成存储过程框架,然后人去补充“声明变量”和“主体”部分,注意存储过程名称可以用引号,也可以不用引号。Navicat运行存储过程方法一:使用Navicat软件界面功能方法二:在查询界面创建变量并调用存储过程Orac…

    2022年7月17日
    79
  • Layui的TreeTable使用

    Layui的TreeTable使用Layui官方本身是没有TreeTable的,不过有个大佬自己写了一个,这是码云地址:https://gitee.com/whvse/treetable-lay/tree/master/接下来我来说一下具体使用这个东西首先下载这个文件夹中的东西在你的web项目下将这个文件夹弄到里面去,在页面上导入这些文件&lt;linkrel="stylesheet"href="as…

    2022年4月30日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号