Programovanie

Pochopenie sun.misc.nebezpečný

Minulý týždeň sa objavila správa, že niektorí vývojári sú v zbrani, tvrdiac, že ​​spoločnosť Oracle navrhla odstránenie slnko.misc.nebezpečný v Jave 9 rozbije ekosystém Java. Pre mnohých vývojárov, ktorí sa nezapojili do programovania na nízkej úrovni, je však súkromné ​​API pravdepodobne zahalené tajomstvom. Čo je toto API také nebezpečné, že jeho samotný názov je nebezpečné?

Blogger a prispievateľ otvoreného zdroja Rafael Winterhalter v článku „Pochopenie sun.misc.Unsafe“ vysvetľuje, že nebezpečný kód sa často vyžaduje pri programovaní na nízkej úrovni, kde vývojári upravujú funkčnosť platformy na konkrétny účel. Zatiaľ čo JNI (Java Native Interface) je považované za najbezpečnejšiu voľbu pre nízkoúrovňové programovanie v Jave, mnoho open source projektov použilo Nebezpečný ako menej obmedzené riešenie.

Winterhalter predstavuje jeden z niekoľkých príkladov využitia Nebezpečný prekonať prekážku programovania Java:

Prvýkrát som využil Nebezpečný trieda slúžila na vytvorenie inštancie triedy bez volania niektorého z konštruktorov triedy. Potreboval som proxy celú triedu, ktorá mala iba dosť hlučný konštruktor, ale chcel som iba delegovať všetky vyvolania metód na skutočnú inštanciu [...] Vytvorenie podtriedy bolo jednoduché a ak bola trieda reprezentovaná rozhraním, vytvorením proxy by bola priamočiara úloha. S drahým konštruktérom som však uviazol. Použitím Nebezpečný triedy, bol som však schopný sa k tomu dopracovať.

Ďalšie príklady, ktoré ukazujú, prečo a ako sa používajú, nájdete v častiach „Porozumenie sun.misc.Unsafe“ a „Java mágia, časť 4: sun.misc.Unsafe“. Nebezpečný v programoch Java.

Tento príbeh „Understanding sun.misc.Unsafe“ bol pôvodne publikovaný spoločnosťou JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found