第二道Java题~求解

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:03:19
Question No: 2
Given:
Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);
Which two expressions evaluate to True? (Choose Two)
A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42))

请说出答案,别外
F为什么是不对的啊~

1-3类型不匹配 编译就不通过

4-5 表达式是正确的 不过结果是false 不过该题考的就是那个表达式是正确的 所以 该题正确答案是 DE

6 该题很明显是针对jdk1。4版本的问题 在这个版本之后提出了自动装箱拆箱概念(大概叫这个名字 自己查查相关的,我对概念一向不是很明确,) 所以在jdk1。5下编译是正确的,不过在1。4版本编译是不能通过的 (我想以上兄弟都是版本大于1。4的 才会说题目有问题)

所以拉 该题针对1。4 版本的 答案是DE

i有int型 比较用== 所以F不对

DE是不写的有问题啊~ long型的变量是L吧
A (i==l) 应该是对的

前三个编译不过,D,E为false,最后一个TRUE

题目哪些表达式的值是true
要选择两个,偶是选不出来了

A. 改成(long)i == l 就是true了
B. 改成(double)i == d 就是true了
C. 改成d == (double)l 就是true了
D. false
E. false
F. true

不知道你说F错是怎么来的
还有,题目出的有问题,不同类型之间无法直接比较,会出现“操作数类型 XXX 和 XXX 不兼容”