Тут такая интересная особенность, как я понимаю компилятора. Компилятор всегда использует тип данных int. Даже если число, превышает максимальное значение int, и компилятор не вызывает метод с параметром long, а он настаивает, что хочет вызвать именно int. Очень интересная штука, а как вызвать метод с переменной long?
public static void main(String[] args) {
        System.out.println(universalMethod(9223372036854775806));
    }

    public static void universalMethod(byte x){System.out.println("Это метод byte");}
    public static void universalMethod(short x){System.out.println("Это метод short");}
    public static void universalMethod(int x){System.out.println("Это метод int");} // Используется этот метод при вводе чисел (в методе main)
    public static void universalMethod(long x){System.out.println("Это метод long");}
    public static void universalMethod(double x){System.out.println("Это метод double");}
    public static void universalMethod(float x){System.out.println("Это метод float");}
    public static void universalMethod(char x){System.out.println("Это метод char");}