您的位置:首页 > 职场人生

Java基础知识强化23:Java中数据类型转换(面试题)

2015-09-17 20:46 706 查看
1. 以下代码输出结果是( D )。

public class Test {

public static void main(String[] args) {

int a=5;

System.out.println("values is "+((a < 5) ? 10.9 : 9 ) );

}

}

A. 编译错误 B. 10.9 C. 9 D. 以上答案都不对。

解析:如果你不假思索地直接选C,就恰恰中了题目设置的陷阱。注意到((a<5)? 10.9 : 9)里面有一个10.9,而后面直接跟了一个9。

这时候Java就会根据运算符的精度类型进行自动类型转换,由于前面有一个10.9,所以后面的9也会自动变成9.0,因此选择D



2. 以下代码的输出结果是( A )。

import java.util.*;

public class Test {

public static void main(String[] args) {

char x = 'x';

int i = 10;

System.out.println(false ? i : x);

System.out.println(false ? 10: x);

}

}

A. 120 x B.120 120 C. x 120 D. 以上答案都不对

解析:int i =10;中的i是一个变量,因此,第一个输出x被自动提升为int型了,因为i是int类型,x的int值为120,所以第一个输出为120

至于第2个输出,java编程规范中提到:当后两个表达式有一个是常量表达式(本题中是10)时,另外一个类型是T(本题中是char)时,而常量表达式可以被T表示是(representable in type T),输出结果是T类型。所以,因为10是常量,可以被char表示。输出结果是char型的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: