Object Oriented: Everything (practically) is an object
Cross Platform: No need (usually) to rewrite code
Garbage Collected: No need to call delete (no memory worries... right?)
Built in Threading
Built in Security
Very good APIs
Newer, so designed with many modern features (Networking,
Threading, Security)
Good set of tools for developers
History:
(1995) Originally designed for set-top boxes and the like. Read about
the early history. Java was known as Oak at the time.
(1996) 1.0 release by Sun with support for applets, networking,
and security. Focus was on the web and applet based development
(1997) 1.1 release by Sun deprecated many of the poorly designed features
of the 1.0 release. Introduced JDBC, JavaBeans, RMI, Object Serialization
(1997) Servlets API released along with the Java Web Server
(1998) JavaServer Pages (JSP) technology released
(1998) Java 1.2 release (Java2) by Sun. Incorporates many newer
APIs developed by Sun such as Swing.
(1999) Sun breaks Java into three parts, J2SE, J2EE, and JSME
(2000) JDK 1.3 released. Includes many performance improvments
(2001) JDK 1.4 released. Includes built in support for XML, logging,
faster I/O, Built in security (Java Secure Socket, Java Cryptography,
and Java Authentication and Authorization Service)