关于main方法你不知道的事

        我们都知道main方法是程序的入口,但是你有好好的了解它吗,今天我们来玩一玩main方法。

        这是一个main方法

public static void main(String [ ] strs){}

        让我们看看普通的方法,名字是我随便取的,叫什么都可以

void mainTest(){}

        这个有点基础的都知道,这是不传参的方法

        那如果传个String数组类型的参数呢?数组名字也是我随便取的。

void mainTest(String [ ] strs){}

        public是访问权限,代表它是公共的,static是静态修饰符,static修饰的方法可以直接通过类名调用,而不需要对其实例化

        那我们把这个普通方法加上public static

public static void mainTest(String [ ] strs){}

        有没有感觉有一些熟悉,前面说过,名字是随便取的,那我们把它改个名字。

public static void main(String [ ] strs){}

        这就是我们见到的main方法,到这里可能就有长得好看的小可爱要问了,那我把main方法改名了,还是main方法吗?

        正常的main方法是可以直接运行的,你看这个main方法左边有一个绿色的箭头,点击以后发现可以运行。

         那我们换一下方法名

        这时候发现方法左侧的绿色箭头消失了,程序只能识别出它是普通方法 ,主角光环消失了,没人把它当做main方法了。

        既然是方法,那我们改一下参数名应该没有影响吧?

         到这里可能又有长得好看的小可爱要问了,那要是更改一下返回值或者参数类型呢?

        显然,这些都是不可以的。

        那我们能不能有两个main方法呢,重载一下。

        我们发现这样是可以的,但是第二个方法已经不是程序的入口了,它只是一个普普通通和主角重名的方法。

        所以main方法的标准写法是(只有args能偷偷改名),java规范范例中参数名为args,人们也就继续用了。

public static void main(String [ ] args){}

        到这里可能叒有长得好看的小可爱要问了,既然是方法,那怎么传参呢?

        实际开发中我们也确实会遇到这种情况,有一些操作(例如处理历史订单等),我们只想让它操作一次,那就不会去写service来占用资源,这种情况就要写一个main方法打成jar包,仅运行一次且不干扰主程序的运行。

        直接这样显然行不通,它甚至没有让我们传递参数就抛出数组越界异常。

1.简单版

2.复杂版

        接下来我们说说怎么把main方法打成jar包并传参。 

  

         选择包含main方法的那个类

         最后点击ok,上面的命名可以换名字。

        然后buid一下,把它打成jar包。

        我们看左边的out目录,这个程序的jar包已经被编译出来了 。

        习惯用gradle的可以用这个,后面接的是包含有main方法的全限定类名。

        有了jar包以后,使用终端窗口。

        先进入到jar包的目录下,使用java -jar [jar包名称] [参数...]

        main方法中传的是String数组类型对象,多个数值使用空格分隔

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差点资深程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值