我正在学习我的第一个爪哇证书!呼哈!对不起,我不想听起来那么厚颜无耻,但我忍不住:)不管谁,试着理解下面的问题和答案。我还是不明白。。。我实际上并没有那么多地使用命令行(主要是NetBeans和我正在熟悉的Eclipse)。任何指示都会受到极大的赞赏。
目标: 7.2:给出一个类和命令行的示例,确定预期的运行时行为。10)
给定的{:
2. public static void main(String [] args) {
3. String p = System.getProperty("x");
4. if(p.equals(args[1]))
5. System.out.println("found");
6. }
7. }哪个命令行调用将产生找到的输出?( a) java -Dx=y x y z b) java -Px=y x y z c) java -Dx=y x y z (*) d) java -Px=y x y z e) java x y z -Dx=y f) java x y z -Px=y
//答案是C
参考资料:
API for java命令
选项C是正确的。-D设置一个属性,args1是第二个参数(其值为y)
嗯。。。那么为什么args1是第二个论点呢?我以为"p“等于字符串{y }?
发布于 2011-05-12 01:38:52
,嗯.。。那么为什么args1是第二个论点呢?我以为"p“等于字符串{y }?
这个问题很棘手。在c)中,我们使用参数x启动类x y z。-D选项将导致将x属性设置为y。
因此,当类x启动时:
args将是‘String[]’{“x”,"y","z"},andp将是"y".然后我们比较p和args[1] ..。这两个字符串是equal。
(当然,在现实世界中,没有人会把自己的阶级命名为x,这样的人活得足够长,没有人能拿到他们的第一张工资支票:-)
发布于 2011-05-12 01:38:24
实际上,当您将其称为java -Dx=y x x y z,然后将系统属性x设置为y值时,它并不算作参数,第一个x是您调用的类的名称,最后一个"x,y,z“是传递给程序的实际参数。
此外,当使用-D命令行参数设置系统值时,命令行参数用空格分隔的做法是常见的。这就是为什么系统属性x的值是y而不是y x x y z的原因。
https://stackoverflow.com/questions/5972367
复制相似问题