logo

Verschil tussen statisch en niet-statisch in Java

Om te begrijpen hoe klassen, variabelen en methoden in Java werken, is het van cruciaal belang om de begrippen statisch en niet-statisch te begrijpen. Niet-statische leden zijn gekoppeld aan specifieke klasse-instanties, terwijl statische leden verbonden zijn met de klasse. In deze sectie zullen we statische en niet-statische Java-componenten met elkaar vergelijken, waarbij we hun verschillen en potentiële toepassingen benadrukken.

Geassocieerd met

Statisch: Statische leden (variabelen en methoden) worden geassocieerd met de klasse zelf in plaats van met individuele instanties.

Niet-statisch: Niet-statische leden zijn specifiek voor elke instantie van een klasse, omdat ze zijn gekoppeld aan objecten die op basis van de klasse zijn gemaakt.

java-arraylijst

Geheugentoewijzing

Statisch: Aan statische leden wordt slechts één keer geheugen toegewezen, op het moment dat de klasse wordt geladen. Ze worden gedeeld door alle instanties van de klasse.

Niet-statisch: Voor niet-statische leden wordt geheugen afzonderlijk toegewezen voor elke instantie van de klasse. Elk object heeft zijn eigen kopie van niet-statische leden.

Toegang

Statisch: Statische leden zijn rechtstreeks toegankelijk via de klassenaam gevolgd door de lidnaam (bijvoorbeeld ClassName.memberName). Ze zijn overal binnen het programma toegankelijk.

Niet-statisch: Niet-statische leden zijn toegankelijk via een objectverwijzing gevolgd door de lidnaam (bijvoorbeeld objectReference.memberName). Ze zijn specifiek voor een bepaald exemplaar van de klasse.

dun algoritme

Initialisatie

Statisch: Statische leden worden geïnitialiseerd wanneer de klasse in het geheugen wordt geladen, meestal tijdens het opstarten van het programma. Initialisatie gebeurt slechts één keer.

Niet-statisch: Niet-statische leden worden geïnitialiseerd wanneer elke instantie van de klasse wordt gemaakt, meestal met behulp van het nieuwe sleutelwoord. Initialisatie vindt voor elk object afzonderlijk plaats.

Domein

Statisch: Statische leden hebben een globaal bereik en zijn overal binnen het programma toegankelijk, zelfs zonder een exemplaar van de klasse te maken.

Niet-statisch: Niet-statische leden hebben een lokaal bereik en zijn alleen toegankelijk via een exemplaar van de klasse. Ze zijn niet toegankelijk zonder een object te maken.

Toegang tot leden

Statisch: Statische leden hebben alleen toegang tot andere statische leden binnen dezelfde klasse. Ze hebben geen directe toegang tot niet-statische leden.

Niet-statisch: Niet-statische leden hebben toegang tot zowel statische als niet-statische leden binnen dezelfde klasse. Ze hebben directe toegang tot alle leden.

Gebruik

Statisch: Statische leden worden vaak gebruikt voor hulpprogrammamethoden, constanten of variabelen die niet specifiek zijn voor individuele instanties. Bijvoorbeeld een Math-klasse die wiskundige functies bevat.

Java-versie Linux

Niet-statisch: Niet-statische leden worden gebruikt voor exemplaarspecifiek gedrag, omdat ze gegevens bevatten die specifiek zijn voor elk object. Bijvoorbeeld instantievariabelen die unieke waarden voor elk object opslaan.

Geheugenefficiëntie

Statisch: Statische leden verbruiken slechts één keer geheugen, ongeacht het aantal gemaakte exemplaren. Ze kunnen geheugenefficiënt zijn wanneer dezelfde gegevens over alle objecten moeten worden gedeeld.