疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

与Java运行环境交互(2)—[疯狂java讲义]


 

 
        上文与Java运行环境交互(1)—[疯狂java讲义]介绍了JVM为args数组赋值,但JVM怎么知道如何为args数组赋值呢?我们先看下面程序:
 
程序清单:codes/09/9- 1/TestArgs.java
public class TestArgs
{
public static void main(String[] args)
{
//输出args数组的长度
System.out.println(args.length);
//遍历args数组的每个元素
for(String arg:args)
{
System.out.pringln(arg);
}}}   
 
        上面程序几乎是最简单的“HelloWorld”程序,只是这个程序增加了输出args数组的长度,遍历args数组元素的代码。使用java TestArgs命令运行上面程序,看到程序仅仅输出一个0,这表明args数组是一个长度为0的空数组—这是合理的:因为计算机是没有思考能力的,它只能忠实地执行用户交给它的任务,既然我们没有给args数组设定参数值,那么JVM就不知道args数组的元素,所以JVM以将args数组设置成一个长度为。的数组。
 
        改为如下命令来运行上面程序:
        java TestArgs Java Spring
 
        看到如图9.1所示的运行结果:
为main方法的形参数组赋值
图9.1为main方法的形参数组赋值
        从图9.1中可以看出,如果运行Java程序时在类名后紧跟一个或多个字符串(多个字符串之间以空格隔开),JVM就会把这些字符串依次赋给args数组元素。运行Java程序时的参数与args数组之间的对应关系如图9.2所示:
运行Java程序时参数和args数组的关系
图9.2运行Java程序时参数和args数组的关系
        如果某参数本身包含了空格,则应该将该参数用双引号(“)括起来,否则JVM会把这个空格当成参数分隔符,而不是当成参数本身。例如采用如下命令来运行上面程序:
        java TestArgs “Java Spring”
 
        运行上面命令,看到args数组的长度是1,只有一个数组元素,其值是Java Spring。(摘自[疯狂java讲义])