当前位置:编程学习 > JAVA >>

java数据类型及其封装类的问题

public class TypeTest{
public static void go(long n){
System.out.println("Long");
}
public static void go(Short n){
System.out.println("Short");
}
public static void go(int n){
System.out.println("int");
}
public static void main(String args[]){
short y=5;
long z=y;
go(y);
go(z);
}
}


为什么这个程序的输出结果是int Long,short是2个字节,为什么会对应int类型的,而不是Short封装类 --------------------编程问答-------------------- Short改成short呢 --------------------编程问答--------------------
引用 1 楼  的回复:
Short改成short呢


这样就可以,但不知Short为什么不行 --------------------编程问答-------------------- 这是个自动匹配优先级的问题,你把go(long n)和go(int n)这两个方法去了,它就会匹配go(Short n)了 --------------------编程问答--------------------
引用 3 楼  的回复:
这是个自动匹配优先级的问题,你把go(long n)和go(int n)这两个方法去了,它就会匹配go(Short n)了


我知道,为什么封装类的优先级低于基本数据类型呢 --------------------编程问答--------------------
引用 4 楼  的回复:
引用 3 楼  的回复:

这是个自动匹配优先级的问题,你把go(long n)和go(int n)这两个方法去了,它就会匹配go(Short n)了


我知道,为什么封装类的优先级低于基本数据类型呢

不为什么,匹配的顺序就是这么定义的,大概是因为short, int ,long 都是些基本类型,比装箱的性能要高一点,总有一些规则是要定义的嘛
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,