Was passiert hier ? Java-Zuweisungsproblem OCJP

Zwei Code-Teile, einer funktioniert, ein anderer nicht, aber beide scheinen identische Dinge zu tun

das funktionier

short s=7;

aber das tut es nicht. Dies gibt einen Fehler, kann int nicht zu kurz zuordnen. Ich wusste, dass ein ganzzahliges Literal standardmäßig @ isint aber wenn es direkt oben zugewiesen werden kann, warum dann nicht bei der Übergabe an Methode?

class Demo1{
    public static void main(String[] args){
        new Demo1().go(7);
    }
    void go(short s){System.out.println("short");}
}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage