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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 缺陷报告-模板_质量缺陷报告

    缺陷报告-模板_质量缺陷报告1.定义概述:标识并描述发现的缺陷,具有清晰、完整和可重现问题所需的信息的文档。理解:测试人员发现缺陷,将缺陷记录在《缺陷报告》中,通过缺陷报告将缺陷告知给开发人员,并对缺陷进行跟踪和管理。缺陷报告是测试人员与开发人员之间重要的沟通方式。2.什么是缺陷软件缺陷就是通常说的Bug,它是指在软件中(包括文档和程序)存在的影响软件正常运行的问题。软件未达到产品说明书标明的功能,如一个即时通讯App不能聊天。 软件出现了产品说明书指明不会出现的错误,如高考不带身份证。 软件功能超出产品说明书指明

    2025年12月22日
    5
  • 【学习笔记】神经内科常用量表总结(文后有下载链接)[通俗易懂]

    在看文献时经常会遇到不同的神经内科量表,因此做个总结笔记,以便对应查找。(具体量表可自行搜索,或在最后的链接中下载。)目录1、GlsgowComaScale(GCS)昏迷评分法2、ABCD2评分量表3、NationalInstituteofHealthstrokescale(NIHSS)美国国立卫生研究院卒中量表4、Oxfordhandicapscale(OHS)牛津残障评分5、Mini-mentalStateExamination(MMSE)简易精神.

    2022年4月18日
    45
  • RedisClient下载地址[通俗易懂]

    RedisClient下载地址[通俗易懂]下载地址:https://github.com/caoxinyu/RedisClient/tree/windows/release

    2022年10月12日
    3
  • Springboot集成kafka_Spring boot

    Springboot集成kafka_Spring bootspringboot集成TkMapper简化持久层法人代码熟悉,提高开发效率;先给大家截个图看一下效果这就是效果!!是不是感觉很爽。(TkMapper对单表的操作很方便的)下来我们进入正题,第一步:Pom文件中加载jar文件&lt;dependency&gt;&lt;groupId&gt;tk.mybatis&lt;/groupId&gt;&lt;ar…

    2022年10月6日
    4
  • pycharm激活码最新【在线注册码/序列号/破解码】

    pycharm激活码最新【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    46
  • c#中高效的excel导入sqlserver的方法

    将oledb读取的excel数据快速插入的sqlserver中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.S

    2021年12月27日
    38

发表回复

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

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