Java (programming language)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Paradigm multi-paradigm: object-oriented, structured, imperative, generic, reflective
Designed by James Gosling and
Sun Microsystems
Developer Oracle Corporation
First appeared 1995
Stable release Java Standard Edition 8 Update 102 (1.8.0_102) / July 19, 2016; 13 months ago (2016-07-19)[1]
Typing discipline Static, strong, safe, nominative, manifest
OS Cross-platform (multi-platform)
License GNU General Public License / Java Community Process
Filename extensions .java, .class, .jar
Website For Java Developers
Major implementations
OpenJDK, many others
Generic Java, Pizza
Influenced by
Ada 83, C++, C#, Eiffel,[2] Generic Java, Mesa,[3] Modula-3,[4] Oberon, Objective-C, UCSD Pascal,[5][6] Smalltalk
Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala, Vala

Java is a programming language. It was first developed by James Gosling at Sun Microsystems, which is now a part of Oracle Corporation. It was released in 1995 as a part of Sun Microsystems' Java platform. The language has developed much of its syntax from C and C++. Java applications are usually compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM). Java is currently one of the most popular programming languages being used. It has about 10 million users.[7][8]

Java and JavaScript are not the same thing; in fact, they are not even related. JavaScript is a scripting language which is used mainly inside of web browsers.

Java[change | change source]

Java is object oriented. Unchanged C++ or C code will not work in Java, in most cases, though Java looks much like C and C++.

Java can run on many different operating systems. This makes Java platform independent. Java does this by making the Java compiler turn code into Java bytecode instead of machine code. This means that when the program is executed, the Java Virtual Machine interprets the bytecode and translates it into machine code.

Java concepts[change | change source]

Java was developed to achieve 5 main goals. These are:[9][10]

  • It should be simple, object-oriented, distributed and easy to learn.
  • It should be robust and secure.
  • It should be independent of a given computer architecture or platform.
  • It should be very performant.
  • It should be possible to write an interpreter for the language. The language should also support parallelism and use dynamic typing.

Java Platform[change | change source]

The Java platform refers to a group of software products from Sun Microsystems. The platform is used to develop and run Java programs. The platform includes the execution engine (called a Java Virtual Machine) that allows Java programs to do the same thing on different computer systems.

This capability of being able to develop software on one platform and running it on other platforms is called "cross-platform capability".

Java Program Example[change | change source]

An example Hello java program:

 * This is a simple program in Java. 
 * It shows "Hello!" on the screen. 
class Hellojavaprogram {
    public static void main(String[] args) 

Types of Java[change | change source]

There are many types of Java programs which run differently:

  • Java Applet - small program written in Java and that is downloaded from a website and executed within a web browser on a client computer.
  • Application - executes on a client computer. If online, it has to be downloaded before being run.
  • JAR file (Java ARchive) - used to package Java files together into a single file (almost exactly like a .zip file).
  • Servlet - runs on a web server and helps to generate web pages.
  • Swing application - used to build an application that has a GUI (windows, buttons, menus, etc.).
  • EJB - runs on a web server and is used to develop large, complex websites.

Benefits[change | change source]

Java is commonly used to teach students how to program as a first language, yet is still also used by professionals.

  • Java requires that each variable be initialized. Some older languages such as C, allow variables to go uninitialized, which can cause random failures with mysterious bugs.
  • Java requires that each method that declares a return type, always return a value. This also prevents bugs.
  • Java comes with a large set of classes and methods, the Java API that can be used without having to develop as much code "from scratch".
  • Unlike C, Java primitive types, such as int, are always the same size in the number of bits which helps achieve cross-platform compatibility.
  • Java used to be thought of as being slower than C, but that's less important in recent years with computers being faster.
  • Java has exception-handling that requires a programmer to handle error-conditions such an Input/Output errors.
  • Code compiled on one Java platform can be run on other platforms that support Java without modification of either the source-code nor the byte-code. For example, this means that a person can make a Java program for a Windows computer and have it run a Linux computer or a Mac computer.

Criticism[change | change source]

The programming language Java has also been criticized. Some of the criticisms are:

  • Generics were added to Java in such a way so that existing code would still keep running. This was done using type erasure. This means that during compilation, the actual type of a generic argument is removed. This can lead to the Java interpreter to behave in unexpected ways at times.
  • Java has no unsigned integer types, which languages like C heavily use. This also means that it is impossible to directly exchange numeric data between C and Java programs. Cryptography also relies on such types to some extent; this makes it more difficult to write applications that use cryptography in Java.
  • The IEEE has defined a standard for floating-point arithmetic, IEE 754. Java only supports a part of the features of this standard.

References[change | change source]

  1. "Java 7 and Java 8 Releases by Date". Retrieved 30 September 2016.
  2. Gosling, James; and McGilton, Henry (May 1996). "The Java Language Environment".
  3. Gosling, James; Joy, Bill; Steele, Guy; and Bracha, Gilad. "The Java Language Specification, 2nd Edition".
  4. "The A-Z of Programming Languages: Modula-3".;1422447371;pp;3;fp;4194304;fpid;1. Retrieved 2010-06-09.
  5. TechMetrix Research (1999). "History of Java". Java Application Servers Report. "The project went ahead under the name "green" and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code"
  6. "A Conversation with James Gosling – ACM Queue". 2004-08-31. Retrieved 2010-06-09.
  7. "Programming Language Popularity". 2009. Retrieved 2009-01-16.
  8. "TIOBE Programming Community Index". 2009. Retrieved 2009-05-06.
  9. James Gosling, Henry McGilton: The Java Language Environment. 1.2 Design Goals of the Java Programming Language. Mai 1996.
  10. The Java Language: An Overview. James Gosling, February 1995

Other websites[change | change source]