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)
上一篇 2022年5月31日 下午4:16
下一篇 2022年5月31日 下午4:16


相关推荐

  • 将换行符传给后台

    将换行符传给后台在文本框中输入换行符传给后台的时候只能显示一个空格,怎么正确的传给后台,并且从后台读取之后再在前端正确显示?HTML代码如下:<textareaname=””id=”text”cols=”30″rows=”10″></textarea><divid=”div1″class=”div1″>ss</div>&…

    2022年5月10日
    54
  • css如何设置背景图片?background属性添加背景图片

    css如何设置背景图片?background属性添加背景图片在前端开发过程中 为了页面的美观 往往都会给 html 页面添加背景图片 那么如何利用 css 设置 html 中用图片做背景 本章就给大家介绍 css 怎样设置背景图片 有一定的参考价值 有需要的朋友可以参考一下 希望对你有所帮助 更多相关视频 0 基础前端利用 HTML CSS 制作你喜欢的暗黑破坏神网页开发 BV1C54y1X7ro 前端发展简史 功能以及未来趋势 你值得观看 BV1w5411s7e4 给想学编程又无从下手的小白一些建议 BV1Zf4y117ji HTML CSS 实现妙笔千山

    2026年3月18日
    2
  • nport串口服务器配置网址(串口服务器是不是网口转串口)

    NPort串口服务器有分“驱动模式”及“socket模式”如果您的程序是通过串口进行通讯,那么请选择NPort的“驱动模式”,也就是为主机添加虚拟串口,具体安装配置是(这里以windows为例):1、通过NPortSearchUtility找到网络上的NPort,请将主机IP与NPortIP在同一网段中,NPort默认IP:192.168.127.2542、选择相对应的NPort双击;3…

    2022年4月11日
    51
  • linux下显卡信息的查看

    linux下显卡信息的查看

    2022年3月12日
    103
  • 阿里OSS文件上传记录

    阿里OSS文件上传记录lt 阿里云对象存储服务 gt lt dependency gt lt groupId gt com aliyun oss lt groupId gt lt artifactId gt aliyun sdk oss lt artifactId gt lt version gt

    2026年3月19日
    3
  • Python conda命令

    Python conda命令Windows 下 AnacondaProm 这个东西就是用来管理 Anaconda 的 使用的是 conda 这样的一种命令在 Linux 中 可以直接在终端中输入 conda 命令可以使用 conda 命令创建新的 python 环境 python 版本 包 新的环境与原来的环境不相关 这样 方便不同的应用中使用不同的 python 版本 创建新环境的步骤如下 1 首先在所在系统中安装 Anaconda 可以打开命令行输入 conda V 检验是否安装以及当前 conda 的版本 2 conda 常用的命令 1 co

    2026年3月17日
    2

发表回复

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

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