488 Stimmen

Laufzeit vs. Kompilierzeit

Was ist der Unterschied zwischen Laufzeit und Kompilierzeit?

1voto

Sindhu Punkte 11

Der Hauptunterschied zwischen Laufzeit und Kompilierzeit ist:

  1. Wenn es Syntaxfehler und Typüberprüfungen im Code gibt, wirft es einen Fehler zur Kompilierzeit, wohingegen zur Laufzeit: es überprüft nach der Ausführung des Codes. Zum Beispiel:

int a = 1 int b = a/0;

hier hat die erste Zeile kein Semikolon am Ende---> Kompilierzeitfehler nach Ausführung des Programms während der Ausführung von Operation b, das Ergebnis ist unendlich---> Laufzeitfehler.

  1. Zur Kompilierzeit wird nicht nach der Ausgabe der Funktionalität gesucht, die Ihr Code bietet, während dies zur Laufzeit erfolgt.

1voto

user3708939 Punkte 19

Wir können diese unter zwei verschiedenen breiten Gruppen statische Bindung und dynamische Bindung klassifizieren. Es basiert darauf, wann die Bindung mit den entsprechenden Werten erfolgt. Wenn die Verweise zur Kompilierzeit aufgelöst werden, dann handelt es sich um statische Bindung, und wenn die Verweise zur Laufzeit aufgelöst werden, handelt es sich um dynamische Bindung. Statische Bindung und dynamische Bindung werden auch als frühzeitige Bindung und späte Bindung bezeichnet. Manchmal werden sie auch als statische Polymorphismus und dynamischer Polymorphismus bezeichnet.

Joseph Kulandai.

1voto

DrDeltaS Punkte 49

Hier ist eine Erweiterung der Antwort auf die Frage "Unterschied zwischen Laufzeit und Kompilierzeit?" - Unterschiede in den Overheads im Zusammenhang mit Laufzeit und Kompilierzeit?

Die Laufzeitleistung des Produkts trägt zur Qualität bei, indem sie Ergebnisse schneller liefert. Die Kompilierzeitleistung des Produkts trägt zur Pünktlichkeit bei, indem sie den Editieren-Kompilieren-Debuggen-Zyklus verkürzt. Dennoch sind sowohl die Laufzeitleistung als auch die Kompilierzeitleistung sekundäre Faktoren für das Erreichen rechtzeitiger Qualität. Daher sollte man Leistungsverbesserungen zur Laufzeit und Kompilierzeit nur in Betracht ziehen, wenn sie durch Verbesserungen der Gesamtqualität und Pünktlichkeit des Produkts gerechtfertigt sind.

Eine gute Quelle für weiteres Lesen hier:

0voto

mathan Punkte 325

Schauen Sie sich dieses Beispiel an:

public class Test {

    public static void main(String[] args) {
        int[] x=new int[-5];//Kompilierungszeit kein Fehler
        System.out.println(x.length);
    }}

Der obige Code wird erfolgreich kompiliert, es gibt keinen Syntaxfehler, er ist vollkommen gültig. Aber zur Laufzeit wirft es folgenden Fehler.

Ausnahme in Thread "main" java.lang.NegativeArraySizeException
    bei Test.main(Test.java:5)

Wie wenn zur Kompilierungszeit bestimmte Fälle überprüft wurden, danach zur Laufzeit bestimmte Fälle überprüft werden, sobald das Programm alle Bedingungen erfüllt, erhalten Sie eine Ausgabe. Andernfalls erhalten Sie einen Kompilierungszeit- oder Laufzeitfehler.

0voto

sankar banerjee Punkte 91
public class RuntimeVsCompileTime {

    public static void main(String[] args) {

        //test(new D()); COMPILETIME ERROR
        /**
         * Der Compiler weiß, dass B kein Instanz von A ist
         */
        test(new B());
    }

    /**
     * Der Compiler hat keinen Hinweis darauf, ob der tatsächliche Typ A, B oder C ist
     * C c = (C)a; wird zur Laufzeit überprüft
     * @param a
     */
    public static void test(A a) {
        C c = (C)a;//RUNTIME ERROR
    }

}

    class A{

}

    class B extends A{

}

    class C extends A{

}

    class D{

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X