Java



Java “The Language of Internet”

Despite strong competitors like JavaScript, Python, C#, C++… Billions of server computers, desktop computers, devices (meters, TVs, smarphones, blu-ray players…) and smart cards use Java as core programming language. Java evolved with key versions: Java (1995), Java 2 (java.beans…), Java 5 (enumerated types, generics…), Java 6, 7, 8 (streams…), 9 (modules…) 10, 11…

Java positioning in programming languages competition

First rose Pascal, CoBOL, ForTran, BASIC (Beginner's All-purpose Symbolic Instruction Code)… and later on… C, C++, Java, JavaScript, Python… The way languages popularity is nowadays measured depends upon data extracted from the Web. For example, the TIOBE Index proposes a ranking of languages.

Ranking in 2025

Most wanted…

Energy efficiency

Styles of programming

Rule(s)

Java Virtual Machine -JVM-

Core and extended features of Java depend upon a Java Virtual Machine -JVM- version. For example, “streams” are supported from Java ver. 8. Picture shows JVM 8 that embeds a lot of technologies like SQL, XML, Web… whose functional interest in a specific app. is debatable.

Starting from Java 9 and next releases (Java 10, 11…), new syntax is introduced (e.g., module or var) while APIs evolve and/or disappear from the kernel of lastest JVM version. This creates inter-release compatibility disruption. With respect to this trend, Java 11 is recognized as a key step to migrate from Java 8 (see also or ).

Novelties are commented on several Web sites, say, Java 10 , Java 11 , etc.

Java 852
Java 953
Java 1054
Java 1155
Java Settings

macOS

Current shell
echo $0
Java Virtual Machine -JVM- location command
/usr/libexec/java_home -V
Display (example)
Matching Java Virtual Machines (3):
    18.0.1.1 (x86_64) "Oracle Corporation" - "Java SE 18.0.1.1" /Library/Java/JavaVirtualMachines/jdk-18.0.1.1.jdk/Contents/Home
    1.8.333.02 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_333 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-18.0.1.1.jdk/Contents/Home
Active JVM (empty ⇒ very last version is chosen)
echo $JAVA_HOME
Changing default JDK version (current session)
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_333`
Active JVM (note that Java 8 does not support --version)
java -version
Java compiler
javac -version
Java packager
jar -version

Ubuntu

Java Virtual Machine -JVM- location command (current JVM)
/usr/lib/jvm
Java Virtual Machine -JVM- location command (other JVMs)
update-java-alternatives -l
Changing default JDK version
[sudo] update-java-alternatives config java

Windows (see also )

echo $env:java_home
Java 9 as key disruption

Java 9 key enhancement is the introduction of modules (module keyword) in order to rationalize the overall core software functionality present in the JVM at execution time. JVM 9 is then decomposed into modules to avoid massive code functionality, which is not required at all by any user-defined app. To that extent, Java 9-based design of an app. arises from the “module” principle in the sense that developers have to isolate their code in execution-independent components (i.e., user-defined modules).

The other notable extension is the availability of a Java source interpreter known as Java Shell -JShell-.

Rule(s)

Java SE 11 Developer certification (exam number 1Z0-819)

Technologies

Exercises
  1. Barcode
  2. N°INSEE
  3. Lotto!
  4. Horner
  5. Palindrome
  6. Currency & Currency++
  7. Université