

















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to the java programming language, including its history, key components like the java development kit (jdk), java virtual machine (jvm), and just-in-time (jit) compiler. It explains the differences between jdk, jre, and jvm, as well as the concepts of bytecode and machine code. Java is a class-based, object-oriented language that enables 'write once, run anywhere' (wora) functionality, allowing compiled code to work across platforms without recompilation. Developed by james gosling at sun microsystems in 1995 and later acquired by oracle corporation, java is widely used for desktop, web, and mobile app development due to its simplicity, robustness, security, and popularity in enterprise-level applications.
Typology: Summaries
1 / 25
This page cannot be seen from the preview
Don't miss anything!


















JAVA PROGRAMMING
Created in 1991, Java's journey is intriguing. Initiated by the Green team – James Gosling, Mike Sheridan, and Patrick Naughton of Sun engineers – Java had its first public release in 1996 (Java 1.0). Sun Microsystems offered free run-times on popular platforms. Arthur Van Hoff rewrote the Java 1.0 compiler in Java for precise compliance. Java 2 introduced multiple configurations for distinct platforms. In 1997, Sun Microsystems engaged the ISO standards body, eventually formalizing Java, albeit withdrawing later. Sun once provided most Java implementations free, alongside proprietary software. Sun's revenue generation included licensing for specialized products like the Java Enterprise System. On November 13, 2006, Sun released much of its Java virtual machine as free, open-source software. On May 8, 2007, Sun finished the process, making all of its JVM’s core code available under open-source distribution terms. History of Java
JAMES GOSLING Is a computer scientist and software engineer renowned for inventing the Java programming language, which has had a significant impact on the field of software development.
The Java Development Kit (JDK) is a cross-platformed software development environment that offers a collection of tools and libraries necessary for developing Java-based software applications and applets. It is a core package used in Java, along with the JVM (Java Virtual Machine) and the JRE (Java Runtime Environment). Beginners often get confused with JRE and JDK, if you are only interested in running Java programs on your machine then you can easily do it using Java Runtime Environment. However, if you would like to develop a Java-based software application then along with JRE you may need some additional necessary tools, which is called JDK. Java Development Kit
Java Development Kit
Components of JDK JavaFX : A framework for creating rich graphical user interfaces (GUIs) and multimedia applications. Security and Encryption Tools : Tools for managing security policies, generating cryptographic keys, and ensuring the security of Java applications. Sample Code and Templates : Examples and templates that help developers understand and implement Java programming concepts. Header Files and Native Libraries : Required for creating Java Native Interface (JNI) applications that interact with native code (e.g., C/C++). Archiver (jar) : As you mentioned, the archiver allows developers to package Java class files and resources into JAR files. Java Development Kit
Most Popular JDKs Oracle JDK: The most popular JDK and the main distributor of Java OpenJDK: Ready for use: JDK 15, JDK 14, and JMC Azul Systems Zing: E fficient and low latency JDK for Linux os Azul Systems: Based Zulu brand for Linux, Windows, Mac OS X IBM J9 JDK: For AIX, Linux, Windows, and many other OS Amazon Corretto: The newest option with the no-cost build of OpenJDK and long-term support. Java Development Kit
How JVM Architecture Works? JVM(Java Virtual Machine) acts as a run-time engine to run Java applications. JVM is the one that actually calls the main method present in a java code. JVM is a part of JRE(Java Runtime Environment). Java applications are called WORA (Write Once Run Anywhere). This means a programmer can develop Java code on one system and can expect it to run on any other Java-enabled system without any adjustment. This is all possible because of JVM. When we compile a .java file, .class files(contains byte-code) with the same class names present in .java file are generated by the Java compiler. This .class file goes into various steps when we run it. These steps together describe the whole JVM. JVM Architecture
Whats is JIT? Bytecode is a pivotal Java feature facilitating cross-platform execution. The process of converting bytecode to native machine language significantly impacts speed. Bytecodes need interpretation or compilation into machine instructions based on the architecture. Direct execution is possible if the architecture is bytecode-oriented, affecting execution speed. JIT compilers boost performance by compiling bytecode into native machine code during runtime through collaboration with the JVM. This replaces repetitive bytecode interpretation, reducing translation overhead and enhancing execution speed, unless methods are infrequently executed. JIT compilers optimize bytecode-to-native translation, involving tasks like data analysis, memory access reduction via register allocation, stack-to-register translation, and common sub- expression elimination. However, JIT optimization is constrained compared to static compilers due to execution overhead and limited program visibility, leading to a balance between optimization degree and execution time. Java JIT Compiler
Difference Between JIT and JVM The J VM (Java Virtual Machine) is the runtime environment that executes Java bytecode, ensuring cross-platform compatibility and providing runtime services. On the other hand, the JIT (Just-In-Time) compiler, found within the JVM, dynamically translates frequently executed bytecode into native machine code, enhancing execution speed by minimizing the need for repetitive interpretation and improving performance based on runtime behavior. JIT and JVM