
Memory Management
Stack vs heap, allocator, Drop trait, RAII, memory leaks door Rc-cycli, Pin<T>
1Waar worden in Rust lokale variabelen van primitieve types zoals i32 of bool opgeslagen?
Waar worden in Rust lokale variabelen van primitieve types zoals i32 of bool opgeslagen?
Antwoord
Lokale variabelen van primitieve types worden op de stack opgeslagen. De stack biedt zeer snelle allocatie en deallocatie omdat hij volgens het LIFO-principe (Last In, First Out) werkt. Primitieve types hebben een grootte die bij het compileren bekend is, waardoor de compiler de benodigde ruimte in de stack frame van de huidige functie kan reserveren.
2Welke smart pointer moet je gebruiken om een waarde op de heap te alloceren met één enkele eigenaar?
Welke smart pointer moet je gebruiken om een waarde op de heap te alloceren met één enkele eigenaar?
Antwoord
Box<T> is de eenvoudigste smart pointer voor heap-allocatie. Het garandeert één enkele eigenaar en geeft het geheugen automatisch vrij wanneer de Box buiten scope raakt. Box is handig voor types met een onbekende grootte bij het compileren, voor grote structuren die niet op de stack gekopieerd moeten worden, of voor recursieve types.
3Wat is het RAII-patroon (Resource Acquisition Is Initialization) in Rust?
Wat is het RAII-patroon (Resource Acquisition Is Initialization) in Rust?
Antwoord
RAII is een patroon waarbij resources (geheugen, bestanden, verbindingen) worden verkregen tijdens het aanmaken van een object en automatisch worden vrijgegeven bij de vernietiging ervan. In Rust gebeurt dit via de Drop-trait, die automatisch wordt aangeroepen wanneer een waarde buiten de scope raakt. Dit patroon zorgt ervoor dat geen enkele resource wordt vergeten en voorkomt geheugenlekken.
Wanneer wordt de Drop-trait automatisch aangeroepen in Rust?
Hoe kan een geheugenlek (memory leak) worden veroorzaakt met Rc<T> in Rust?
+17 gespreksvragen
Andere Rust-sollicitatieonderwerpen
Rust-basis
Ownership & Borrowing
Structs & Enums
Foutafhandeling
Collecties
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro's
Serde & serialisatie
Unsafe Rust
Geavanceerde traits
Geavanceerde Lifetimes
Type System
Tokio & Async I/O
Prestatie-optimalisatie
Web Frameworks
Database Integration
Rust Design Patterns
Beheers Rust voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis