Razlika između statičkog i dinamičkog vezivanja

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 1 Srpanj 2024
Anonim
Java Interview 04 - Static Binding Vs Dynamic Binding
Video: Java Interview 04 - Static Binding Vs Dynamic Binding

Sadržaj


Vezivanje povezivanja "definicije funkcije" s "funkcijskim pozivom" ili povezanosti "vrijednosti" s "varijablom" naziva se "obvezujuće". Tijekom sastavljanja, svakoj 'definiciji funkcije' se daje memorijska adresa; Čim se izvrši pozivanje funkcija, kontrola izvršavanja programa premješta se na tu memorijsku adresu i izvršava se kod funkcije koji se pohranjuje na toj lokaciji, ovo je Vezivanje 'poziv funkcije' na 'definiciju funkcije'. Vezanje se može klasificirati kao "statičko vezivanje" i "dinamičko vezivanje".

Ako je već poznato prije izvršavanja, koja će se funkcija pozivati ​​ili koja će se vrijednost dodijeliti varijabli, onda je to "statičko vezivanje". ako se sazna za vrijeme izvođenja, tada se naziva "dinamično vezivanje".

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon:

Osnove za usporedbuStatičko vezivanjeDinamičko vezivanje
Pojava događajaDogađaji se događaju u vrijeme sastavljanja su "Statično uvezivanje".
Događaji koji se događaju u vrijeme izvođenja su "Dynamic Binding".
InformacijaSve informacije potrebne za pozivanje funkcije poznate su u vrijeme sastavljanja.Sve informacije o pozivu na funkciju moraju se znati u vrijeme izvođenja.
PrednostUčinkovitost.Fleksibilnost.
VrijemeBrzo izvršenje.Sporo izvršenje.
drugo imeRano vezivanje.Kasno vezivanje.
PrimjerPreopterećen poziv funkcije, preopterećeni operateri.Virtualna funkcija u C ++, nadjačana metoda u javi.

Definicije statičkog vezivanja

Kada prevoditelj prepozna vrijeme koje je potrebno za pozivanje funkcije ili sve vrijednosti varijabli za vrijeme kompilacije, ona se zove "statičko vezivanje„. Kako su sve potrebne informacije poznate prije izvođenja, to povećava učinkovitost programa, a također povećava brzinu izvršenja programa.


Statičko uvezivanje čini program vrlo učinkovitim, ali odbija programsku fleksibilnost, jer su u njemu unaprijed definirane vrijednosti varijable i "pozivanje funkcije". Statičko vezivanje provodi se u programu u vrijeme kodiranja.

Preopterećenje neke funkcije ili operatora primjer je polimorfizma u vremenu preklapanja, tj. Statičkog Vezivanja.

Primjena statičkog vezivanja u C ++ s primjerom preopterećenja

#include pomoću namespace std; preopterećenje klase {int a, b; public: int load (int x) {// funkcija prvog opterećenja (). a = x; cout << "Vrijednost x je" <Funct (); // Gornja izjava određuje koje će se klase pozivati. p = d1; // Vlaue pokazivača se mijenja. p> Funct (); // Gornja izjava određuje koje će se klase pozivati. p = d2; // Opet se vlaue pokazivača mijenja. p> Funct (); // Gornja izjava određuje koje će se klase pozivati. vratiti 0; }

Ovdje se vrijednost pokazivača mijenja kako se program izvodi, a vrijednost pokazivača odlučuje koja će se funkcija klase pozvati. Dakle, ovdje se podaci daju u toku izvođenja, potrebno je vrijeme za povezivanje podataka što usporava izvršenje.


  1. Događaji koji se događaju u vrijeme sastavljanja, npr. Kod funkcije je povezan s funkcijskim pozivom ili dodjeljivanjem vrijednosti varijabli, nazivaju se statičko / rano vezanje. Naprotiv, kad se ti zadaci izvršavaju za vrijeme izvođenja, oni se nazivaju dinamičkim / kasnim povezivanjem.
  2. 'Učinkovitost' se povećava u statičkom povezivanju, jer se prikupljaju svi podaci prije izvršenja. Ali kod dinamičkog vezanja, podaci se prikupljaju tokom izvođenja, tako da možemo odlučiti koju vrijednost dodijeliti varijabli i koju funkciju pozvati za vrijeme izvođenja, to čini izvršavanje 'fleksibilnim'.
  3. "Statično vezivanje" ubrzava izvršavanje programa jer su svi podaci potrebni za izvršavanje programa poznati prije izvršenja. Podaci „dinamičkog vezivanja“ potrebni za izvršavanje programa poznati su prevoditelju u vrijeme izvršenja, a potrebno je vrijeme za vezanje vrijednosti za identifikatore; stoga, izvršavanje programa je sporije.
  4. Statično vezanje naziva se i rano vezanje jer je funkcijski kôd povezan s pozivom funkcije tijekom vremena kompilacije, što je ranije od dinamičkog Vezivanja u kojem je funkcijski kôd povezan sa funkcijskim pozivom za vrijeme izvršavanja, pa se također naziva i kasno vezanje.

Zaključak:

Međutim, zaključujemo da kad imamo prethodno znanje o vrijednostima varijabli i poziva funkcija, primjenjujemo statičko vezivanje. Suprotno tome, dinamičnim uvezivanjem pružamo sve informacije u trenutku izvršenja.