java - 在我的课本上得到了这个问题,无法理解程序中的逻辑或答案键中给出的答案(Java)
问题描述
执行步骤 1,2 和 3 后,步骤 4 将打印什么?
boolean b1=new boolean("TRUE"); //step 1
boolean b2=new boolean("true"); //step 2
boolean b3=new boolean("JUNK"); //step 3
System.out.println(""+b1+b2+b3); //step 4
提供以下选项以从答案中进行选择:
(a) 编译器错误
(b) 运行时错误
(c) truetruefalse
(d)truetruetrue
正确答案是
(c) 真假
有人能解释一下逻辑吗?
解决方案
如果您的意思是Boolean
代替boolean
,那么正确答案是(c) truetruefalse
因为如果您查看 java 源代码,您会发现:
public Boolean(String s) {
this(parseBoolean(s));
}
那个电话:
public static boolean parseBoolean(String s) {
return "true".equalsIgnoreCase(s);
}
因此,如果您的字符串不是true
(无论如何),那么您将得到false
.
请注意:new Boolean(String s)
自 Java 9 起已弃用。
推荐阅读
- html - 引导程序、HTML 和 CSS
- c# - ParallelEnumerable.WithDegreeOfParallelism() 不限制任务?
- sed - Issue assigning a SED to a variable
- eclipse-pdt - Eclipse PDT/PHP Getting XXX 无法解析为类型
- java - 如何获取智能手机上安装的杀毒软件信息?
- apache-spark - 如何获取 DataFrame 的字符串表示形式(与 Dataset.show 一样)?
- spring-mvc - Apache Camel - 多部分文件上传
- css - 博主“动态视图”标题 css
- jquery - Bootstrap tour n.data(...).tip 不是函数
- typo3 - 糟糕,发生错误 - 在 TYPO3 升级 7.6 到 8.7 之后