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


相关推荐

  • 15款android设备上的代码编辑器

    15款android设备上的代码编辑器如果你希望你的Android设备,如智能手机和平板电脑,在任何时间和任何地方都能够编写代码,那么,不妨看看下面我将介绍的15款Android代码编辑器,它们必将成为你的理想工具。1.DeuterIDE一款基于移动开发的文本编辑器,在线编译器,内置支持Android的集成开发环境。它的虚拟按键可提供常用的编程符号和语法高亮功能,并支持超过40种编程语言,从而能让你在旅途中写代码变得从未如此简单。

    2022年6月16日
  • wxPython的基础教程

    wxPython的基础教程写在前面的话:上个假期学习了Python,发现它真的是一门很有趣的语言,所以这学期想学一些python的可视化编程,于是选择了wxPython。但是我在网上找中文教程找了好久都没有找到中文的教程(额,也许是我方法不对),无奈只好看英文的啦。于是在这个网站上看完了wxPython的基础教程,但是为了方便广大网友所以决定将这个网页中的内容翻译过来。花费了3个晚上的时间,终于把它翻译完了。但是我只是一个

    2022年5月21日
  • 关于maven打包时, 资源文件没有被打包进来的问题

    关于maven打包时, 资源文件没有被打包进来的问题在之前的一篇文章mybatis看这一篇就够了当中,提到过,在使用mybatis时,有时候需要把编写了SQL语句的XML文件,和Java类文件放在一起,如如果不加配置,用maven进行打包时,默认不会将src/main/java目录下的XML文件打包进去。因为src/main/java被设定为了源码目录,默认只会将其中的Java文件进行编译打包。即,默认打包得到的结果如下可以看到com.example.mp.mappers包下没有XML文件我们可以配置pom.xml中的resources标签,指定

    2022年5月29日
  • 谷歌搜索好用吗_谷歌搜索引擎搜索技巧

    谷歌搜索好用吗_谷歌搜索引擎搜索技巧0前言相信大家在使用搜索引擎的时候,大部分情况下都是直接输入要搜索的关键词,然后在搜索结果里一个个点开查找。但除了特定信息外,搜索引擎同时也会返回大量无关的信息。有时候我们可能翻好几页也不一定能找到满意的结果,平白增加不少的工作量。其实,有一些特殊的技巧,可以对搜索结果进行限制和筛选,缩小检索范围,让搜索结果更加准确,大大提高我们的效率。下面,扩展迷就给大家介绍一些在进行谷歌搜索时可以使用的便捷技巧。其中,部分技巧在其他搜索引擎中也同样支持。文章目录0前言1.强制精确匹配2.AND

    2022年8月30日
  • Element.clientWidth

    Element.clientWidthElement.clientWidth

    2022年7月22日
  • 我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧?

    我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧?我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧?

    2022年5月26日

发表回复

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

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