Java is an object-oriented programming language developed by Sun Microsystems since 1991 and officially released on May 23, 1995. The new programming language was originally called Oak (James Gosling) and was developed for consumer electronics, but was later renamed Java and began to be used for writing applets, applications, and server software.
Programs written in Java have a reputation for being slower and taking up more RAM than those written in C. However, the speed of execution of programs written in Java was significantly improved with the release in 1997-1998 of the so-called JIT compiler, version 1.1, in addition to other language features to support better code analysis (such as inner classes, StringBuffer class, simplified logic calculations, etc.). In addition, the Java virtual machine has been optimized - since 2000, the HotSpot virtual machine has been used for this purpose. As of February 2012, Java 7 code is about 1.8 times slower than code written in C.
Some platforms offer hardware runtime support for Java. For example, microcontrollers that execute Java code on hardware instead of a software JVM, and ARM-based processors that support Java bytecode execution through the Jazelle option.
- automatic memory management;
- advanced exception handling capabilities;
- a rich set of input-output filtering tools;
- a set of standard collections: array, list, stack, etc.;
- availability of simple tools for creating network applications (including those using RMI protocol);
- availability of classes, allowing to execute HTTP-requests and process the responses;
- built-in language tools to create multi-threaded applications, which were later ported to many languages (e.g., python);
- unified access to databases:
- at the level of individual SQL queries - based on JDBC, SQLJ;
- on the level of the concept of objects capable of being stored in the database - on the basis of Java Data Objects and Java Persistence API;
- generalization support (since version 1.5);
- support for lambdas, closures, and built-in functional programming features (starting with version 1.8);