Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Java Programming >> Content
Wat is een Null Pointer Exception ?
Elk Java programmeur schrijft uiteindelijk een programma dat de " NullPointerExceptions " foutmelding produceert . Het is bijzonder cryptisch aan degenen die beginnen hun programmering loopbaan door het leren van Java , die programmeurs niet blootstelt aan het concept van een pointer . Pointers

Een pointer is een computer science term voor een variabele die , in plaats van het houden van een beetje informatie , houdt een adres waar die informatie kan worden gevonden in het geheugen van een computer . Je kunt je de variabele als een wegwijzer die "punten" aan waar de informatie kan worden gevonden . In talen zoals C + + , de programmeur moet een expliciete keuze te maken over de vraag of een bepaalde variabele informatie rechtstreeks zal houden of zullen houden in plaats daarvan een pointer naar de informatie en deze keuze kan een diepgaand effect op de efficiëntie van het programma te hebben. Bijvoorbeeld , wanneer een bepaalde klasse heeft enkele megabytes waarde van informatie die in een functie wordt afgelegd , is het veel efficiënter om de functie een pointer dan alle opvragen kopiëren geeft .

Java
onderdelen programmeurs dit dilemma en de bugs het kan produceren door het verbergen wijzers van de programmeur .
Null

Null
is een speciale term in de informatica . Het verwijst naar een variabele die letterlijk geen informatie bevat . Tot wat informatie wordt toegewezen , wordt gezegd gelijk aan null zijn. Bijvoorbeeld , in de volgende code :

String s ; s = new String ( ) ;

Na de eerste lijn klaar is , " s " is gelijk aan null . Na de tweede lijn klaar is , " s " is gelijk aan een lege string .
Null Pointers

Hoewel Java probeert pointers verbergen voor de programmeur, er is een geval als het niet kan doen . Alle lessen zijn eigenlijk pointers naar het geheugen locaties waar de gegevens voor de klas kan worden gevonden . Dit maakt het sneller wanneer klassen moeten worden doorgegeven en uit functies . Echter , in het bovenstaande voorbeeld , na de eerste regel wordt uitgevoerd , een pointer is gereserveerd voor " s ", maar er geen gegevens zijn aangemaakt . " s " heeft geen geheugen gereserveerd voor het, dus het is een ' null pointer . "
Null Pointer Uitzonderingen

Nu dat je weet wat een null pointer is , overweeg dan de volgende twee regels code :

String s ; s.charAt ( 0 ) ; //Haal het eerste teken van de string

de code vraagt ​​om het eerste teken van . een string object dat simpelweg niet bestaat . Met andere woorden , het is het onmogelijke vragen . Zodra dit gebeurt , Java realiseert het probleem en gooit een " NullPointerException " te laten de gebruiker of de programmeur weet dat er iets mis is gegaan .
Voorbeeld

meeste Java-programmeurs nooit zou maken van de bovenstaande fout : ze weten objecten zoals strings moet worden geïnitialiseerd met de " nieuwe " commando . Maar denk eens aan de volgende functie :

public void afdruk
( String s ) { System.out.println ( s ) ; }

Aanvankelijk deze code ziet er goed uit : de functie ontvangt een string uit elders in het programma en drukt het aan het scherm . Maar wat als de persoon die de functie stuurde is een string die niet goed was geïnitialiseerd ? Een NullPointerException zou worden geworpen .
Debuggen en voorkomen

De eerste stap tot het voorkomen NullPointerExceptions is ervoor te zorgen dat de nieuwe klasse objecten worden altijd correct geïnitialiseerd . Echter , niemand is perfect , dus de tweede stap is om in de gewoonte van het uitvoeren van gegevens politiewerk voor functies . Binnenkomende gegevens moeten altijd worden behandeld als onbetrouwbaar , dus de volgende wijzigingen kunnen worden aangebracht :

openbare boolean afdruk
( String s ) { try { System.out.println ( s ) ; return true ; //Laat de rest van het programma kennen de operatie succesvol was } catch ( NullPointerException e ) { return false; . . //Laat de rest van het programma kennen de bewerking is mislukt } }

het voordeel van deze proactieve benadering is dat de rest van het programma kan worden geschreven om te beoordelen hoe ernstig het probleem is , in plaats van onmiddellijk mislukken en een lelijke en cryptische foutmelding geven de gebruiker .

Previous: Next:
  Java Programming
·Hoe kan ik een rekenkundige ve…
·Oorzaak van Java Uitzonderinge…
·Hoe te Foreign Keys Met Inner …
·Hoe de Classpath Set in Eclips…
·Hoe te testen als een Karakter…
·Hoe maak je een Servlet 
·Hoe u een proxy maken in Java 
·Java & Onopgeloste Compilation…
·Hoe maak je een Single Letter …
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe maak je Voeg een tekstvak in Visual …
Hoe maak je een Picture Box in Visual Ba…
  Programmering Articles
·Hoe toegang en Delete Data Met een Macro…
·Hoe de voortgangsbalk gebruiken in Visua…
·Hoe maak je een PHP code invoegen in een…
·Java Struts Tutorial 
·Hoe Set Text_Field Waarde Form_Tag in Ru…
·De voordelen van introspectie in Python 
·Hoe te JSON installeren met PHP 
·Hoe de Prompt Neem Python 
·Hoe maak je een nul te verwijderen met P…
Copyright © Computer Kennis http://www.nldit.com