Programmering

Forstå sun.misc. utrygt

Forrige uke brøt nyheten om at noen utviklere er opptatt av å hevde at Oracles foreslåtte fjerning av sun.misc. usikre i Java 9 vil ødelegge Java-økosystemet. For mange utviklere som ikke er involvert i programmering på lavt nivå, er imidlertid den private APIen sannsynligvis innhyllet i mystikk. Hva er denne API-en så farlig at selve navnet er usikre?

Blogger og open source-bidragsyter Rafael Winterhalter forklarer i "Understanding sun.misc.Unsafe" at usikker kode ofte er nødvendig for programmering på lavt nivå, der utviklere endrer plattformfunksjonalitet for et bestemt formål. Mens JNI (Java Native Interface) regnes som det sikreste alternativet for Java-programmering på lavt nivå, har mange open source-prosjekter brukt Usikre som en mindre begrenset løsning.

Winterhalter presenterer et av flere eksempler som bruker Usikre for å overvinne en Java-programmeringshindring:

Første gang jeg brukte Usikre klasse var for å lage en forekomst av en klasse uten å ringe noen av klassens konstruktører. Jeg trengte å proxy en hel klasse som bare hadde en ganske bråkete konstruktør, men jeg ville bare delegere alle metodeanrop til en reell forekomst [...] Å lage en underklasse var lett, og hvis klassen hadde blitt representert av et grensesnitt, opprettet en fullmektig ville ha vært en rett frem oppgave. Med den dyre konstruktøren satt jeg imidlertid fast. Ved å bruke Usikre klassen, var jeg imidlertid i stand til å jobbe meg rundt det.

Se "Forstå sun.misc.Unsafe" og "Java magic, del 4: sun.misc.Unsafe" for ytterligere eksempler som viser hvorfor og hvordan du bruker Usikre i Java-programmer.

Denne historien, "Understanding sun.misc.Unsafe" ble opprinnelig utgitt av JavaWorld.

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