Is Java compiled or interpreted? The JVM cleverly uses both, finding your code's 'hotspots' and compiling them into native code at runtime for maximum performance.
#1about 4 minutes
Understanding compiled versus interpreted programming languages
Programming languages are classified by their level of abstraction, requiring either compilation or interpretation to translate high-level code into machine-executable code.
#2about 4 minutes
How Java uses bytecode for platform portability
Java achieves portability by first compiling source code into platform-neutral bytecode, which is then interpreted and executed by the Java Virtual Machine (JVM).
#3about 5 minutes
Boosting performance with just-in-time compilation
The JIT compiler significantly improves performance by identifying and compiling frequently executed code sections, known as hotspots, into native machine code at runtime.
#4about 2 minutes
Comparing the C1 client and C2 server compilers
The JVM includes two JIT compilers: the C1 (client) compiler for fast startup and the C2 (server) compiler for better long-term performance optimization.
#5about 3 minutes
Achieving the best of both worlds with tiered compilation
Tiered compilation combines the C1 and C2 compilers, initially using C1 for quick startup and later switching to C2 for highly optimized code as more profiling data is collected.
#6about 3 minutes
Exploring the five levels of tiered compilation
The tiered compilation process involves five distinct levels, progressing from interpretation (level 0) through various C1 stages (levels 1-3) to full C2 optimization (level 4).
#7about 1 minute
Understanding deoptimization when assumptions fail
Deoptimization occurs when the JIT compiler's assumptions about code behavior are invalidated, causing the optimized native code to be discarded and the compilation process to restart.
#8about 5 minutes
How to configure and observe JIT compilation behavior
Developers can use JVM flags to disable tiered compilation, adjust compilation thresholds, and enable logging to observe the JIT compiler's behavior in real time.
#9about 2 minutes
Conclusion: Java is both a compiled and interpreted language
Java's hybrid model uses an interpreter for portability and a sophisticated JIT compiler for high performance, making it both a compiled and an interpreted language.
#10about 9 minutes
Audience Q&A on JIT compilation and performance
The speaker answers audience questions regarding compiler memory usage, direct-to-native compilation, performance thresholds, and comparisons with other languages like Go and Kotlin.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
03:15 MIN
Distinguishing between interpreters and compilers
Making Sense of Programming Languages
07:25 MIN
Improving performance with ahead-of-time compilation
Going serverless using the Spring Framework ecosystem
02:51 MIN
Tuning JVM compilation and garbage collection
High performance Serverless Java on AWS
07:22 MIN
Understanding GraalVM native image compilation
Kubernetes Native Java
03:38 MIN
Comparing native and managed compiler architectures
Building a Compiler with C#
01:22 MIN
How Dart compiles code for development and production
Dart - a language believed dead, experiences a new bloom
07:05 MIN
Java's adaptation for cloud-native and serverless computing
Build ultra-fast In-Memory Database Apps and Microservices with Java
02:04 MIN
Understanding Dart's JIT and AOT compilation model
Dart - a language believed dead, experiences a new bloom
Java BasicsIn 1991,James Gosling invented a high-level, general-purpose, object-oriented andsecure programming language and called it OAK (after a tree in front of hiswindow). And four years later, in 1995, it was renamed after one of the GreaterSunda Islands: ...
Benedikt Bischof
Using Java 17 latest features in real world projectsWelcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Ron Veen who introduced the audience to some of the most interesting features that got added to the Java language.About the speaker:Ron is a hig...
Thomas Limbüchler
Top in-demand programming languages to learn in 2021Long-established programming languages such as Java, C, or JavaScript are usually the right choice for beginners. But are they still future-proof? These are the players of tomorrow that you should learn in 2021.New programming languages are becoming ...
Thomas Limbüchler
What is a Java Developer?“3 billion devices run Java.” If it seems like a lot, you might be surprised to learn that the figure falls short. Three billion devices — that’s what the Java Setup executable stated when you installed the Java client… in 2013. Since then, every met...
From learning to earning
Jobs that call for the skills explored in this talk.