Java
{{language |exec=bytecode |site=http://www.oracle.com/technetwork/java/ |gc=yes |parampass=value |safety=safe |express=explicit |compat=nominative |checking=static |strength=strong |tags=java, java5 |hopl id=2131 |LCT=yes |bnf=http://www.cui.unige.ch/db-research/Enseignement/analyseinfo/JAVA/BNFindex.html}} {{language programming paradigm|Object-oriented}} {{language programming paradigm|Imperative}} {{language programming paradigm|generic}} {{language programming paradigm|reflective}}[[runs on vm::java virtual machine| ]] The '''Java''' programming language, developed by [[Sun Microsystems]], is a language aimed at allowing "high-performance", virtual application development.
Java source files (.java files) are typically [[Compiler|compiled]] to an intermediate [[bytecode]] (all platform) executable (.class files) and executed by a [[Java Virtual Machine]]. Most modern JVMs further compile the bytecode into your processor's native machine code during execution. This native code translation is mostly done via a [[Just-In-Time|JIT]] compiler that is built in the JVM. Some Java compilers (such as [[GCJ]]) can compile Java code to native machine code ahead-of-time rather than just-in-time.
The primary benefits of Java are:
- Cross-[[platform]] (Write Once, Run Anywhere (if all of the libraries are ported))
- Comprehensive class library (which is thoroughly [http://www.oracle.com/technetwork/java/javase/documentation/index.html documented])
- [[garbage collection|Automatic memory management]]
- Large user community
- Well supported by the [[open source]] community and commercial industry ([[Sun Microsystems|Sun]], [[IBM]], [[Oracle]], HP, BEA, [[Apple Inc]], etc.)
Java is used in a variety of environments including desktop applications, embedded device (PDA and wireless phone) applications, server-side web page serving applications (as [[Java Server Pages|JSP]]), and applets embedded in web pages.
There are a variety of arguments regarding Java's performance compared to other popular languages like [[C++]]. Some come to the conclusion that the programmer's choices make a bigger difference on performance in each language. Most show that each language is better than the other at specific types of operations (e.g. Java for memory allocation, C++ for numerical operations). An extensive summary of comparisons between Java and C++ can be found [[wp:Comparison of Java and C++|on Wikipedia]].
According to some [http://www.tiobe.com/tpci.htm sources], Java is currently one of the most popular programming languages in the world.
Useful Java links:
- [http://www.java.com java.com]
- [http://www.java.net java.net]
- [http://openjdk.java.net OpenJDK]
==Todo== [[Reports:Tasks_not_implemented_in_Java]]