首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sun认证的Java 2平台程序员,标准版6问题

Sun认证的Java 2平台程序员,标准版6问题
EN

Stack Overflow用户
提问于 2011-05-12 01:23:21
回答 2查看 690关注 0票数 3

我正在学习我的第一个爪哇证书!呼哈!对不起,我不想听起来那么厚颜无耻,但我忍不住:)不管谁,试着理解下面的问题和答案。我还是不明白。。。我实际上并没有那么多地使用命令行(主要是NetBeans和我正在熟悉的Eclipse)。任何指示都会受到极大的赞赏。

目标: 7.2:给出一个类和命令行的示例,确定预期的运行时行为。10)

给定的{:

  1. 类x

代码语言:javascript
复制
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 }?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-12 01:38:52

,嗯.。。那么为什么args1是第二个论点呢?我以为"p“等于字符串{y }?

这个问题很棘手。在c)中,我们使用参数x启动类x y z。-D选项将导致将x属性设置为y

因此,当类x启动时:

  • args将是‘String[]’{“x”,"y","z"},and
  • p将是"y".

然后我们比较pargs[1] ..。这两个字符串是equal

(当然,在现实世界中,没有人会把自己的阶级命名为x,这样的人活得足够长,没有人能拿到他们的第一张工资支票:-)

票数 7
EN

Stack Overflow用户

发布于 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的原因。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5972367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档