Java programming language
High level, bytecode compiled, object-oriented
Java is a mature, powerful, industrial-grade, and extremeliy popular programming language with a rich, extensive, and well-written standard library as well as a plethora of opensource libraries for additional, readily reusable functionality. Java may be found in everything from native phone applications to server software running in the Cloud.
- Commonly used for
- Android applications
- servers
- commandline applications
- web applications (server-side logic)
- data processing pipelines
- desktop GUIs
- web crawling
- database interoperation / querying
- others
- Rarely used for
- web app UIs (possible with GWT, but not particularly common or recommended)
- iOS apps (parts can be written in Java by using j2objc, but Obj-C or Swift is preferred/needed for iOS apps)
- OS kernels (infeasible on typical hardware or without significant, non-standard extensions/modifications to the language)
- drivers
- other systems software
- Execution and distribution
- bytecode compiled; ordinarily, code is translated to platform-independent byte code, which is distributed to all target CPU architectures; this bytecode is then just-in-time (JIT) or ahead-of-time (AOT) compiled to native instructions for the given target architecture such that there may be a mix of code that is executed directly by the CPU and bytecode that is executed indirectly by a program called an "interpreter" or "virtual machine"
- Memory management
- automatic (garbage collected)
- The Java Tutorials for the official tutorials on the Java programming language
- Java 7 API for the standard library reference
- Android API Reference for the libraries provided on Android
- Google App Engine Java for writing a web server in Java on App Engine