GraalVM Native Images
GraalVM Native Images für schnellen Start, native Kompilierung, AOT, Reflection Hints, Einschränkungen
1Was ist GraalVM Native Image?
Was ist GraalVM Native Image?
Antwort
GraalVM Native Image ist eine Technologie, die Java-Anwendungen mittels AOT-Kompilierung (Ahead-of-Time) in eigenständige native ausführbare Dateien kompiliert. Anders als die klassische JVM, die zur Laufzeit JIT-Kompilierung (Just-In-Time) verwendet, analysiert und kompiliert Native Image den gesamten Code im Voraus. Das ermöglicht einen nahezu sofortigen Start (Millisekunden), einen reduzierten Speicherbedarf und keine JVM-Abhängigkeit für die Ausführung.
2Was ist der Hauptunterschied zwischen AOT- und JIT-Kompilierung?
Was ist der Hauptunterschied zwischen AOT- und JIT-Kompilierung?
Antwort
Die AOT-Kompilierung (Ahead-of-Time) analysiert und kompiliert den gesamten Code vor der Ausführung und erzeugt eine optimierte native ausführbare Datei. Die JIT-Kompilierung (Just-In-Time) kompiliert Java-Bytecode während der Ausführung schrittweise in Maschinencode. AOT bietet einen sofortigen Start, erfordert jedoch eine längere Build-Zeit, während JIT langsam startet, den Code aber im Laufe der Zeit basierend auf den tatsächlichen Nutzungsmustern optimiert.
3Welches Maven-Plugin sollte zum Erstellen eines Spring Boot Native Image verwendet werden?
Welches Maven-Plugin sollte zum Erstellen eines Spring Boot Native Image verwendet werden?
Antwort
Das native-maven-plugin aus der Gruppe org.graalvm.buildtools ist das offizielle Plugin zum Erstellen von Native Images mit Maven. Spring Boot Starter Parent aktiviert es automatisch im Profil 'native'. Es genügt, das Plugin im plugins-Abschnitt zu deklarieren und je nach gewünschtem Modus mvn -Pnative spring-boot:build-image oder mvn -Pnative package auszuführen.
Wie aktiviert man das Maven-Profil für die native Kompilierung von Spring Boot?
Was ist das Prinzip der 'closed-world assumption' in GraalVM Native Image?
+17 Interview-Fragen
Weitere Spring Boot-Interviewthemen
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging mit SLF4J und Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Ausnahmebehandlung
Bean Validation
Spring Data JPA Grundlagen
JPA-Entitäten und Beziehungen
JPA-Abfragen
Spring Data Repositories
Spring Security Grundlagen
Spring Boot Actuator
Unit-Tests mit JUnit & Mockito
Spring Boot Testing
Profiles und Environment
RestTemplate und WebClient
Async & Scheduling
Caching mit Spring
Spring WebFlux (Reactive)
Spring-Transaktionen
Erweiterte Authentifizierung und Autorisierung
JWT & Stateless-Sicherheit
OAuth2 & Authorization Server
Spring Boot und Docker
Microservices mit Spring
Spring Cloud Config
Performance-Optimierung
Meistere Spring Boot für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten