Ohjelmointi

Ymmärtäminen sun.misc.turva

Viime viikolla uutiset kertoivat, että jotkut kehittäjät ovat aseissa, väittäen Oraclen ehdottaman poistamisen sun.misc. vaarallinen Java 9: ​​ssä tuhoaa Java-ekosysteemin. Monille kehittäjille, jotka eivät ole sekaantuneet matalan tason ohjelmointiin, yksityinen sovellusliittymä on kuitenkin todennäköisesti salattu. Mikä tämä sovellusliittymä on niin vaarallinen, että sen nimi on vaarallinen?

Blogger ja avoimen lähdekoodin avustaja Rafael Winterhalter selittää kohdassa "Sun.misc.Unsafe ymmärtäminen", että vaarallista koodia tarvitaan usein matalan tason ohjelmoinnissa, jossa kehittäjät muokkaavat alustan toimintoja tiettyyn tarkoitukseen. Vaikka JNI: tä (Java Native Interface) pidetään turvallisimpana vaihtoehtona matalan tason Java-ohjelmoinnille, monet avoimen lähdekoodin projektit ovat käyttäneet Vaarallinen vähemmän rajoitettuna kiertotapana.

Winterhalter esittelee yhden useista esimerkkeistä Vaarallinen Java-ohjelmoinnin esteen voittamiseksi:

Ensimmäistä kertaa, kun käytin Vaarallinen luokka oli tarkoitettu luokan esiintymän luomiseen kutsumatta luokan rakentajia. Minun täytyi välittää koko luokka, jolla oli vain melko meluisa konstruktori, mutta halusin delegoida kaikki metodikutsut todelliseen ilmentymään [...] Alaluokan luominen oli helppoa ja jos luokkaa olisi edustanut rajapinta, välityspalvelin olisi ollut suoraviivainen tehtävä. Kallin rakentajan kanssa olin kuitenkin jumissa. Käyttämällä Vaarallinen luokassa, pystyin kuitenkin kiertämään sitä.

Katso kohtia "Sun.misc.Unsafe" ja "Java magic, Part 4: sun.misc.Unsafe" saadaksesi lisää esimerkkejä, jotka osoittavat käytön syyn ja miten Vaarallinen Java-ohjelmissa.

Tämän tarinan "Understanding sun.misc.Unsafe" julkaisi alun perin JavaWorld.

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