Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wie lange sind statische Member einer Klasse im Speicher ?

Empfohlene Antworten

Veröffentlicht

Tag alle zusammen,

soweit ich das mitbekommen habe, werden statische Member einer Klasse oder Typen beim Start des Programms einmalig initialisiert, und können dann auch ohne eine Instanz des jeweiligen Objektes direkt aufgerufen werden (solange sie nicht protected oder private in dieser sind).

Aber wann werden die Daten denn eigentlich wieder gelöscht ? Sind diese dann bis zum Programmende im Speicher, oder nur solange wie mindestens ein Objekt der jeweiligen Klasse existiert ? Was auch komisch wäre, da - wie oben erwähnt - sie ja kein Objekt der eigenen Klasse benötigen.

Wenn ich z.B. versuche mein Projekt zu beenden und den Ordner zu löschen sagt mir Windows: „Die Aktion kann nicht abgeschlossen werden, da der Ordner in einem anderen Programm geöffnet ist.“

Hab ich da vergessen irgendwo Speicher wieder frei zu geben (verwende aber kein new *** in dem Projekt) oder hab ich was initialisiert, was ich vergessen hab wieder zu beenden?

Danke für eure Hilfe. :)

Static-Klassenmember haben "static storage duration", d.h. sie existieren so lange, wie das Programm läuft. Die Reihenfolge der Zerstörung ist umgekehrt zur Erzeugung.

Ich würde erst einmal prüfen (z.B. mit Process Explorer), welches Programm da noch ein Handle auf den Ordner hat. Vielleicht ist es ja gar nicht deins.

Ich würde erst einmal prüfen (z.B. mit Process Explorer), welches Programm da noch ein Handle auf den Ordner hat. Vielleicht ist es ja gar nicht deins.

Sehr schönes Tool und Danke für die Antwort zu den Statics.

Ist tatsächlich kein Überbleibsel meines Programms. Es greift noch ein anderer Prozess auf den Ordner zu. Ist es eigentlich überhaupt möglich, dass ich mein Programm komplett beende, es noch irgendwo Reste im Speicher „herum liegen“ und man deswegen den Ordner nicht löschen kann?

Nur für den Fall, dass mal kein weiterer Prozess auf meine Programme zugreift und ich anfange zu rätseln. :D

Ist es eigentlich überhaupt möglich, dass ich mein Programm komplett beende, es noch irgendwo Reste im Speicher „herum liegen“ und man deswegen den Ordner nicht löschen kann?

Man kann beim Programmende (bzw. beim Klick auf den "Schließen"-Button) doch einfach eine statische Funktion wie "unload" oder sowas aufrufen, wenn das Programm eh geschlossen wird, dann fängt man halt da schon mit den "Aufräumarbeiten" an.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.