What is Java?

"Java: A simple, object-oriented, distributed, interpreted, robust, secure, arhitecture neutral, portable, high-performance, mutlithreaded, and dynamic language." Sun Java Language White Paper.

Simple:

Like C ++ ! (Or maybe Object Pascal.)  It is a language only a programmer could love.

Object-Oriented:

Even variables (such as Double x) can have methods (such as toString).

Distributed:

Networks connectivity is built in including the ability to access remote objects on the Internet.

Robust:

Java is strongly typed language. No pointers. Garbage collection when variables go out of scope.

Secure:

Sandbox model. No access to local resources (for applets) such as disk drives or memory.

Architecture Neutral and Portable

Applications are written to an abstract machine and compiled into intermediate Byte code. This code is then turned into machine code by the Java interpreter on the local machine.

High Performance?

Not yet. Order of magnitued slower than C ++ or Fortran but this may change (a bit) with JIT compiler technology.

MultiThreaded

Similar to mutlitasking but the threads run in the same address space and have access to the same variables.

Dynamic

Dynalically link classes at run time. Allows a class to be updated without changing the appication. Classes are loaded as needed.