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]]

Tasks