java题目,怎么选,为什么?

2025-05-07 04:16:47
推荐回答(4个)
回答1:

1.D
因为f(1,2)传的是两个int型的数字,在类中没有找到重载f(int a,int b)的方法 所以编译是不通过的
2.B
因为Math.ceil()方法返回值类型是double,直接赋值给int是不行的,需要进行强制转换
int i=(int) Math.ceil(-Math.PI);

回答2:

2个都是编译错误,试一下就知道了。
第一个因为没有两个参数都为int的函数, f(1, 2); 相当于没定义;
第二个int i=Math.ceil(-Math.PI);Math.ceil(-Math.PI)不是int型,如果要赋值给int的i需要强制类型转换

回答3:

方法重载:方法名一致,参数列表不同。
f(1,2) 1和2都是int类型,没有f(int x,int y)这个方法。
int 32位 double 64位
低位转高位 自动提升
高位转低位 强制转换

回答4:

D
整型数字默认是 int
f没有重载f(int a, int b)这个方法
B
int i=Math.ceil(-Math.PI);
Math.ceil();返回一个double,不能直接赋值给int。
要强制转换int i=(int) Math.ceil(-Math.PI);