小编use*_*010的帖子

Java重载:数字,数字; INT,双

在两天内我在java考试,我无法弄清楚这个问题的答案:

class ClassA {
 public String foo(Integer x , int y) {
  return "Integer, int";
 }
 public String foo(int x, Double y) {
  return "int, Double";
 }
 public String foo(Number x, Number y) {
  return "Number, Number";
 }
 public String foo(Object x, Object y) {
  return "Object, Object";
 }
 public static void main(String... args) {
  ClassA a = new ClassA();
  System.out.print(a.foo(5, 1.2f) + " ");
  System.out.println(a.foo(null, null));
 }
}
Run Code Online (Sandbox Code Playgroud)

什么输出?

答案是:

Number, Number Number, Number
Run Code Online (Sandbox Code Playgroud)

我知道java总是选择最指定的方法,这就是为什么a.foo(null,null);要调用Number,Number方法而不是 …

java overloading

13
推荐指数
1
解决办法
3223
查看次数

Binarysearch未排序的数组

希望有人知道这个Java认证问题的答案:

public static void main(String[] args) {
 String[] sa = {"d", "c", "a", "b" };
 int x = Arrays.binarySearch(sa, "b");
 Arrays.sort(sa);
 int y = Arrays.binarySearch(sa, "b");
 System.out.println(x + " " + y);
}
Run Code Online (Sandbox Code Playgroud)

哪两个结果可能?(选择两项.)
A)7 0
B)7 1
C)7 3
D)-1 0
E)-1 1
F)-1 3

唯一真正的答案是E)-1 1,因为如果你玩二进制搜索算法,这是唯一可能的输出.但他们希望我选择两个...所以第二个必须是B)7 1然后,因为排序数组中的第二个二进制搜索将始终返回1.

所以我的问题是,为什么B)7 1可能的结果?更具体:如何可能,未排序数组中的第一个二进制搜索返回7?

提前致谢

java arrays binary-search

1
推荐指数
1
解决办法
6528
查看次数

标签 统计

java ×2

arrays ×1

binary-search ×1

overloading ×1