The Java HotSpot Virtual Machine is a core component of the Java SE platform. It implements the Java Virtual Machine Specification, and is delivered as a shared library in the Java Runtime Environment. As the Java bytecode execution engine, it provides Java runtime facilities, such as thread and object synchronization, on a variety of operating systems and architectures. It includes dynamic compilers that adaptively compile Java bytecodes into optimized machine instructions and efficiently manages the Java heap using garbage collectors, optimized for both low pause time and throughput. It provides data and information to profiling, monitoring and debugging tools and applications.
HotSpot is an "ergonomic" JVM. Based upon the platform configuration, it will select a compiler, Java heap configuration, and garbage collector that produce good to excellent performance for most applications. Under special circumstances, however, specific tuning may be required to get the best possible performance. The resources collected here will help the reader understand and tune the Java HotSpot Virtual Machine.
Oracle is committed to a vibrant, participatory community supporting the Java Platform, Standard Edition (Java SE). Oracle will continue to make the Java Development Kit (JDK) and Java Runtime Environment (JRE) freely downloadable as well as continue support for the open-source implementation of Java SE via the OpenJDK project. With the Sun acquisition, Oracle has two major Java Virtual Machine (JVM) implementations, the Java HotSpot VM and the Oracle JRockit JVM. In the short-to-medium term, both will continue as strategic JVMs with active investment. Over time, Oracle plans to converge the functionality and code bases of these JVMs.
The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming, from desktop applications to Java EE applications. See the other tabs above for information on other technologies included in Java SE.
Tip: Experienced Java programmers can quickly get to a component's documentation: Locate and click the technology in the documentation diagram.
Starting with release 5.0, Java SE provides a comprehensive solution for monitoring and managing your applications, as well as for monitoring and managing the Java Virtual Machine.
See Java Platform, Standard Edition Monitoring and Management Guide and Java Platform, Standard Edition Java Management Extensions Guide in the Java SE documentation.
See Also
Java SE contains a rich set of APIs that enable developers to create sophisticated applications. They provide both fundamental system level support as well as more complex functionality such as multi-threaded programming and object manipulation on remote hosts. Find information about basic technologies in the Java SE documentation.
See Also
Java SE contains several APIs that can be used by tools such as compilers, debuggers, profilers, and monitoring & management tools.
Javadoc doclets and taglets | J2SE 5.0 | Java SE 6 | Java SE 7 |
Java SE 8 |
Native Tools Interface | J2SE 5.0 | Java SE 6 | Java SE 7 |
Java SE 8 |
Debugging Interfaces | J2SE 5.0 | Java SE 6 | Java SE 7 |
Java SE 8 |
Byte Code Instrumentation | J2SE 5.0 | Java SE 6 | Java SE 7 |
Java SE 8 |
Monitoring and Management | J2SE 5.0 | Java SE 6 | Java SE 7 |
Java SE 8 |
Scripting For the Java Platform | Java SE 6 | Java SE 7 |
Java SE 8 | |
Standard Annotations | Java SE 6 | Java SE 7 |
Java SE 8 | |
Compiler Interfaces | Java SE 6 | Java SE 7 |
Java SE 8 | |
Dynamic Attach Interface | Java SE 6 | Java SE 7 |
Java SE 8 |
In addition to compiling Java programs, javac also implements several APIs that allow its components to be used by Java programs.
For more information, please see the :
Java Compiler Documentation: Java SE 6
See Also
The following documents provide information about garbage collection and related issues in the Java HotSpot virtual machine.
Document | Description |
---|---|
Memory Management Whitepaper [pdf] | Includes an overview of GC concepts, descriptions of the available collectors plus some basic tuning tips (more tuning details appear in the tuning guide, below). |
Describes how the default runtime compiler, garbage collector and heap size are selected. (Note that this document was written for the J2SE 5.0 release; however, the information also applies to Java SE 6.) | |
Garbage Collection Tuning | Provides details on the available garbage collectors, guidelines for selecting a collector when the default is not satisfactory and suggestions for improving performance by adjusting heap and garbage collection parameters. |
How to Handle Java Finalization's Memory-Retention Issues | Describes some of the pitfalls of finalization in Java and presents techniques for avoiding them. |
Garbage First ("G1") Garbage Collector | Provides an introduction to the new G1 garbage collector in the Java HotSpot VM. |
The XML technology in Java SE supports the W3C DOM APIs, parsing of XML documents, and transforming XML documents via XSLT.
XML Documentation:
The Java Naming and Directory Interface (JNDI) is part of the Java platform, providing applications based on Java technology with a unified interface to multiple naming and directory services. You can build powerful and portable directory-enabled applications using this industry standard.
Naming and directory services play a vital role in intranets and the Internet by providing network-wide sharing of a variety of information about users, machines, networks, services, and applications.
JNDI and Java EE Technologies
JNDI works in concert with other technologies in the Java Platform, Enterprise Edition (Java EE) to organize and locate components in a distributed computing environment.
JNDI Documentation: Java SE 8 | Java SE 7 | Java SE 6 | J2SE 5.0 | J2SE 1.4.2
The CORBA (Common Object Request Broker Architecture) implementation in the Java platform provides standards-based interoperability and connectivity. Java IDL enables distributed Web-enabled Java applications to transparently invoke operations on remote network services using the industry standard OMG IDL (Object Management Group Interface Definition Language) and IIOP (Internet Inter-ORB Protocol).
Java IDL technology is for CORBA programmers who want to program in the Java programming language based on interfaces defined in CORBA Interface Definition Language (IDL). This is "business as usual" CORBA programming, supporting Java technology in exactly the same way as other languages such as C++ or COBOL.
Java SE CORBA Documentation: Java SE 8 | Java SE 7 | Java SE 6 | J2SE 5.0 | J2SE 1.4.2
In addtion to Java IDL, Java SE also supports Java Remote Method Invocation over Internet Inter-ORB Protocol technology ("RMI-IIOP") This technology provides the ability to write CORBA applications for the Java platform without learning CORBA Interface Definition Language (IDL).
Java RMI-IIOP Documentation: Java SE 8 | Java SE 7 | Java SE 6 | J2SE 5.0
RMI over IIOP is based on two specifications of the Object Management Group: