Java 为什么';int';默认情况下,但不是';字节';?

Java 为什么';int';默认情况下,但不是';字节';?,java,int,byte,overloading,Java,Int,Byte,Overloading,请解释一下,为什么当我编写4个重载方法并调用它=>时,它会选择默认值为'int'的方法,而不是'byte',后者更接近/更好,因为它可以存储从-127到128的值 class Main { public static void method(short s) { System.out.println("short"); } public static void method(byte b) { System.out.println("by

请解释一下,为什么当我编写4个重载方法并调用它=>时,它会选择默认值为'int'的方法,而不是'byte',后者更接近/更好,因为它可以存储从-127到128的值

class Main {
    public static void method(short s) {
        System.out.println("short");
    }

    public static void method(byte b) {
        System.out.println("byte");
    }

    public static void method(int i) {
        System.out.println("int");
    }

    public static void method(long l) {
        System.out.println("long");
    }

    public static void main(String[] args) {
        // put your code here
        method(10);
    }
}
因为政府是这么说的

该节说:

如果整数文本的后缀是ASCII字母
L
L
(ell),则其类型为
long
;否则它的类型为
int
()


所以您的数值文本
10
的类型是
int

,这是因为数字文本的默认类型是整数。要指定长文字,应在末尾添加L。要指定字节文字-调用该值时应强制转换该值,您传递的变量类型是什么,或者传递了什么?顺便说一句,
byte
is-128到127.)
int
被认为是系统的“自然”字长。默认情况下,整数文本被解释为int,因为它们使用更广泛,我想,因为它们不会占用太多空间,也不会像字节那么小。这是否回答了您的问题?谢谢大家的回答,真的很快!现在我明白了,它是如何工作的:)