Java Tutorial 2 – Java Virtual Machine

In order to write and execute a software program you need the following


1) Editor – To type your program into , a notepad could be used for this

2) Compiler – To convert your high language program  into native machine code

3) Linker – To combine different program files  reference in your main program together.

4) Loader – To load the files from your secondary storage device like Hard Disk , Flash Drive , CD into RAM for execution. The loading is automatically done when your execute your code.

5) Execution – Actual execution of the code which is handled by your OS & processor.

With this background, refer the following video & learn the working and architecture of the Java Virtual Machine.

Please be patient . Video will load in some time. If you still face issue viewing video click here

why is Java both interpreted and complied language ?

  • Programming languages are classifies as
  • Higher Level Language Ex. C++ , Java
  • Middle Level Languages Ex. C
  • Low Level Language  Ex Assembly
  • finally the lowest level as the Machine Language.

A compiler is a program which converts a program from one level of language to another. Example conversion of C++ program into machine code.

The java compiler is a convert’s high level java code into bytecode (which is also a type of machine code).

A interpreter is a program which converts a program at one level to another programming language at  the same level. Example conversion of Java program into C++

In Java , the Just In Time Code generator converts the bytecode into the native machine code which are at the same programming levels.

Hence java is both compiled as well as interpreted language.

why is Java slow ?

The two main reasons behind the slowness of Java are
Dynamic Linking = Unlike C, linking is done at run-time , every time the program is run in Java.

Run-time Interpreter =  The conversion of byte code into native machine code is done at run-time in Java which furthers slows down the speed

However, the latest version of Java have addressed the performance bottlenecks to a great extent.

Video Transcript