Wat is het verschil tussen een null-array en een lege array?

Als de afzonderlijke elementen van een int-array niet zijn geïnitialiseerd, wat wordt er dan standaard in opgeslagen? Ik heb blijkbaar ontdekt dat er zoiets is als een lege array of een null-array. Wat is het verschil en welke is van toepassing op mijn eerste vraag?


Antwoord 1, autoriteit 100%

Technisch gezien bestaat er niet zoiets als een null-array; maar aangezien arrays objecten zijn, zijn arraytypen referentietypen (dat wil zeggen: arrayvariabelen bevatten gewoon verwijzingennaar arrays), en dit betekent dat een arrayvariabele nullkan zijn in plaats van daadwerkelijk naar een array wijzen:

int[] notAnArray = null;

Een legearray is een array met lengte nul; het heeft geen elementen:

int[] emptyArray = new int[0];

(en kan nooitelementen bevatten, omdat de lengte van een array nooit verandert nadat deze is gemaakt).

Wanneer u een niet-lege array maakt zonder waarden voor de elementen op te geven, worden standaard nul-achtige waarden 0voor een integer-array, nullvoor een array van een objecttype, enz.; dus dit:

int[] arrayOfThreeZeroes = new int[3];

is hetzelfde als dit:

int[] arrayOfThreeZeroes = { 0, 0, 0 };

(hoewel deze waarden daarna opnieuw kunnen worden toegewezen; de lengte van de array kan niet veranderen, maar de elementen ervan kunnen veranderen).


Antwoord 2, autoriteit 6%

Een array heeft zijn leden geïnitialiseerd naar hun standaardwaarden. Voor intis de standaardwaarde 0. Voor een Objectis dit null. Een null-array is een nullArray Reference(aangezien arrays referentietypes zijn in Java).

JLS-4.12. 5 beginwaarden van variabelenzegt gedeeltelijk

Voor type int is de standaardwaarde nul, dat wil zeggen 0.

en

Voor alle referentietypes ( 4.3) is de standaardwaarde null.


Antwoord 3, autoriteit 3%

Java initialiseerde standaard de array volgens het gedeclareerde type. Het is int en vervolgens wordt het geïnitialiseerd op 0. Als het van het type object is, zoals een array van objecten, wordt het geïnitialiseerd op null.


Antwoord 4

Als de afzonderlijke elementen van een int-array niet zijn geïnitialiseerd, wat wordt er dan standaard in opgeslagen?

0

lege array is array met 0 elementen

Ik heb nog nooit gehoord van nullarray, maar het is waarschijnlijk een array met een niet-nul elementreferentie die null

is

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes