Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JVM Internals Demystified
Search
hannelita
February 19, 2015
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JVM Internals Demystified
Confoo 2015
hannelita
February 19, 2015
More Decks by hannelita
See All by hannelita
Java EE 8 - Future, Wishes and Predictions
hannelita
1
250
Eletrônica
hannelita
0
210
Cassandra Meetup
hannelita
0
92
Our Daily Graphs written in Ruby and Neo4j
hannelita
1
200
Wildfly em alta disponibilidade
hannelita
0
290
Helios - o backend pra Mobile que você precisava <3
hannelita
0
140
Neo4j - Dia a dia com grafos, Neo4j e Ruby
hannelita
1
180
Swift - uma fama repentina
hannelita
1
170
Curso relâmpago de eletrônica básica para desenvolvedores
hannelita
1
300
Other Decks in Technology
See All in Technology
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
790
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
570
新卒エンジニア、 介護士になる
ryu1013
1
700
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
230
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
1
450
仕様と現実の間で落とし所を探るリモートMCPの認証・認可 — Sansanの認証基盤における課題と実践
sansantech
PRO
2
230
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
200
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
220
生成AI時代のIAMのマニアックな話
takuros
6
2.9k
「いつか使う」の「いつか」は来ない 〜AI駆動開発における「作らない」判断について〜
ikki0006
0
180
会社説明資料_最新版
demaecan
0
32k
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
740
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
4 Signs Your Business is Dying
shpigford
187
23k
Making Projects Easy
brettharned
120
6.9k
Ethics towards AI in product and experience design
skipperchong
2
460
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
The Invisible Side of Design
smashingmag
301
52k
The Curious Case for Waylosing
cassininazir
1
610
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
510
Transcript
༼ つ ◕_◕ ༽つ JVM Internals ༼ つ ◕_◕ ༽つ
Demystified! ( ͡° ͜ ʖ ͡°) ༼ つ ◕_◕ ༽つ ༼ つ ◕_◕ ༽つ
What we will NOT see here • Pure JVM boring
theory • Assembly fear stuff • 0xFF • 0100111
What we will see here • Why internals? • Method
Area • Heap • Threads • Further reading • Funny Gifs and images!
Bonjour
Hi! I’m Hanneli São Paulo, Brazil
Hi! I’m Hanneli Meanwhile here in Canada
None
No advanced stuff Simplified way
If you understand computer architecture classes You understand JVM
Why do I Need to Understand Internals?
We live in a simplified era
All externalised
All externalised (Almost)Normal dressed developers (external)
Do I need internal details?
Developer showing internal details
Memory analyse • Help! Perm gem problems! • Search for
memory leaks • Memory analyser tools • Understand how JVM works
What’s the relation between: JVM Memory Bytecode Assembly Low Level
OpCode Operator Operation Java
None
How do I get started? • http://www.artima.com/insidejvm/ed2/jvmP.html
How do I get started?
JVM - Low level Assembly
I know how to write Java code
༼ つ ◕_◕ ༽つ classes ༼ つ ◕_◕ ༽つ
What happens when I invoke a method in Java
WAIT How many kinds of methods do you know?
2 types of methods Clazz.method(); object.method(); static instance
From Assembly classes: op code + operand operation + operand
operation + operand add r1, r2 public int add(int r1,
int r2) operation operators == parameters
Method calls in JVM static instance operation + operand operation
+ operand invokevirtual invokestatic
Where are the Operands? Special place
Where are the Operands? Real place
Symbolic place called pool
JVM keeps this fake references It’s a strategy to deal
with dynamic linking
While JVM does need the content of this fake box
(pool), it remais unresolved
Each fake reference for each method is unique
Each fake reference for each method is unique So JVM
can replace the fake calls with true invokes.
Back to methods Clazz.method(int a); object.method(parameter); class Lol { public
int myMethod(int a){ // } } Class stuff
Method Area JVM Class stuff Class stuff Class stuff Non-Heap
Code Cache Permanent Generation
Done? object
༼ つ ◕_◕ ༽つ object ༼ つ ◕_◕ ༽つ
Method Area JVM Class stuff Class stuff Class stuff Non-Heap
Permanent Generation HEAP Permanent Generation object object object
Young gen JVM - The Heap HEAP Lol lol =
new LOL(); lol object object object
JVM - The Heap HEAP Permanent Generation object object object
object object object object object object object object object object object object object Hey, Im’m heavy
JVM - The Heap HEAP Permanent Generation object object object
object object object object object object object object object object object object object Checks all the objects on the heap Garbage collector
Old gen Young generation JVM - The Heap HEAP object
object Eden lol Survivor object Will be taken for GC
Last step Where does my application run?
Last step public static void main(String[] args){ …}
༼ つ ◕_◕ ༽つ thread ༼ つ ◕_◕ ༽つ
JVM - Thread Thread Heap Non-Heap
JVM - Thread Thread Program Counter Stack Frame Frame Frame
Frame Frame Local variables [] Return Value Pointer to Method Area Pointer to Heap Area Operand Operand Operand Operand Stack
JVM - Sum up Program Counter Stack Frame Frame Frame
Frame Heap Non-Heap Object instances Class Stuff/ Method Area Similar to Computer Architecture
༼ つ ◕_◕ ༽つ JVM ༼ つ ◕_◕ ༽つ
( ͡° ͜ ʖ ͡°) JVM ( ͡° ͜ ʖ
͡°)
Thanks!! Questions? @hannelita
[email protected]
References • http://www.artima.com/insidejvm/ed2/jvmP.html • http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/ • http://architects.dzone.com/articles/understanding-jvm-internals • http://www.ourdailycodes.com/2013/09/inside-java-jvm-memory- structure-2.html
• http://javarevisited.blogspot.ca/2011/04/garbage-collection-in-java.html • http://www.slideshare.net/BalamuruganSoundararajan/invoke-dynamics • http://www.javaworld.com/article/2076949/learn-java/how-the-java-virtual- machine-handles-method-invocation-and-return.html • http://blog.jamesdbloom.com/JVMInternals.html#threads