Skirtumas tarp statinio ir dinaminio įrišimo
![Java Interview 04 - Static Binding Vs Dynamic Binding](https://i.ytimg.com/vi/W6s7RZo06nA/hqdefault.jpg)
Turinys
- Palyginimo diagrama:
- Statinio įrišimo apibrėžimai
- Statinio rišimo įgyvendinimas C ++ su perkrovos pavyzdžiu
- Išvada:
„Funkcijos apibrėžimo“ susiejimas su „funkcijos skambučiu“ arba „vertės“ susiejimas su „kintamuoju“ vadinamas „įpareigojančiu“. Kompiliavimo metu kiekvienam „funkcijos apibrėžimui“ suteikiamas atminties adresas; kai tik atliekamas funkcijų iškvietimas, programos vykdymo kontrolė pereina į tą atminties adresą ir vykdomas toje vietoje saugomas funkcijos kodas, tai yra „funkcijos skambučio“ susiejimas su „funkcijos apibrėžimu“. Įrišimas gali būti klasifikuojamas kaip „statinis rišimas“ ir „dinaminis rišimas“.
Jei jau buvo žinoma prieš vykdymo laiką, kuri funkcija bus iškviesta arba kokia reikšmė paskirta kintamajam, tada tai yra „statinis įrišimas“. jei apie tai sužinosite vykdant, tai vadinama „dinaminiu rišimu“.
- Palyginimo diagrama
- Apibrėžimas
- Pagrindiniai skirtumai
- Išvada
Palyginimo diagrama:
Palyginimo pagrindas | Statinis įrišimas | Dinaminis įrišimas |
---|---|---|
Įvykio įvykis | Įvykiai, sudaryti kompiliavimo metu, yra „Statinis įrišimas“. | Įvykiai, vykstantys vykdymo metu, yra „dinaminis įrišimas“. |
Informacija | Visa informacija, reikalinga funkcijai iškviesti, yra žinoma kompiliavimo metu. | Visa informacija, kurią reikia iškviesti funkcijai, sužinojo paleidimo metu. |
Privalumas | Efektyvumas. | Lankstumas. |
Laikas | Greitas vykdymas. | Lėtas vykdymas. |
Alternatyvus vardas | Ankstyvas įrišimas. | Vėlyvas įrišimas. |
Pavyzdys | Perkrautas funkcijos skambutis, perkrautas operatorius. | Virtuali funkcija C ++, nepaisomi metodai „Java“. |
Statinio įrišimo apibrėžimai
Kai kompiliatorius pripažįsta visą informaciją, reikalingą funkcijai iškviesti, arba visas kintamųjų reikšmes kompiliavimo metu, ji vadinama „statinis rišimas“. Kadangi visa reikalinga informacija yra žinoma prieš vykdymo laiką, tai padidina programos efektyvumą ir taip pat padidina programos vykdymo greitį.
Statinis įrišimas daro programą labai efektyvią, tačiau ji sumažina programos lankstumą, nes programoje iš anksto nustatomos „kintamojo reikšmės“ ir „funkcijos iškvietimas“. Statinis įrišimas įgyvendinamas programoje kodavimo metu.
Funkcijos ar operatoriaus perkrovimas yra kompiliavimo laiko polimorfizmo, t. Y. Statinio susirišimo, pavyzdys.
Statinio rišimo įgyvendinimas C ++ su perkrovos pavyzdžiu
# įtraukti Čia rodyklės vertė keičiasi, kai programa vykdoma, o rodyklės vertė nusprendžia, kuri klasės funkcija bus naudojama. Taigi čia informacija pateikiama vykdymo metu, todėl reikia laiko surišti duomenis, kurie sulėtina vykdymą. Tačiau darome išvadą, kad kai turime išankstinių žinių apie kintamųjų ir funkcijų iškvietimo reikšmes, taikome statinį rišimą. Atvirkščiai, dinaminiame įrišime mes teikiame visą informaciją vykdymo metu.
Išvada: