Java Overview

What is Java?

Java is a mainstream programming language which is usually compiled to byte code and then executed in a virtual machine (JVM) with help of JIT compiler. In theory it should be faster than traditional languages since program is prepared for execution directly on machine where it is supposed to be running, so JIT can use any special instructions this particular machine supports.

Java is similar to C language with some major exceptions: it does not support pointers and it supports garbage collection (automatic memory release) plus object-oriented programming (OOP - which is different than in C++).

Why Java?

Java supports OOP but is not as complicated as C++. This is mainly because of support for garbage collection and for example lack of multi-base inheritance. Java is easier to learn than C++, supports GUI in the standard (Swing, JavaFX), can be executed without any compilation or modification on every platform which has JVM installed (exception: Android).

Java is also very useful for scientific programming because of it's portability and high performance in long runs.

Why not Java?

There are some more advanced languages than Java: Scala, which has more advanced language features (especially for functional programming). There are some more dynamic languages better suitable for web development: Groovy, Jython - port of Python for JVM. There is also JavaScript which is a king on client side of web development. Now thanks to node.js this language is also supported on server side.

Using Java can be difficult or impossible when you try to implement low-level software: OS, kernel, drivers, interrupt handlers. For this purpose using C probably would be better. Java can be also not suitable for some mixed-language architectures where usually C/C++ play a role of common platform.

Java does not support unsigned integer data type and some algorithms require it. There are several workarounds for this problem - see Unsigned integer.

Release history

Year Description Selected features
1996 Java 1.0 First public release
1997 Java 1.1 First stable release
1998 Java 1.2 / Java 2 JavaBeans, JDBC, RMI, JIT, reflection, Java Plug-in, Collections
2000 Java 1.3 / Java 2 (still) JNDI, HotSpot, JavaSound
2002 Java 1.4 / Java 2 assert, Perl regular expressions, IPv6, NIO, logging API
2004 Java 1.5 / 5.0 / Java 5 generics, enumerations, autoboxing, annotations, static imports
2006 Java 6 (1.6) scripting support, JAX-WS, StAX, JDBC 4.0,
2011 Java 7 strings in switch, try with resources, diamond operator
2014 Java 8 lambdas, annotations on types, date & time API

See also

1) Java (programming language) -

2) About the Java Technology

3) Java version history -

4) Unsigned int considered harmful for Java