logo

Skillnaden mellan statisk och icke-statisk i Java

För att förstå hur klasser, variabler och metoder fungerar i Java är det avgörande att förstå begreppen statisk och icke-statisk. Icke-statiska medlemmar är länkade till specifika klassinstanser, medan statiska medlemmar är kopplade till klassen. I det här avsnittet kommer vi att kontrastera statiska kontra icke-statiska Java-komponenter, och lyfta fram deras skillnader och potentiella tillämpningar.

Associerad med

Statisk: Statiska medlemmar (variabler och metoder) är associerade med själva klassen snarare än med enskilda instanser.

Icke-statisk: Icke-statiska medlemmar är specifika för varje instans av en klass, eftersom de är knutna till objekt skapade från klassen.

755 chmod

Minnesallokering

Statisk: Statiska medlemmar tilldelas minne endast en gång, vid tidpunkten för klassladdning. De delas mellan alla instanser i klassen.

Icke-statisk: Icke-statiska medlemmar har minne tilldelat separat för varje instans av klassen. Varje objekt har sin egen kopia av icke-statiska medlemmar.

Åtkomst

Statisk: Statiska medlemmar kan nås direkt med hjälp av klassnamnet följt av medlemsnamnet (t.ex. ClassName.memberName). De är tillgängliga från var som helst i programmet.

Icke-statisk: Icke-statiska medlemmar nås med hjälp av en objektreferens följt av medlemsnamnet (t.ex. objectReference.memberName). De är specifika för en viss instans av klassen.

stränghantering i c++

Initialisering

Statisk: Statiska medlemmar initieras när klassen laddas in i minnet, vanligtvis under programstart. Initiering sker bara en gång.

Icke-statisk: Icke-statiska medlemmar initieras när varje instans av klassen skapas, vanligtvis med det nya nyckelordet. Initiering sker separat för varje objekt.

Omfattning

Statisk: Statiska medlemmar har en global räckvidd och kan nås från var som helst i programmet, även utan att skapa en instans av klassen.

Icke-statisk: Icke-statiska medlemmar har ett lokalt omfattning och kan endast nås via en instans av klassen. De är inte tillgängliga utan att skapa ett objekt.

Tillgång till medlemmar

Statisk: Statiska medlemmar kan bara komma åt andra statiska medlemmar inom samma klass. De kan inte direkt komma åt icke-statiska medlemmar.

Icke-statisk: Icke-statiska medlemmar kan komma åt både statiska och icke-statiska medlemmar inom samma klass. De har direkt tillgång till alla medlemmar.

Användande

Statisk: Statiska medlemmar används vanligtvis för verktygsmetoder, konstanter eller variabler som inte är specifika för enskilda instanser. Till exempel en matematikklass som innehåller matematiska funktioner.

tom lista java

Icke-statisk: Icke-statiska medlemmar används för instansspecifikt beteende, eftersom de innehåller data som är specifik för varje objekt. Till exempel instansvariabler som lagrar unika värden för varje objekt.

Minneseffektivitet

Statisk: Statiska medlemmar förbrukar minne endast en gång, oavsett antalet skapade instanser. De kan vara minneseffektiva när samma data måste delas mellan alla objekt.