9 dolog, amit a null a java

9 dolog NULL Java.

9 dolog Null Java

Java null és elválaszthatatlanok. Alig van olyan Java-programozó, hogy nem felel meg a „null mutató kivétel”, és az a szomorú tény. Még a feltaláló a „null” nevű koncepció neki a hibát egy milliárd dollárt, akkor miért Java támogatja? null már itt sokáig, és azt hiszem, a Java alkotók tudják, hogy ez több problémát okoz, mint amennyit megold, így miért is fel vele. És ez meglep még, mert a Java filozófia az, hogy egyszerűsíteni a dolgokat, ezért azok már nem elfoglalva mutatók, operátor túlterhelés és többszörös öröklés, de miért üres.

Nos, én tényleg nem tudom a választ erre a kérdésre, de azt tudom, hogy nem számít, hány null bírálta a Java-programozók és a nyílt forráskódú közösség, meg kell élni vele. Ahelyett, hogy sajnálom, jobb, ha megtudja, több és meg kell győződni arról, hogy mi a helyes null.
Miért kell tudni null Java?
Mert ha nem figyel, hogy null. Az biztos, hogy a Java teszi szenvednek a szörnyű java.lang.NullPointerException és megtudhatja, ezt a leckét, de sokkal nehezebb, hogy menjen át. Írás ellenáll a „bukása” A kód egy művészeti - és a csapat, ügyfelek és a felhasználók értékelni fogják azt. Az én tapasztalatom, az egyik fő oka NullPointerException az ismeretek hiánya a null a Java. Sokan közületek már ismeri null, a többit lehet tanulni néhány régi és új dolog a kulcsszó null. Nézzük ismételje vagy tanulni valami fontos dolgot null a Java.

Mi null Java


Mint mondtam, null nagyon, nagyon fontos fogalom a Java. Eredetileg találták, hogy jelezze valaminek a hiányát, például a hiányzó felhasználó, forrás, vagy ilyesmi, de az elmúlt évben zavarba a Java-programozók több null mutató kivétel. Ebben a tutorial, megtanuljuk az alapvető tényeket a kulcsszó null Java, meg néhány trükköt, hogyan lehet elkerülni a bajt nullmutató kivételek és minimálisra null ellenőrzést.

  1. Az első dolog null egy kulcsszó a Java, valamint az állami. statikus vagy végleges. Kis- és nagybetűket, akkor nem lehet írni null a Null vagy NULL. A fordító nem ismeri fel és dobott hibát.

Gyakran előfordul, hogy ez találkozik a programozók, akik váltott más programozási nyelvek, de a modern IDE probléma jelentéktelenné válik. Ma, IDE, mint az Eclipse vagy NetBeans kijavíthatja a hibát gépelés közben kódot, de a korszak Notepad. VIM Emaks. ez egy gyakori probléma, ami enni egy csomó értékes időt.

  • Ahogy minden egységnek van egy alapértelmezett értéket, például, int 0. A logikai hamis. null az alapértelmezett értéke az összes típusai, más szóval, az összes tárgyakat. Ahogyan amikor létrehoz egy logikai változó alapértelmezett érték hamis. és minden referencia változók Java null lesz alapértelmezés szerint. Ez igaz minden típusú változó: egy tag változó, vagy egy helyi változó, egy példány változó vagy statikus változó, továbbá a fordítóprogram panaszkodni fog, ha a lokális változók használatát anélkül inicializálnunk.

    Ez igaz mind a statikus és nem statikus objektumok, mint látható itt, én myObj statikus referencia, hogy én is használni közvetlenül a módszer fő, ami egy statikus módszer, és nem teszi lehetővé a hozzáférést a nem-statikus változók belül.

  • Annak ellenére, hogy a közös tévhit, null nem egy tárgy (objektum), és egyik fajta. Ez egyszerűen egy különleges értéket lehet rendelni bármelyik referencia típusát, és ahhoz vezethet, hogy bármilyen típusú null, az alábbiak szerint:

    Mint látható, öntött null bármely hivatkozás típusú sikeres mindkét fordítási időben és a futás során. Ellentétben azzal, amit sokan azt gondolhatja, hogy nem vezet kirepülő NullPointerException.

  • null lehet rendelni egy referencia típus, akkor nem lehet hozzárendelni null primitív változót, mint például int. dupla. float, vagy logikai. Compiler kifejezni nemtetszését, ha nem az alábbiak szerint:

    Mint látható, amikor közvetlenül hozzárendelni null primitív, akkor kap egy fordítási hiba folyamatot, de ha rendelni egy null objektum wrapper osztályt, majd rendeljen az objektumot a megfelelő primitív típus, a fordító nem reagál, de mi lesz a jutalma null mutató kivétel során teljesítményt. Ez annak köszönhető, hogy az automatikus csomagolás (autoboxing) (autoboxing) Java, és találkozni fogunk vele a következő bekezdésben.

  • Bármilyen class-wrapper null értéket fog dobni java.lang.NullPointerException amikor Java kicsomagolja (unbox) a primitív változó. Egyes programozók azt a hibát, feltételezve, hogy az automatikus csomag (autoboxing) lesz vigyázni konvertáló null alapértéket a megfelelő primitív típus, például 0 int. hamis logikai stb de ez nem igaz, mert alul látható:

    De, ha futtatni ezt a kódrészletet, akkor megjelenik a konzol

    Ez gyakran előfordul, ha HashMap és egész kulcsot. Futás az alább látható kódot megszakad, amint elindítja.

    Ez a kód úgy néz ki, nagyon egyszerű és ártalmatlan. Csak azt számolja, hogy hányszor száma megtalálható a tömb, a klasszikus technikát találni ismétli. Fejlesztő veszi előző számítani száma eggyel megnöveli azt az egyik, és beilleszti vissza a térkép. Azt gondolta volna, hogy az auto-csomag lesz vigyázni Egész átalakítás int. ahogy az idő alatt a hívás, hogy (). de elfelejti, hogy ha a szám számot még nem végeztek, hogy () metódus visszatér HashMapnull. nem nulla, mert az alapértelmezett érték az Integer null. 0 helyett és auto-csomagoló dob null mutató kivétel, amikor próbálják átalakítani Integer egy int változó.

  • A instanceof üzemeltető false értékkel tér vissza, ha a paraméter határozza meg semmilyen utalást változó null értéket, vagy null önmagában. például:


    Ez egy fontos tulajdonsága a instanceof operátor. ami hasznos, hogy ellenőrizze a szereposztás.

  • Tudod, hogy nem tudja hívni, nem statikus módszerrel referencia változó, amelynek értéke null. ez okoz NullPointerException. de nem lehet tudni, hogy akkor hívja a statikus módszer egy referencia változó, amelynek értéke null. mert statikus módszer használható statikus kötődés nem dobja NullPointerException. Itt egy példa:
  • Küldhetünk null, mint a paraméter a módszer, amely elfogad bármely hivatkozás típusát, például:

    Ez nem lehet hivatkozni

    Ez normális a szempontból a fordító, de az ezt követő viselkedés függ, az eljárás. Null biztonságos módszert nem dobja NullPointerException. hanem egyszerűen helyesen kitölteni. Ha az üzleti logika lehetővé teszi, akkor ajánlott levelet null-biztonságos módszerek.

  • Össze lehet hasonlítani a null a szereplők == (egyenlő) és! = (Nem egyenlő), de nem tudja használni más aritmetikai vagy logikai műveleteket, mint például a <(меньше) или> (Tovább). Ellentétben SQL, Java null == null igaz értékkel tér vissza. az alábbiak szerint:


  • Ez mind a null a Java. Miután dolgozott némi tapasztalattal Java-programozás és használata egyszerű trükk, hogy ne NullPointerException. Tudod, hogy a kód biztonságos. mert null érték lehet tekinteni, mint az üres vagy nem inicializált érték, gyakran zavarok forrása, ezért is olyan fontos, hogy dokumentálja a viselkedését a módszer, ha kap egy null értéket. Mindig emlékezni, null az alapértelmezett referencia változók, és nem tud hívni egy példánya módszer vagy elérni egy példány változó segítségével null-referencia Java.

    Kapcsolódó cikkek