Skip to content

martokarski/Java-Object-internals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

What's in the object?

This project contains examples showing how some JVM internals are implemented. It wasn't created as an exhaustive source of knowledge, but rather as a (subjectively chosen) set of highlights that may be a start for looking deeper into internal mechanisms we are using everyday :)

Word Java may be ambiguous. It may refer to the Java language, but it is also often used to describe JVM (Java Virtual Machine) or even whole ecosystem - language, runtime environment, development tools and libraries. In this document Java always refers to language and virtual machine is described as JVM.

Presented examples by their nature are closely coupled with specific JVM implementation. Virtual machine can be called JVM if it is compatible with JVM specification. However that specification doesn't cover many internal elements, giving a free hand to actual implementers. Thanks to that approach, multiple JVM implementations are existing on the market - they can make their own optimizations based on the eventual use cases.

JVM implementation used to test presented examples is OpenJDK 8. OpenJDK is an open source project that is very similar to proprietary "HotSpot" JVM from Oracle.

This project is divided into sections:

Direct source of information is linked directly in the text. However I would like to link to other sources that helped me create this project:

  1. Java Language and Virtual Machine Specifications
  2. How does the default hashCode() work?
  3. Synchronization and Object Locking
  4. Biased Locking in HotSpot
  5. Evaluating and improving biased locking in the HotSpot virtual machine
  6. Default hashcode in java and biased locking
  7. OpenJDK 8 sources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages