exercises

遇到的题目

2019.08.05

静态分布

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class TestXu {

public static void say(Object arg){
System.out.println("Object");
}
public static void say(int arg){
System.out.println("int");
}
public static void say(long arg){
System.out.println("long");
}
public static void say(char arg){
System.out.println("char");
}
public static void say(Character arg){
System.out.println("character");
}

public static void main(String[] args){
say('a');
}
}

打印结果为:char

如果注释掉形参为char的重载函数,接下来会打印int,反复执行,打印的顺序应该为:

char->int->long->Character->Object

因为,如果形参为char的重载函数被注释,实参’a’会向上转化成65,接下来,它转换成long,float,double,如果都没有找到,那么他会自动装箱成Character类型,接下来它会找到所继承的接口,最后找到万能类Object,由此可见,变长参数的优先级是最低的.

2019.08.06

1
2
3
4
5
6
7
8
public class Main {
static int a;
public static void main(String[] args){
int b;
System.out.println(a);//这句不会报错
System.out.println(b);//这句会报错
}
}