Home » ATG & Java, Tech Corner

The Evolution Of Java

17 April 2010 3 Comments Posted By:Dileep
  • Smalltalk, the first object-oriented language, had a major influence on the design of Java.
  • Key founders – James Gosling, Patrick Naughton, Chris Warth, Ed Frank, & Frank Sheridan.
  • Was initially called Oak. Got renamed Java in 1995.

Design Goals

  • Was originally meant to be a platform-neutral language for embedded-software in devices.
  • The goal was to move away from platform and OS-specific compilers.
  • The language could be used to produce platform-neutral code.

Role of WWW

  • The World Wide Web played a catalytic role in the evolution of Java.
  • The emergence of the WWW propelled the rise of Java because the WWW demanded portability.
  • The scope of the language therefore widened from embedded controllers to the Internet.
  • Java made the Internet host of dynamic self-executing programs.
  • Applets are dynamic self-executing programs that Java made possible.
  • It can react to user input, and dynamically change the content of Web pages in which they are embedded.

The Java Architecture

  • Bytecode is the key to both security and portability.
  • Write source code.
  • Compile to bytecode contained in .class files.
  • Bytecode is a highly optimized set of instructions.
  • Bytecode is executed by the Java Virtual Machine(JVM).
  • The JVM is an interpreter for bytecode.

Java Virtual Machine – JVM

  • The JVM will differ from platform to platform, and is, platform-specific.
  • All versions of JVM interpret the same Java bytecode.Interpreted code runs much slower compared to executable code.
  • The use of bytecode enables Java runtime system to execute programs much faster.
  • Java facilitates on-the-fly compilation of bytecode into native code.
  • When a program is interpreted, it generally runs substantially slower than it would run if compiled to executable code. However, with Java, the difference between the two is not so great. The use of bytecodes makes this possible.

The Adaptive Optimizer

  • Another type of execution engine is the adaptive optimizer.
  • Identifies the most heavily used areas of code, and optimizes these.
  • The rest of the code, which is not heavily used, remain as bytecodes which the virtual machine continue to interpret.

The Class Loader

  • The class loader is that part of the VM that is important from a security standpoint, and for network mobility.
  • The class loader loads a compiled Java source file(.class files represented as bytecode) into the Java Virtual Machine(JVM).
  • The bootstrap class loader loads classes, including the classes of the Java API, in some default way from the local disk.
  • Bootstrap class loader – also called primordial class loader or default class loader.

The Java .class file – The Java class file helps make Java suitable for networks mainly in the areas of – platform independence and network mobility.

The Java language allows you to write programs that take advantage of many software technologies – object-orientation, multithreading, structured error-handling, garbage collection, dynamic linking, dynamic extension.

The Java Buzzwords

  • Simple – Small language, large libraries. Small interpreter(40 k), but large runtime libraries(175 k).
  • Object-Oriented – Supports encapsulation, inheritance, abstraction, and polymorphism.
  • Distributed – Libraries for network programming. Remote Method Invocation.
  • Architecture neutral – Java bytecodes are interpreted by the JVM.
  • Secure – Difficult to break Java security mechanisms. Java Bytecode verification. Signed Applets.
  • Portable – Primitive data type sizes and their arithmetic behavior specified by the language. Libraries define portable interfaces.
  • Mutithreaded – Threads are easy to create and use.
  • Dynamic – Finding Runtime Type Information is easy.

Functions

  • Functions are the building blocks of a Java program.
  • main() is the first function to be executed.
  • return_type function_name(argument list)
  • Prototyping required but variable name is not necessary.

public class Hello {
public statis void main(String [] args) {
System.out.println(“Hello World”);
}
}

Compilation – javac Hello.java
Execution – java Hello

A static member of a class is independent of instances of the class, and a static method can therefore be invoked without creating an object of the class.
The main() is declared as public to ensure it’s visibility outside it’s class, i.e, to the Java Runtime Environment.

Data Types

  • Integer – int, long, short, byte
  • Character – char, String
  • Floating Point – float, double
  • Boolean
  • A variable is an item of data named by an identifier.
  • Scope- The section of code where the variable’s simple name can be used is the variable’s scope.
  • The Java programming language has two categories of data types – primitive and reference. A variable of primitive type contains a value.
  • Java is a strongly typed language.
  • The Java compiler enforces type checking of each assignment made in a program at compile time.
  • If the type checking fails, then a compile-time error is issued.
  • Strong typing facilitates two functions of the same name to coexist.
  • A function signature constitutes the function name, the number, order and the data type of the arguments.
  • Such functions are said to be overloaded.

The final keyword – Mechanism of telling the compiler that a piece of data is “constant”.

Related posts:

  1. C Language – Fundamentals
  2. Simple Notes on Java Concepts
  3. Pointers
  4. Functions
  5. Arrays

3 Comments »

  • ashwini said:

    The above information about java and its evoluation is really chrisp and easy to mind..

  • Raju said:

    hi your ppts were informative .still i need the ppts for JDBC,servlets,jsps ,struts and springs form your website

  • Raju said:

    hi there is a mistake in the name of the scientist instead of mike sheridan you made Frank Sheridan.

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>