Atšķirība starp statisko un dinamisko iesiešanu
![Java Interview 04 - Static Binding Vs Dynamic Binding](https://i.ytimg.com/vi/W6s7RZo06nA/hqdefault.jpg)
Saturs
- Salīdzināšanas tabula:
- Statiskās iesiešanas definīcijas
- Statisko saistījumu ieviešana C ++ ar pārslodzes piemēru
- Secinājums:
“Funkcijas definīcijas” saistīšana ar “funkcijas izsaukumu” vai “vērtības” saistība ar “mainīgo” tiek saukta par “saistošu”. Apkopošanas laikā katrai “funkcijas definīcijai” tiek piešķirta atmiņas adrese; tiklīdz tiek veikta funkciju izsaukšana, programmas izpildes kontrole tiek pārvietota uz šo atmiņas adresi un tiek izpildīts tajā vietā saglabātais funkcijas kods, tas ir “funkcijas izsaukums” saistīšana ar “funkcijas definīciju”. Iesiešanu var klasificēt kā “statisku iesiešanu” un “dinamisku iesiešanu”.
Ja tas jau ir zināms pirms izpildlaika, kura funkcija tiks izsaukta vai kāda vērtība tiek piešķirta mainīgajam, tad tā ir “statiska saistīšana”. ja tas tiek darīts zināms izpildlaikā, to sauc par “dinamisko iesiešanu”.
- Salīdzināšanas tabula
- Definīcija
- Galvenās atšķirības
- Secinājums
Salīdzināšanas tabula:
Salīdzināšanas pamats | Statiskā iesiešana | Dinamiska iesiešana |
---|---|---|
Notikuma atgadījums | Notikumi, kas notiek kompilēšanas laikā, ir “statiskā iesiešana”. | Notikumi, kas notiek izpildes laikā, ir “dinamiska iesiešana”. |
Informācija | Visa informācija, kas nepieciešama, lai izsauktu funkciju, ir zināma sastādīšanas laikā. | Visa informācija, kas nepieciešama, lai izsauktu funkciju, ir jāzina izpildes laikā. |
Priekšrocība | Efektivitāte. | Elastība. |
Laiks | Ātra izpilde. | Lēna izpilde. |
alternatīvs vārds | Agrīna iesiešana. | Vēla iesiešana. |
Piemērs | Pārslogots funkciju zvans, pārslogoti operatori. | Virtuālā funkcija C ++, pārspīlētas metodes java. |
Statiskās iesiešanas definīcijas
Kad kompilators kompilēšanas laikā atzīst visu funkciju izsaukšanai nepieciešamo informāciju vai visas mainīgo vērtības, to sauc par “statiskā iesiešana“. Tā kā visa nepieciešamā informācija ir zināma pirms izpildlaika, tas palielina programmas efektivitāti un arī programmas izpildes ātrumu.
Statiskā iesiešana padara programmu ļoti efektīvu, bet tā mazina programmas elastību, jo programmā “iepriekš ir definētas mainīgā vērtības” un “funkciju izsaukšana”. Statiskā iesiešana kodēšanas laikā tiek īstenota programmā.
Funkcijas vai operatora pārslodze ir kompilācijas laika polimorfisma, t.i., statiskās saistīšanas, piemērs.
Statisko saistījumu ieviešana C ++ ar pārslodzes piemēru
# iekļaut Šeit rādītāja vērtība mainās, kad programma tiek izpildīta, un rādītāja vērtība izlemj, kura klases funkcija tiks izsaukta. Tātad šeit informācija tiek sniegta izpildes laikā, tāpēc ir nepieciešams laiks, lai saistītu datus, kas palēnina izpildi. Tomēr mēs secinām, ka tad, kad mums ir iepriekšējas zināšanas par mainīgo un funkciju izsaukšanas vērtībām, mēs izmantojam statisko iesiešanu. Un otrādi - dinamiskajā iesiešanā izpildes laikā mēs sniedzam visu informāciju.
Secinājums: