SlideShare a Scribd company logo
JAVA VIRTUAL MACHINE
THE REAL THING: JAVA VIRTUAL MACHINE
http://frontech.com.tr
HIZIR SEFA İRKEN
SEFA.IRKEN@FRONTECH.COM.TR
THE REAL THING: JAVA VIRTUAL MACHINE
WHAT?
▸ VM is a layer of abstraction
▸ once only Java, but not anymore (after JDK 5)
▸ write once, run anywhere
▸ memory managed
▸ concurrent
▸ secure
THE REAL THING: JAVA VIRTUAL MACHINE
OUTSIDE
THE REAL THING: JAVA VIRTUAL MACHINE
INSIDE .CLASS FILE
JAVA VIRTUAL MACHINE
CLASS LOADER EXECUTION ENGINE
RUNTIME DATA AREAS
THE REAL THING: JAVA VIRTUAL MACHINE
INSIDE - KEY COMPONENTS
INSIDE
COMPONENTS OF JVM
1. bytecode verifier
2. class loader
3. execution engine
4. garbage collector
5. security manager
BYTECODE VERIFIER
BYTECODE VERIFIER
‣ first step in JVM is inspection
‣ checks for unusual code
‣ crucial for security
BYTECODE VERIFIER
WHAT BYTECODE CHECKED FOR
‣ variables are initialized before they are used
‣ method calls match the types of object references
‣ rules for accessing private data and methods are not
violated.
‣ local variable accesses fall within the runtime stack
‣ the runtime stack does not overflow
BYTECODE VERIFIER
HOW BYTECODE INSTRUCTIONS LOOK LIKE
CLASS LOADER
CLASS LOADER
‣ JVM doesn't need to know anything about runtime classes
‣ performs three main functions of JVM:
‣ loading
‣ linking
‣ initialization
‣ loads from anywhere
‣ every runtime has at least three class loaders
CLASS LOADER
THE LOADERS
‣ bootstrap class loader:

loads the system classes (typically from rt.jar)
‣ extension class loader:

loads “standart extensions” from the jre/lib/ext directory

jre/lib/endorsed will force override standard APIs
‣ system class loader:

loads the application classes from classpath.
EXECUTION ENGINE
EXECUTION ENGINE
‣ convert bytecode to machine code
‣ responsible for executing instructions contained in the
methods of loaded classes
‣ It has two parts:
‣ interpreter (ahead-of-time)
‣ JIT compiler aka just-in-time interpreter

JIT
JUST IN TIME - JIT
‣ advanced part of JVM
‣ starts after the program has started and compiles the code on the fly
‣ JIT has access to dynamic runtime information whereas a standard compiler
doesn't
‣ optimizes by compiling similar bytecodes at same time
‣ reduces overall execution time, improves performance

JIT
OPTIMIZATIONS
‣ inlining
‣ local optimizations
‣ control flow optimizations
‣ global optimizations
‣ native code generation
‣ reference: http://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/
com.ibm.java.lnx.70.doc/diag/understanding/jit_optimize.html
JIT
IN ACTION
GARBAGE COLLECTOR
GARBAGE COLLECTOR
‣ garbage collecting: freeing objects that are no longer referenced by the program
‣ in short checks periodically for not-needed objects
‣ no memory management needed from programmer, but be careful
‣ types:
‣ serial collector
‣ parallel collector
‣ parallel compacting collector
‣ concurrent mark-sweep (CMS) collector
‣ garbage-first (G1) garbage collector
GARBAGE COLLECTOR
G1 IS DESIGNED FOR
‣ can operate concurrently with applications threads like the CMS collector
‣ compact free space without lengthy GC induced pause times
‣ need more predictable GC pause durations
‣ do not want to sacrifice a lot of throughput performance
‣ do not want to require a much larger Java heap
HEAP
HEAP STRUCTURE
HEAP
AFTER YOUNG GENERATION COLLECTION
SECURITY MANAGER
SECURITY MANAGER
‣ not the security you think
‣ an object responsible for guarding security policies
‣ constantly monitors the code
‣ always consulted before any potentially dangerous operation
SECURITY MANAGER
EXAMPLE
SECURITY MANAGER
OUTPUT
OUT OF MEMORY!
BONUS TOPIC
OUT OF MEMORY
TYPES
‣ java heap space
‣ permgen space
‣ gc overhead limit exceeded
‣ unable to create new native thread
‣ and more..
OUT OF MEMORY
PERMGEN
‣ occurs when JVM wants to load new class definitions, but there is not enough
space in PermGen space
‣ you are trying to use more than you have - increase PermGen space
‣ possible class loader leak in your application or app server - needs code fix
OUT OF MEMORY
GC OVERHEAD LIMIT EXCEEDED
‣ overhead limit is the policy to allow jam to detect potential OOM conditions
beforehand
‣ caused by:
‣ too many full GC iterations
‣ too much time spent in GC
‣ fine tune jvm params and your GC, use GC logging
OUT OF MEMORY
UNABLE TO CREATE NEW NATIVE THREAD
‣ JVM ask for new thread from OS, OS can not allocate a new thread anymore
‣ check ulimit, this is a OS config
‣ use thread-pools if possible
‣ reduce heap space
‣ perform vertical scaling
OUT OF MEMORY
JAVA HEAP SPACE
‣ you ran out of allocated memory for your application
‣ memory can be increased by JVM params
‣ check your code for memory leaks and unused datasets
‣ diagnose problem with heap dump -jmap
REFERENCES
REFERENCES
‣ https://en.wikipedia.org/wiki/Memory_management#DYNAMIC
‣ https://en.wikipedia.org/wiki/Java_virtual_machine
‣ http://www.oracle.com/technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdf
‣ https://books.google.com.tr/books?id=K7i6AgAAQBAJ
‣ https://docs.oracle.com/javase/8/docs/technotes/guides/#javavm
‣ https://blog.frankel.ch/java-security-manager/#gsc.tab=0
‣ https://docs.oracle.com/javase/tutorial/essential/environment/security.html
‣ http://www.slideshare.net/surbhiiiii/javajava-virtual-machine
‣ http://www.slideshare.net/BaabtraMentoringPartner/java-virtual-machine-43141334
‣ http://www.slideshare.net/pritybhudolia/jvm-20513648
‣ http://www.slideshare.net/aparnachaudhary/understanding-jvm
‣ https://docs.oracle.com/javase/specs/jvms/se8/html/index.html
‣ https://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf
‣ http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html
‣ https://docs.oracle.com/javase/8/docs/technotes/guides/vm/
‣ https://docs.oracle.com/javase/8/docs/technotes/guides/vm/G1.html

More Related Content

What's hot (20)

PPTX
Jvm Architecture
ThirupathiReddy Vajjala
 
PDF
Java introduction with JVM architecture
atozknowledge .com
 
PPTX
QSpiders - Memory (JVM architecture)
Qspiders - Software Testing Training Institute
 
PPTX
Architecture diagram of jvm
home
 
PPTX
Java virtual machine
Nikhil Sharma
 
PPT
JVM- Java Virtual Machine
Manasvi Mehta
 
PPTX
Java byte code presentation
Mahnoor Hashmi
 
PPT
Inside the JVM
Jim Jagielski
 
PPTX
Java JVM
KadarkaraiSelvam
 
PPTX
Java architecture
Rakesh
 
PPTX
Java 2
KadarkaraiSelvam
 
DOCX
JDK,JRE,JVM
Cognizant
 
PPT
Byte code jvm
myrajendra
 
PPTX
QSpiders - Jdk Jvm Jre and Jit
Qspiders - Software Testing Training Institute
 
PPTX
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
shamnasain
 
PDF
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Skills Matter
 
PPTX
Jit complier
Kaya Ota
 
PDF
Basic difference between jdk,jre,jvm in advance java course
Preeti Agarwal
 
Jvm Architecture
ThirupathiReddy Vajjala
 
Java introduction with JVM architecture
atozknowledge .com
 
QSpiders - Memory (JVM architecture)
Qspiders - Software Testing Training Institute
 
Architecture diagram of jvm
home
 
Java virtual machine
Nikhil Sharma
 
JVM- Java Virtual Machine
Manasvi Mehta
 
Java byte code presentation
Mahnoor Hashmi
 
Inside the JVM
Jim Jagielski
 
Java architecture
Rakesh
 
JDK,JRE,JVM
Cognizant
 
Byte code jvm
myrajendra
 
QSpiders - Jdk Jvm Jre and Jit
Qspiders - Software Testing Training Institute
 
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
shamnasain
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Skills Matter
 
Jit complier
Kaya Ota
 
Basic difference between jdk,jre,jvm in advance java course
Preeti Agarwal
 

Viewers also liked (19)

PPTX
Performance Demystified for SQL Server on Azure Virtual Machines
Amit Banerjee
 
PPT
Virtual Machine Performance
Qian Lin
 
POTX
Splunking the JVM (Java Virtual Machine)
Damien Dallimore
 
PPT
CS Lesson: Introduction to the Java virtual Machine
Katrin Becker
 
PPTX
Virtual machines and their architecture
Mrinmoy Dalal
 
PDF
Virtual Machines
Joa Ebert
 
PPT
Virtual machine
Nikunj Dhameliya
 
PDF
Знакомство с Ethereum virtual machine
Sergey Lonshakov
 
PDF
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
 
PDF
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
vwchu
 
PPTX
Virtual machine
IGZ Software house
 
PPTX
1.Introduction to virtualization
Hwanju Kim
 
PPTX
Virtualization
Srisailam Reddy Kanapuram
 
PPSX
Virtualization basics
Chandrani Ray Chowdhury
 
PDF
Virtualization and cloud Computing
Rishikese MR
 
PDF
Virtualization presentation
Mangesh Gunjal
 
PPT
Virtualization in cloud computing ppt
Mehul Patel
 
PPTX
Virtualization 101: Everything You Need To Know To Get Started With VMware
Datapath Consulting
 
PDF
Introduction to virtualization
Sasikumar Thirumoorthy
 
Performance Demystified for SQL Server on Azure Virtual Machines
Amit Banerjee
 
Virtual Machine Performance
Qian Lin
 
Splunking the JVM (Java Virtual Machine)
Damien Dallimore
 
CS Lesson: Introduction to the Java virtual Machine
Katrin Becker
 
Virtual machines and their architecture
Mrinmoy Dalal
 
Virtual Machines
Joa Ebert
 
Virtual machine
Nikunj Dhameliya
 
Знакомство с Ethereum virtual machine
Sergey Lonshakov
 
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
 
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
vwchu
 
Virtual machine
IGZ Software house
 
1.Introduction to virtualization
Hwanju Kim
 
Virtualization basics
Chandrani Ray Chowdhury
 
Virtualization and cloud Computing
Rishikese MR
 
Virtualization presentation
Mangesh Gunjal
 
Virtualization in cloud computing ppt
Mehul Patel
 
Virtualization 101: Everything You Need To Know To Get Started With VMware
Datapath Consulting
 
Introduction to virtualization
Sasikumar Thirumoorthy
 
Ad

Similar to The Real Thing: Java Virtual Machine (20)

PDF
A quick view about Java Virtual Machine
João Santana
 
PDF
Java on the Mainframe
Michael Erichsen
 
PDF
An Introduction to Java Compiler and Runtime
Omar Bashir
 
PPTX
Java byte code & virtual machine
Laxman Puri
 
PDF
JVM Under the Hood
Serkan Özal
 
DOCX
Java JDK.docx
Bornali Das
 
PDF
Java on zSystems zOS
Tim Ellison
 
PPTX
Simple tweaks to get the most out of your jvm
Jamie Coleman
 
PPTX
Simple tweaks to get the most out of your JVM
Jamie Coleman
 
PDF
Core Java Programming Language (JSE) : Chapter I - Getting Started
WebStackAcademy
 
PDF
A Brief study on JVM A Brief study on JVM
BRNSSPublicationHubI
 
PPTX
Advanced Java Features: A Deep Dive into JVM, JIT, and GC
Naresh IT
 
PDF
JavaOne 2014: Java Debugging
Chris Bailey
 
PPTX
JVM.pptx
ParvathiPPSGRKCW
 
PPTX
Introduction of jvm|Java Training In Jaipur | Java Training Jaipur | Java Tra...
Rhythm Suiwal
 
PDF
What Your Jvm Has Been Trying To Tell You
John Pape
 
PDF
Advanced Java Features: A Deep Dive into JVM, JIT, and GC
Naresh IT
 
PPTX
JVMCON Java in the 21st Century: are you thinking far enough ahead?
Steve Poole
 
PDF
JavaOne 2016: Life after Modularity
DanHeidinga
 
A quick view about Java Virtual Machine
João Santana
 
Java on the Mainframe
Michael Erichsen
 
An Introduction to Java Compiler and Runtime
Omar Bashir
 
Java byte code & virtual machine
Laxman Puri
 
JVM Under the Hood
Serkan Özal
 
Java JDK.docx
Bornali Das
 
Java on zSystems zOS
Tim Ellison
 
Simple tweaks to get the most out of your jvm
Jamie Coleman
 
Simple tweaks to get the most out of your JVM
Jamie Coleman
 
Core Java Programming Language (JSE) : Chapter I - Getting Started
WebStackAcademy
 
A Brief study on JVM A Brief study on JVM
BRNSSPublicationHubI
 
Advanced Java Features: A Deep Dive into JVM, JIT, and GC
Naresh IT
 
JavaOne 2014: Java Debugging
Chris Bailey
 
Introduction of jvm|Java Training In Jaipur | Java Training Jaipur | Java Tra...
Rhythm Suiwal
 
What Your Jvm Has Been Trying To Tell You
John Pape
 
Advanced Java Features: A Deep Dive into JVM, JIT, and GC
Naresh IT
 
JVMCON Java in the 21st Century: are you thinking far enough ahead?
Steve Poole
 
JavaOne 2016: Life after Modularity
DanHeidinga
 
Ad

Recently uploaded (20)

PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 

The Real Thing: Java Virtual Machine

  • 1. JAVA VIRTUAL MACHINE THE REAL THING: JAVA VIRTUAL MACHINE
  • 3. THE REAL THING: JAVA VIRTUAL MACHINE WHAT? ▸ VM is a layer of abstraction ▸ once only Java, but not anymore (after JDK 5) ▸ write once, run anywhere ▸ memory managed ▸ concurrent ▸ secure
  • 4. THE REAL THING: JAVA VIRTUAL MACHINE OUTSIDE
  • 5. THE REAL THING: JAVA VIRTUAL MACHINE INSIDE .CLASS FILE JAVA VIRTUAL MACHINE CLASS LOADER EXECUTION ENGINE RUNTIME DATA AREAS
  • 6. THE REAL THING: JAVA VIRTUAL MACHINE INSIDE - KEY COMPONENTS
  • 7. INSIDE COMPONENTS OF JVM 1. bytecode verifier 2. class loader 3. execution engine 4. garbage collector 5. security manager
  • 8. BYTECODE VERIFIER BYTECODE VERIFIER ‣ first step in JVM is inspection ‣ checks for unusual code ‣ crucial for security
  • 9. BYTECODE VERIFIER WHAT BYTECODE CHECKED FOR ‣ variables are initialized before they are used ‣ method calls match the types of object references ‣ rules for accessing private data and methods are not violated. ‣ local variable accesses fall within the runtime stack ‣ the runtime stack does not overflow
  • 10. BYTECODE VERIFIER HOW BYTECODE INSTRUCTIONS LOOK LIKE
  • 11. CLASS LOADER CLASS LOADER ‣ JVM doesn't need to know anything about runtime classes ‣ performs three main functions of JVM: ‣ loading ‣ linking ‣ initialization ‣ loads from anywhere ‣ every runtime has at least three class loaders
  • 12. CLASS LOADER THE LOADERS ‣ bootstrap class loader:
 loads the system classes (typically from rt.jar) ‣ extension class loader:
 loads “standart extensions” from the jre/lib/ext directory
 jre/lib/endorsed will force override standard APIs ‣ system class loader:
 loads the application classes from classpath.
  • 13. EXECUTION ENGINE EXECUTION ENGINE ‣ convert bytecode to machine code ‣ responsible for executing instructions contained in the methods of loaded classes ‣ It has two parts: ‣ interpreter (ahead-of-time) ‣ JIT compiler aka just-in-time interpreter

  • 14. JIT JUST IN TIME - JIT ‣ advanced part of JVM ‣ starts after the program has started and compiles the code on the fly ‣ JIT has access to dynamic runtime information whereas a standard compiler doesn't ‣ optimizes by compiling similar bytecodes at same time ‣ reduces overall execution time, improves performance

  • 15. JIT OPTIMIZATIONS ‣ inlining ‣ local optimizations ‣ control flow optimizations ‣ global optimizations ‣ native code generation ‣ reference: http://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/ com.ibm.java.lnx.70.doc/diag/understanding/jit_optimize.html
  • 17. GARBAGE COLLECTOR GARBAGE COLLECTOR ‣ garbage collecting: freeing objects that are no longer referenced by the program ‣ in short checks periodically for not-needed objects ‣ no memory management needed from programmer, but be careful ‣ types: ‣ serial collector ‣ parallel collector ‣ parallel compacting collector ‣ concurrent mark-sweep (CMS) collector ‣ garbage-first (G1) garbage collector
  • 18. GARBAGE COLLECTOR G1 IS DESIGNED FOR ‣ can operate concurrently with applications threads like the CMS collector ‣ compact free space without lengthy GC induced pause times ‣ need more predictable GC pause durations ‣ do not want to sacrifice a lot of throughput performance ‣ do not want to require a much larger Java heap
  • 21. SECURITY MANAGER SECURITY MANAGER ‣ not the security you think ‣ an object responsible for guarding security policies ‣ constantly monitors the code ‣ always consulted before any potentially dangerous operation
  • 25. OUT OF MEMORY TYPES ‣ java heap space ‣ permgen space ‣ gc overhead limit exceeded ‣ unable to create new native thread ‣ and more..
  • 26. OUT OF MEMORY PERMGEN ‣ occurs when JVM wants to load new class definitions, but there is not enough space in PermGen space ‣ you are trying to use more than you have - increase PermGen space ‣ possible class loader leak in your application or app server - needs code fix
  • 27. OUT OF MEMORY GC OVERHEAD LIMIT EXCEEDED ‣ overhead limit is the policy to allow jam to detect potential OOM conditions beforehand ‣ caused by: ‣ too many full GC iterations ‣ too much time spent in GC ‣ fine tune jvm params and your GC, use GC logging
  • 28. OUT OF MEMORY UNABLE TO CREATE NEW NATIVE THREAD ‣ JVM ask for new thread from OS, OS can not allocate a new thread anymore ‣ check ulimit, this is a OS config ‣ use thread-pools if possible ‣ reduce heap space ‣ perform vertical scaling
  • 29. OUT OF MEMORY JAVA HEAP SPACE ‣ you ran out of allocated memory for your application ‣ memory can be increased by JVM params ‣ check your code for memory leaks and unused datasets ‣ diagnose problem with heap dump -jmap
  • 30. REFERENCES REFERENCES ‣ https://en.wikipedia.org/wiki/Memory_management#DYNAMIC ‣ https://en.wikipedia.org/wiki/Java_virtual_machine ‣ http://www.oracle.com/technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdf ‣ https://books.google.com.tr/books?id=K7i6AgAAQBAJ ‣ https://docs.oracle.com/javase/8/docs/technotes/guides/#javavm ‣ https://blog.frankel.ch/java-security-manager/#gsc.tab=0 ‣ https://docs.oracle.com/javase/tutorial/essential/environment/security.html ‣ http://www.slideshare.net/surbhiiiii/javajava-virtual-machine ‣ http://www.slideshare.net/BaabtraMentoringPartner/java-virtual-machine-43141334 ‣ http://www.slideshare.net/pritybhudolia/jvm-20513648 ‣ http://www.slideshare.net/aparnachaudhary/understanding-jvm ‣ https://docs.oracle.com/javase/specs/jvms/se8/html/index.html ‣ https://docs.oracle.com/javase/specs/jvms/se7/jvms7.pdf ‣ http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html ‣ https://docs.oracle.com/javase/8/docs/technotes/guides/vm/ ‣ https://docs.oracle.com/javase/8/docs/technotes/guides/vm/G1.html