Open anitsh opened 4 years ago
KEY | JDK | JRE |
---|---|---|
DEFINITION | JDK(Java Development Kit) is used to develop Java applications. JDK also contains numerous development tools like compilers, debuggers, etc. | JRE(Java Runtime Environment) is the implementation of JVM(Java Virtual Machine) and it is specially designed to execute Java programs. |
FUNCTIONALITY | It is mainly used for the execution of code and its main functionality is development. | It is mainly used for creating an environment for code execution. |
DEPENDENCY OF PLATFORM | It is platform-dependent. | It is also platform-dependent like JDK. |
TYPE OF TOOLS | Since JDK is responsible for the development purpose, therefore it contains tools which are required for development and debugging purpose. | On the other hand, JRE is not responsible for development purposes so it doesn’t contain such tools as the compiler, debugger, etc. Instead, it contains class libraries and supporting files required for the purpose of execution of the program. |
IMPLEMENTATION OF JDK AND JRE | JDK = JRE + other development tools. | JRE = JVM + other class libraries. |
JMC is a tool help finding problems in, and optimizing, programs running on the JVM in production.
https://docs.oracle.com/javacomponents/jmc-5-5/jmc-user-guide/intro.htm#JMCCI109 https://en.wikipedia.org/wiki/JDK_Mission_Control http://openjdk.java.net/projects/jmc
https://github.com/openjdk/jmc https://www.overops.com/blog/oracle-java-mission-control-the-ultimate-guide
https://en.wikipedia.org/wiki/Java_Management_Extensions https://docs.oracle.com/javase/tutorial/jmx/overview/index.html https://www.baeldung.com/java-management-extensions http://openjdk.java.net/groups/jmx/ https://www.baeldung.com/ls-course-start
It provides an easily configurable, scalable, reliable and more or less friendly infrastructure for managing Java application either locally or remotely.
The JMX technology provides a simple, standard way of managing resources such as applications, devices, and services. Because the JMX technology is dynamic, you can use it to monitor and manage resources as they are created, installed and implemented. You can also use the JMX technology to monitor and manage the Java Virtual Machine (Java VM).
The JMX specification defines the architecture, design patterns, APIs, and services in the Java programming language for management and monitoring of applications and networks.
https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/about.htm#JFRUH170 https://www.baeldung.com/java-flight-recorder-monitoring https://www.jetbrains.com/help/idea/java-flight-recorder.html https://www.infoq.com/news/2020/02/jfr-coming-to-openjdk-8/ https://medium.com/@chrishantha/using-java-flight-recorder-2367c01deacf https://en.wikipedia.org/wiki/JDK_Flight_Recorder https://daniel.mitterdorfer.name/talks/2017/Java%20Flight%20Recorder.pdf https://www.youtube.com/watch?v=NQULoG2pLa8:Profiling Java inside containers with ContainerJFR | DevNation Tech Talk
Java Advanced
Resources:
Java Programming Language #210