Java Technology Overview

Java Technology Overview

Java Technology Overview Péter Jeszenszky Faculty of Informatics, University of Debrecen [email protected] Last modified: February 14, 2021 Terminology ● Java (programming language) ● Java Virtual Machine (JVM) ● Java Platform ● Java Platform, Standard Edition (Java SE) ● Java Platform, Enterprise Edition (Java EE) ● Java Runtime Environment (JRE) ● Java Development Kit (JDK) ● OpenJDK ● Java Community Process (JCP) ● Java Specification Request (JSR) ● JDK Enhancement Proposal (JEP) 2 Java (Programming Language) (1) ● The language was developed at Sun Microsystems in the 90s. The company was acquired by Oracle in 2009. – The father of the language: James Gosling http://nighthacks.com/jag/blog/400/ ● Website: https://www.oracle.com/java/ 3 Java (Programming Language) (2) ● The language can be characterized by the following buzzwords: – Simple – Object oriented – Distributed – Multithreaded – Dynamic – Architecture neutral – Portable – High performance – Robust – Secure ● See: The Java Tutorials – Trail: Getting Started – Lesson: The Java Technology Phenomenon – About the Java Technology https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html 4 Java (Programming Language) (3) ● A general-purpose, concurrent, class-based, object-oriented language. ● Related to C and C++ but is organized rather differently, with a number of aspects of C and C++ omitted and a few ideas from other languages included. ● Strongly and statically typed. ● Java programs are normally compiled into a machine- independent byte code representation that is intended to be executed by virtual machines. ● See: The Java Language Specification, Java SE 11 Edition https://docs.oracle.com/javase/specs/ 5 Java (Programming Language) (4) ● A multi-paradigm programming language that supports the following paradigms: – Functional (introduced in Java SE 8) – Generic – Imperative – Object oriented (class-based) – Concurrent – Structured 6 Java (Programming Language) (5) ● The latest version is Java 15. ● Language specification: – James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley, Daniel Smith. The Java Language Specification, Java SE 15 Edition. September 2020. https://docs.oracle.com/javase/specs/ 7 Java (Programming Language) (6) ● According to the Tiobe Index, it is currently the second most popular programming language after C. – See: ● TIOBE Index https://www.tiobe.com/tiobe-index/ ● TIOBE Programming Community Index Definition https://www.tiobe.com/tiobe-index/programming-languages-defi nition/ ● See also: – PYPL PopularitY of Programming Language https://pypl.github.io/PYPL.html 8 Java Virtual Machine (1) ● An abstract computing machine with an instruction set that knows nothing of the Java programming language,only of a particular binary format, the class file format. – A class file contains Java virtual machine instructions (or bytecodes) and a symbol table, as well as other ancillary information. ● The Java Virtual Machine is the cornerstone of the Java platform. It is the component of the technology responsible for its hardware- and operating system-independence, the small size of its compiled code, and its ability to protect users from malicious programs. ● Specification: – Tim Lindholm, Frank Yellin, Gilad Bracha, Alex Buckley. The Java Virtual Machine Specification, Java SE 11 Edition. 2018. https://docs.oracle.com/javase/specs/ 9 Java Virtual Machine (2) ● Free and open source implementations: – HotSpot (operating system: cross-platform; license: GPLv2) https://openjdk.java.net/groups/hotspot/ ● The virtual machine of OpenJDK. – Eclipse OpenJ9 (operating system: AIX, Linux, macOS, Windows; license: Apache License 2.0/Eclipse Public License 2.0) https://www.eclipse.org/openj9/ https://github.com/eclipse/openj9 ● A virtual machine originally developed by IBM (J9). ● Is an alternative to the HotSpot virtual machine for OpenJDK. ● Non-free implementations: – PTC Perc (operating system: Linux) https://www.ptc.com/en/products/developer-tools/perc – Zing (operating system: Linux) https://www.azul.com/products/zing/ 10 Java Platform (1) ● A platform is the hardware or software environment in which a program runs. – Examples: an embedded system, operating system, web browser, … ● A software-only platform that runs on top of other hardware- based platforms and has the following two components: – The Java Virtual Machine (JVM) – The Java Application Programming Interface (API) ● See: The Java Tutorials – Trail: Getting Started – Lesson: The Java Technology Phenomenon – About the Java Technology https://docs.oracle.com/javase/tutorial/getStarted/intro/definition. html 11 Java Platform (2) ● Java platforms: – Java Card https://www.oracle.com/java/technologies/java-card- tech.html – Java Platform, Enterprise Edition (Java EE) https://www.oracle.com/java/technologies/java-ee-gl ance.html – Java Platform, Micro Edition (Java ME) https://www.oracle.com/java/technologies/javameov erview.html – Java Platform, Standard Edition (Java SE) https://www.oracle.com/java/technologies/java-se-gl ance.html 12 Java SE (1) ● A platform for developing and deploying Java applications on desktops and servers. – Many identify the Java SE API as the Java programming language. ● Website: https://www.oracle.com/java/technologies/java-s e-glance.html 13 Java SE (2) ● The latest LTS version is Java SE 11 (18.9) released on September 25, 2018. – See: Oracle Boosts Software Development Productivity with New Java Release https://www.oracle.com/corporate/pressrelease/java-11-092518.html ● Specification: – JSR 384: Java SE 11 (18.9) https://www.jcp.org/en/jsr/detail?id=384 ● Documentation: https://docs.oracle.com/en/java/javase/11/ – Migration: Oracle JDK Migration Guide, Release 11 https://docs.oracle.com/en/java/javase/11/migrate/ – API documentation: https://docs.oracle.com/en/java/javase/11/docs/api/index.html 14 Java SE (3) ● Its current version is Java SE 15 released on September 15, 2020. – See: Oracle Announces Java 15 https://www.oracle.com/news/announcement/oracle-announces-java -15-091520.html ● Specification: – JSR 390: Java SE 15 https://www.jcp.org/en/jsr/detail?id=390 ● Documentation: https://docs.oracle.com/en/java/javase/15/ – Migration: Oracle JDK Migration Guide, Release 15 https://docs.oracle.com/en/java/javase/15/migrate/ – API documentation: https://docs.oracle.com/en/java/javase/15/docs/api/ 15 Java SE (4) ● The next version is Java SE 16 implemented by JDK 16. – JDK 16 will be released on March 16, 2021. ● See: https://openjdk.java.net/projects/jdk/16/ ● Specification: – JSR 391: Java SE 16 https://www.jcp.org/en/jsr/detail?id=391 ● API documentation: https://download.java.net/java/early_access/jdk16 /docs/api/ 16 Java SE (5) ● The two types of Java SE implementations: – Java Runtime Environment (JRE) – Java Development Kit (JDK) ● Starting with JDK 11 there is no separate JRE! 17 Java SE (6) Source: Java Platform Standard Edition 8 Documentation https://docs.oracle.com/javase/8/docs/ 18 Java Runtime Environment (JRE) (1) ● Includes a Java virtual machine, class libraries, and other files that support the execution of programs written in the Java programming language. ● Implementations: – OpenJDK (operating system: Linux, macOS, Windows; license: GPLv2 + Classpath Exception) https://openjdk.java.net/ https://github.com/openjdk/jdk – Oracle JRE (operating system: Linux, macOS, Solaris SPARC, Windows; license: Oracle Technology Network License Agreement for Oracle Java SE) https://www.oracle.com/java/technologies/javase-jre8-downloa ds.html 19 Java Runtime Environment (JRE) (2) ● Server JRE: – A JRE for running server-side applications. ● Contains both JRE and JDK tools but is smaller in size compared to a JDK. – See: ● Aurelio Garcia-Ribeyro. Understanding the Server JRE. July 27, 2017. https://blogs.oracle.com/java-platform-group/understandin g-the-server-jre ● Server JRE (Java SE Runtime Environment) 8 Downloads https://www.oracle.com/java/technologies/javase-server-jr e8-downloads.html 20 Java Development Kit (JDK) (1) ● A development environment for building applications and components using the Java programming language. – Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications. ● See: Oracle JDK 11 Documentation – Java Platform, Standard Edition – Tools Reference https://docs.oracle.com/en/java/javase/11/tools/ 21 Java Development Kit (JDK) (2) ● Non-free implementations: – Oracle JDK (operating system: Linux, macOS, Solaris SPARC, Windows) https://www.oracle.com/technetwork/java/javase/do wnloads/index.html ● License: Oracle Technology Network License Agreement for Oracle Java SE https://www.oracle.com/downloads/licenses/javase-licens e1.html – Zulu Enterprise (operating system: Linux, macOS, Solaris, Windows) https://www.azul.com/products/zulu-enterprise/ 22 Java Development Kit (JDK) (3) ● Free and open source implementations: – OpenJDK (operating system: Linux, macOS, Windows; license: GPLv2 + Classpath Exception) https://openjdk.java.net/ – Oracle OpenJDK (operating system: Linux, macOS, Windows; license: GPLv2 + Classpath Exception) https://jdk.java.net/ – AdoptOpenJDK (operating system: Linux, macOS, Windows, AIX, Solaris; license: GPLv2 + Classpath Exception) https://adoptopenjdk.net/ – Amazon Corretto (operating system: Amazon Linux 2, macOS, Windows; license: GPLv2 + Classpath Exception) https://aws.amazon.com/corretto/ – Zulu (operating system: Linux, macOS, Windows; license: GPLv2 + Classpath Exception) https://www.azul.com/downloads/zulu/ 23 Java Development Kit (JDK)

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    108 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us