| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1102 人关注过本帖
标题:为什么删除“public static void main(String [] args)”中的“String [] a ...
只看楼主 加入收藏
lszxs4
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
为什么删除“public static void main(String [] args)”中的“String [] args”时,函数编译时不能通过呢?
public class Func3
{
    public static void main(String [] args)
    {
        int x=0x80000000;
        int y=0x80000000;
        x=x>>3;
        y=y>>>3;
        System.out.println("0x80000000>>3 = " + Integer.toHexString(x));
        System.out.println("0x80000000>>>3 = " + Integer.toHexString(y));
    }
}
搜索更多相关主题的帖子: public 
2015-03-22 19:19
liucao
Rank: 10Rank: 10Rank: 10
来 自:恶灵之城
等 级:贵宾
威 望:13
帖 子:538
专家分:1575
注 册:2014-8-6
收藏
得分:10 
不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数

one car come one car go ,two car peng peng people die.
2015-03-23 13:00
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:10 
Java的虚拟机JVM在启动程序的时候会寻找和.java源文件同名的类(运行时已经被编译为.class文件)里的main方法,并且约定参数为String[]
另外一种写法是public static void main(String... args),等价于public static void main(String[] args)

这是JVM的约定,和C语言有一些区别【C的main可以带参数也可以不带参数】

另外,并不会出编译错误,而是无法运行
想运行的话,可以按照下面的方式修改一下程序就可以了

程序代码:
public class Func3 {
    public static void main(/*String[] args*/) {
        int x = 0x80000000;
        int y = 0x80000000;
        x = x >> 3;
        y = y >>> 3;
        System.out.println("0x80000000>>3 = " + Integer.toHexString(x));
        System.out.println("0x80000000>>>3 = " + Integer.toHexString(y));
    }

    public static void main(String... args) {
        main();
    }
}
2015-03-23 19:49
lszxs4
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-22
收藏
得分:0 
回复 2楼 liucao
谢谢
2015-03-23 22:39
lszxs4
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-22
收藏
得分:0 
回复 3楼 日知己所无
谢谢  我在其他地方看到“String[]”是一个命令行参数,怎么理解这个命令行参数呢,而且你指的“约定参数为String[]”时什么意思呢
2015-03-23 22:40
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
回复 5楼 lszxs4
程序代码:
public class Func3 {
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}


编译:javac Func3.java

运行1:java Func3
运行1结果:什么都不输出,直接结束

运行2:java Func3 para1 para2
运行2结果:
para1
para2

也就是说String[] args里面保存的是程序运行时的参数【字符串数组形式,只要操作系统支持,可以有任意多个参数】
2015-03-29 09:40
快速回复:为什么删除“public static void main(String [] args)”中的“String ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015538 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved