JAVA的一个调用时,值类型的问题?

class Test1{



void test1(int a){

system.out.println("I AM INT");

}



void test1(String a){

system.out.println("I AM STRING");

}





class Test{



public static void main(String[] args){



Test1 aa=new Test1();

char y='aa';

aa.test1(y);



}



输出I AM INT;

请问为什么,请大家给个详细点的说明?
问题补充
对了,这里大家回答问题是不是要给分的?不好意思,我第一次发贴,请问怎么给呢?
问题补充:
呵呵,char y='aa',打错了,应该是char y='a'; 谢谢各位的解答

char类型自动向上转型了。找找相关资料,了解一下自动向上转型吧。

char与int可以相互转换,char y='aa'; 是错误的,char y='a'是正确的,
他们都用两个字节表示,我想这和java虚拟机有关吧,你可以在定义一个void test1(char a){
system.out.println("I AM char");
}