(OOP1) History of Java

(OOP1) History of Java

(This is highly theoretical, just read through it once for MCQs.)
Java (originally “Oak”) was created to have a platform-independent language to embed software in various devices. It is useful because it can produce web applications and cross-platform apps.
It also performs multi-threaded operations and is both compiled and interpreted.

Java’s Impact on the Internet

Java Applets

  • An applet is a special kind of Java program that is designed to be transmitted over the Internet and automatically executed inside a Java-compatible web browser.
  • They were typically used to display data provided by the server, handle user input, or provide simple functions. In essence, they allowed some functionality to be moved from the server to the client.


  • Java’s ability to confine an application to its execution environment.
  • Concepts of abstraction and encapsulation.


  • The ability of bytecode to be executed anywhere through a JVM.
  • The cross-platform capabilities of Java, where the same application code must work on all computers.

The Bytecode

  • Bytecode is a highly optimized set of instructions designed to be executed by what is called the Java Virtual Machine (JVM), which is part of the Java Runtime Environment (JRE).
  • As the original JVM was designed as an interpreter for bytecode, Java is said to be both compiled and interpreted.
  • The bytecode is hence responsible for the portability and security of Java.
  • HotSpot provides a Just-In-Time (JIT) compiler for bytecode. When it is a part of JVM, selected parts of the bytecode are converted to executable code in real-time on piece-by-piece, demand basis.
(Since JDK 9, some Java environments also support ahead-of-time compilers for conversion prior to execution.)
Since JDK 9, the Java release schedule has changed to a feature release every six months, instead of every two years as it was before.

Serverlets: Java on the Server Side

  • It is a small program that executes on the server. They are used to create dynamically generated content that is then served to the client side.
  • The only requirement here is that the server should support JVM, for bytecode conversion and execution.

Java’s Buzzwords

  • Simple
  • Secure
  • Portable
  • Object-oriented
  • Robust
  • Multithreaded
  • Architecture-neutral
  • Interpreted
  • High performance
  • Distributed
  • Dynamic.

Java’s Keywords

notion image