java public main_实例分析Java中public static void main(String args[])是什么意思

本文实例讲述了Java中public static void main(String args[])的来龙去脉。分享给大家供大家参考,具体如下:

public static void main(String[] args)

这绝对不是凭空想出来的,也不是没有道理的死规定,而是java程序执行的需要。

jvm在试图运行一个类之前,先检查该类是否包含一个特殊方法。这个方法必须是公有的,以便在任何位置都能访问得到。这个方法必须是static的,因为这个方法不能依赖任何该类的实例即可运行,而非static的方法,在运行之前要先创建该类的实例对象。

这个方法没有返回值。和C/C++程序不一样,java的程序默认都以常态结束,所以main不返回int。如果要以非常态结束程序,可以用System.exit(1)。

这个方法必须可以接受数目不定的String类型的参数,因为运行者可能要附加运行参数。如java HelloWorld jack 100,这里的jack和100就是运行参数。

为什么是String呢?因为String具有普遍性。任何字面形式都可以解释成String,而其他类型则不然(如jack就不能解释成整数或浮点数),所以用String来存储参数最合适。而因为参数数目不限一个,所以用了数组,即String[]。在Java 1.5以后,还可以写成String...,表示数目不定。

至于参数的变量名可以任意,只要保证在方法内部按该变量名来获得参数就行了,从变量的作用角度来说,叫arguments或args当然是最合适的。

至于这个方法的名字为什么一定是main,有历史原因,因为最早的C以main函数作为程序入口,java沿用了这个历史传统。

下面我们以一个例子一探究竟:

package test;

public class MainTest {

public static void main(String[] args)

{

for (int x=0; x

{

System.out.println(args[x]);

}

}

public static void sysInfo(){

System.out.println("call sysInfo()");

}

}

public class MainDemo {

/*

public static void main(String[] args)

public:权限修饰符,权限最大。

static:随着MianDemo类的加载而加载,消失而消失。

void: 没有返回值

main: 函数名,jvm识别的特殊函数名

(String[] args):定义了一个字符串数组参数

*/

public static void main(String... args)

{

String[] arr = new String[]{"zhang","li","wang","zhao"};

MainTest.main(arr);

MainTest.sysInfo();

}

/*

总结:

1、main()函数是被jvm调用,jvm给main()传了一个长度为0的字符串的数组,也就是new String[0]

2、可以通过类名.main()进行传值操作,因为main()方法是static的。

*/

}

运行结果:

ca0b76bb976228300b791aab1f6a8abe.png

希望本文所述对大家Java程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java浏览文件夹_一个用java实现简单的文件浏览器

[java]代码库import java.awt.*;import java.awt.event.*;import java.net.URL;import javax.swing.*;//文件浏览器public class HTTPBrowserDemo extends JFrame {private static final long serialVersionUID -5794029080886644211L;JTextField jtfAddress; // 输入文件地址…

java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛

java奥运会安排赛程问题开发人员:Takipi会告诉您何时新代码在生产中中断– Log4J vs SLF4J简单vs Logback vs Java Util日志记录vs LOG4J2 日志记录实际上是每个服务器端应用程序中古老且固有的部分。 这是应用程序以持久且可读的方式输出实时状态的主要方法。 某些…

为什么在子类中不重写超类的实例变量

当我们在父类和子类中创建一个具有相同名称的变量,并尝试使用持有子类对象的父类引用访问它时,我们会得到什么? 为了理解这一点,让我们考虑下面的示例,其中在Parent和Child类中声明一个具有相同名称的变量x 。 class…

cocos lua调用java_【Tech-Lua】Cocos-2dx-Lua调用java的小白教程(三)

上周五下班前,打包成功了。我很高兴,周六去踢场足球,周日去现场看了最后一分钟掉球的恒大,度过了一个愉快的周末。然后,噩梦的周一开始了。我再次打包,打算打包就安装,但结果是失败的。为何&…

github上java项目_GitHub上10,000个最受欢迎的Java项目-以下是他们使用的顶级库

github上java项目随着Java开发人员使用既成熟又高度发展的语言来工作,无论何时编写新代码,我们都将面临一个持续的困境–使用大家都在谈论的热门新技术,或者坚持使用久经考验的库? 由于Java应用程序的很大一部分是商业性质的&…

char java 回文_LeetCode刷题笔记(Java)---第1-18题

题目来自LeetCode文章目录全部章节1-18题19-40题41-60题61-80题81-100题101-120题121-140题1.两数之和2.两数相加3.无重复字符串的最长子串4.寻找两个有序数组的中位数5.最长回文子串6.Z 字形变换7.整数反转8.字符串转换整数 (atoi)9.回文数10.正则表达式匹配11.盛最多水的容器…

使用PostgreSQL使用Spring Boot和JPA构建基本应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 每个不平凡的应用程序都需要一种保存和更新数据的方法:可通过HTTP访问的资…

通过示例了解Apache Ignite Baseline拓扑

点燃基准拓扑或BLT表示群集中的一组服务器节点,这些服务器节点将数据持久存储在磁盘上。 其中,N1-2和N5服务器节点是具有本机持久性的Ignite集群的成员,这些集群使数据能够持久存储在磁盘上。 N3-4和N6服务器节点是Ignite群集的成员&#x…

Spring Boot集成测试中@ContextConfiguration和@SpringApplicationConfiguration之间的区别

即使同时使用ContextConfiguration和SpringApplicationConfiguration批注以及SpringJUnit4ClassRunner来指定如何加载Spring应用程序上下文,它们之间也存在细微的差异。 尽管ContextConfiguration在加载应用程序上下文方面表现出色,但没有充分利用Spring…

vert.x_使用vert.x 2.0,RxJava和mongoDB创建simpe RESTful服务

vert.x中断了将近半年后发表了一篇新文章。 在本文中,我们将快速了解如何开始使用vert.x,更有趣的是,如何使用RxJava简化异步系统的编程。 我们将涵盖以下主题: 使用Maven创建一个空的vert.x项目 导入IntelliJ并创建一个简单的H…

如何通过Rultor将Maven工件部署到CloudRepo

在我以前的文章中 ,我描述了如何在Amazon S3中设置私有Maven存储库并通过Rultor进行部署。 如果您熟悉管理Amazon Web Services(AWS), S3和AWS Identity and Access Management(IAM)的话,这是一…

java里面自行车的属性_11、Java基础知识

1、安装jdk,配置环境变量2、public class HelloWorld{publicstatic void main(String[] args){System.out.println(‘HelloWorld’);}}3、编译过程:通过javac编译java文件,生成.class文件,使用java命令运行class文件,注…

布线问题分支限界法java_大型布线:Java云应用程序缺少的技术

布线问题分支限界法java您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳至第32分钟),这使我在云平台的背景下…

Spring Boot微服务,Docker和Kubernetes研讨会–第2部分

在上一篇文章中,我们使用SpringBoot和Docker创建了第一个微服务“ ProductService”。 在这一部分中,我们将详细介绍如何使用Spring Cloud,netflix库,API网关来管理多个微服务。 假设对于我们的订单管理系统,最小关系…

jboss5.1安全性配置_使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全

jboss5.1安全性配置企业应用程序的一个常见要求是在登录页面后面保护所有JSF页面。 有时,您甚至希望在应用程序内部具有保护区,只有拥有特定角色的用户才能访问这些保护区。 Java EE标准附带了实现受某些安全性约束保护的Web应用程序所需的所有方法。 在…

分布式事务 camel_使用Camel在Amazon上构建分布式工作流应用程序

分布式事务 camel带有SNS-SQS的管道 工作流由以动态条件确定的特定顺序执行的独立任务组成。 工作流通常代表业务流程,例如电子商务商店中的订单处理步骤。 Amazon Web Services提供了用于构建分布式和可伸缩工作流应用程序的各种工具。 构建此类应用程序的一种方法…

比较Java REST文档框架

确定在记录REST API时选择哪种Java框架可能很麻烦。 在本博文中,我们将简要比较我们自己使用的REST Web服务的三种文档框架,以及它们如何与Spring框架(这是Foreach最常使用的Java框架)集成。 这些是RESTful API建模语言&#xff0…

jaVa游戏三国志英杰传,《三国志英杰传》到底是怎样的一款游戏

原标题:《三国志英杰传》到底是怎样的一款游戏介绍作为PC平台上经典的战棋策略类游戏,英杰传系列可谓把这一类型游戏在战略性和资源获取上的精髓发挥的淋漓尽致。系列初代的《三国志英杰传》诞生在1995年的DOS系统上,虽然我接触英杰传时已经是…

jvm 内存镜像_镜像镜像–使用反射在运行时查看JVM内部

jvm 内存镜像开发人员:Takipi会告诉您何时新代码在生产中中断– 了解更多 我们都习惯于在我们的日常工作中直接或通过利用反射的框架来运用反射。 它是Java和Scala编程的主要方面,它使我们使用的库可以与我们的代码进行交互,而无需对其进行硬…

谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!

有没有想过圣诞老人如何为世界各地的孩子们送上节日礼物? 有20亿个孩子,每个孩子都有自己的愿望清单,他会在24小时内完成。 这意味着每个孩子平均需要43微秒,他需要检查每个孩子是否顽皮或好。 您无需再怀疑了。 我会透露这个秘密…