anitsh / til

Today I Learn (til) - Github `Issues` used as daily learning management system for taking notes and storing resource links.
https://anitshrestha.com.np
MIT License
78 stars 11 forks source link

Java Techology Stack - JVM, JDK, JRE, JMC, JMX, JFR, JDBC #237

Open anitsh opened 4 years ago

anitsh commented 4 years ago

Java Advanced


Resources:

Java Programming Language #210

anitsh commented 3 years ago

JDK(Java Development Kit), JRE(Java Runtime Environment)

image image image

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.
anitsh commented 3 years ago

Java Virtual Machine (JVM)

image

Resource

anitsh commented 3 years ago

Java Mission Control(JMC)

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

anitsh commented 3 years ago

Java Management Extensions (JMX)

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.

anitsh commented 3 years ago

Java Flight Recorder(JFR)

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

anitsh commented 3 years ago

JDBC, Hibernate, JPA