The Wayback Machine - http://web.archive.org./web/20120221160756/http://wn.com:80/Java_programming_language_
Tuesday, 21 February 2012
fullscreen
Loading suggestions ...

Make changes yourself !



Advanced Topics In Programming Languages: Closures For Java
  • Order:
  • Duration: 1:55:05
  • Uploaded: 09 Oct 2007
Google Tech Talks January 17, 2007 ABSTRACT We propose to add Closures to the Java Programming Language. Closures simplify the use of APIs that rely on anonymous class instances, such as the concurrency APIs and callbacks. More importantly,...
http://web.archive.org./web/20120221160756/http://wn.com/Advanced Topics In Programming Languages: Closures For Java
Advanced Topics in Programming Languages: The Java Memory...
  • Order:
  • Duration: 57:22
  • Uploaded: 09 Oct 2007
Google Tech Talks March 21, 2007 ABSTRACT This talk describes the Java Memory Model and how it affects the ways concurrent software should be written. Recent changes to the memory model, which were incorporated into JDK 5, redefined the sem...
http://web.archive.org./web/20120221160756/http://wn.com/Advanced Topics in Programming Languages: The Java Memory...
Java Programming Tutorial Session 1 Introduction to oop and Java Programming for Beginners Part 1
  • Order:
  • Duration: 9:51
  • Uploaded: 28 Mar 2010
The power point of this video can be downloaded from java9s.com This video is part of Java Tutorial Series from java9s.com. In this video i have given the introduction to object oriented programming and I gave a good introduction to java pr...
http://web.archive.org./web/20120221160756/http://wn.com/Java Programming Tutorial Session 1 Introduction to oop and Java Programming for Beginners Part 1
Advanced Topics in Programming Languages: Java Puzzlers,...
  • Order:
  • Duration: 1:13:53
  • Uploaded: 09 Oct 2007
Google Tech Talks July 23, 2007 ABSTRACT Java Puzzlers, Episode VI: The Phantom-Reference Menace/Attack of the Clone/Revenge of the Shift. Josh Bloch and special guest star Bill Pugh present yet another installment in the continuing saga of...
http://web.archive.org./web/20120221160756/http://wn.com/Advanced Topics in Programming Languages: Java Puzzlers,...
The Bloated Java Programming Language
  • Order:
  • Duration: 3:28
  • Uploaded: 13 Oct 2010
Lunchroom conversation between two Eclipse IDE enthusiasts talking about their favorites among the tens of thousands of Java classes that make up the IDE. At last, the bloated Java classes dare speak their names!...
http://web.archive.org./web/20120221160756/http://wn.com/The Bloated Java Programming Language
Larry Wall: 5 Programming Languages Everyone Should Know
  • Order:
  • Duration: 6:13
  • Uploaded: 13 Jun 2011
Java is "heavyweight, verbose, and everyone loves to hate it," but Wall still thinks you should know it....
http://web.archive.org./web/20120221160756/http://wn.com/Larry Wall: 5 Programming Languages Everyone Should Know
Evolution of Programming Languages : Java Tutorial 5
  • Order:
  • Duration: 2:16
  • Uploaded: 12 Sep 2011
www.javatutorialhub.com This tutorial looks into the Evolution of Programming Languages over the years and explains the fundamentals of Unstructured ,Structured and Object Oriented Programming...
http://web.archive.org./web/20120221160756/http://wn.com/Evolution of Programming Languages : Java Tutorial 5
Java Programming Tutorial Session 1 Introduction to oop and Java Programming for Beginners Part 2
  • Order:
  • Duration: 9:43
  • Uploaded: 29 Mar 2010
The power point of this video can be downloaded from java9s.com This video is part of Java Tutorial Series from java9s.com. In this video i have given the introduction to object oriented programming and I gave a good introduction to java pr...
http://web.archive.org./web/20120221160756/http://wn.com/Java Programming Tutorial Session 1 Introduction to oop and Java Programming for Beginners Part 2
Java Programming Basics
  • Order:
  • Duration: 8:31
  • Uploaded: 12 Apr 2009
If you are interested in learning a computer language, then I recommend JAVA. This language is one of the most commonly used languages in the world and can be fitted to almost any application. In this tutorial I will show the installation a...
http://web.archive.org./web/20120221160756/http://wn.com/Java Programming Basics
Java Programming Tutorial 1: What is Java Platform?
  • Order:
  • Duration: 6:08
  • Uploaded: 24 Aug 2011
www.javatutorialhub.com This video introduces the Java platform , and explains why Java is a platform as well a programming language...
http://web.archive.org./web/20120221160756/http://wn.com/Java Programming Tutorial 1: What is Java Platform?
Effective Java Programming with Joshua Bloch
  • Order:
  • Duration: 9:31
  • Uploaded: 24 Oct 2007
Joshua Bloch, Chief Java Architect at Google, presents his Effective Java™ Programming Language Guide, the most practical, authoritative guidelines available for writing efficient, well-designed programs for the Java platform. Joshua ...
http://web.archive.org./web/20120221160756/http://wn.com/Effective Java Programming with Joshua Bloch
Java Programming: Primitive Variables and Strings
  • Order:
  • Duration: 12:56
  • Uploaded: 19 Oct 2010
www.learntoprogram.tv Follow me on Google+ www.MarkLassoff.com Follow me on Twitter @mlassoff Variables are a central concept in all programming languages. In Java, because the language is strongly typed, variable typing is an important con...
http://web.archive.org./web/20120221160756/http://wn.com/Java Programming: Primitive Variables and Strings
Google Tech Talks January 17, 2007 ABSTRACT We propose to add Closures to the Java Programming Language. Closures simplify the use of APIs that rely on anonymous class instances, such as the concurrency APIs and callbacks. More importantly,...
Ad­vanced Top­ics In Pro­gram­ming Lan­guages: Clo­sures For Java
115:05
Java Pro­gram­ming Lan­guage Fun­da­men­tals
10:46
Ad­vanced Top­ics in Pro­gram­ming Lan­guages: The Java Mem­o­ry...
57:22
Java Pro­gram­ming Tu­to­ri­al Ses­sion 1 In­tro­duc­tion to oop and Java Pro­gram­ming for Be­gin­ners Part 1
9:51
Ad­vanced Top­ics in Pro­gram­ming Lan­guages: Java Puz­zlers,...
73:53
The Bloat­ed Java Pro­gram­ming Lan­guage
3:28
CPE496 - Java Pro­gram­ming Lan­guage : Chap­ter 1 Part 2
10:01
Larry Wall: 5 Pro­gram­ming Lan­guages Ev­ery­one Should Know
6:13
Evo­lu­tion of Pro­gram­ming Lan­guages : Java Tu­to­ri­al 5
2:16
Java Pro­gram­ming Tu­to­ri­al Ses­sion 1 In­tro­duc­tion to oop and Java Pro­gram­ming for Be­gin­ners Part 2
9:43
Java Pro­gram­ming Ba­sics
8:31
Java Pro­gram­ming Tu­to­ri­al 1: What is Java Plat­form?
6:08
Ef­fec­tive Java Pro­gram­ming with Joshua Bloch
9:31
Java Pro­gram­ming: Prim­i­tive Vari­ables and Strings
12:56
remove add to playlist video results for: java programming language
Lec­ture 1 | Pro­gram­ming Method­ol­o­gy (Stan­ford)
49:47
Ad­vanced Top­ics in Pro­gram­ming Lan­guages Se­ries: JSR 277...
65:27
Episode 1 - Win­dow :: 3D Game Pro­gram­ming in Java - Mak­ing a First Per­son Shoot­er from Scratch
14:02
Episode 2 - Game Loop :: 3D Game Pro­gram­ming in Java - Mak­ing a First Per­son Shoot­er from Scratch
9:45
(4) Learn Java Pro­gram­ming | Ob­ject Meth­ods
8:35
Episode 3 - Ar­rays :: 3D Game Pro­gram­ming in Java - Mak­ing a First Per­son Shoot­er from Scratch
9:58
Java Pro­gram­ming -- Part 40 -- Try Catch Block.
2:55
RSBot Java Pro­gram­ming - GUI Tu­to­ri­al Using JFor­mDe­sign­er (Part 1)
8:36
Episode 18.5 - Cre­at­ing an EXE File in Java :: 3D Game Pro­gram­ming in Java
11:56

Canada Dot Com BOSTON (Reuters) - James Gosling, creator of the Java computer language and one of the most prominent employees in Oracle Corp's newly acquired Sun Microsystems, has resigned from Oracle. Gosling, who announced...(size: 1.4Kb)
PR Newswire Collaboration Offers Seamless Migration From BlueJ Educational Tools to Full-Featured Professional NetBeans IDE Development Tools SANTA CLARA, Calif., Sept. 19 /PRNewswire-FirstCall/ -- Sun Microsystems, Inc. (Nasdaq: SUNW) the creator and leading advocate of Java(TM) technology, together with the...(size: 3.7Kb)
The News & Observer RICHMOND, Va. (AP) - A federal judge's order that...(size: 0.3Kb)
Hoovers 3:37am Dec. 24--Microsoft's winning streak in court came to an end yesterday when a federal judge ordered the company to distribute the Java programming language in its Windows operating system. Advertisement: Explore Within This Space In granting a preliminary injunction, U.S. District Judge J....(size: 6.4Kb)
Hoovers 6:01pm Abstract: A method, system, and computer program product for synchronized thread execution in a multithreaded processor are described. Each synchronized thread refers to at least one object identified by an object identification (OID) that is shared among a plurality of synchronized...(size: 1.9Kb)
Hoovers Java[TM] Specification Request (JSR) 26 Defines the Basis For Automating EJB[TM]Development Using Visual Modeling LEXINGTON, Mass., June 6 /PRNewswire/ -- Rational Software (Nasdaq: RATL), the e-development company, and the Java Community Process[SM] program today announced the release of the...(size: 7.7Kb)
Stockhouse Sybase provides enterprise-class software solutions that fuel e-Business. Visit www.sybase.com/e-bizpr for more information about Sybase and its e-Business leadership. Number 34 in a Series NOTE: Sybase is a registered...(size: 1.5Kb)
more news on: Java Programming Language
nameJava
logo
paradigmObject-oriented, structured, imperative
year1995
designerSun Microsystems (now owned by Oracle Corporation)
developerJames Gosling & Sun Microsystems
latest release versionJava Standard Edition 7 (1.7.0)
latest release date
turing-completeYes
typingStatic, strong, safe, nominative, manifest
implementationsOpenJDK, HotSpot, many others
influenced byAda 83, C++, C#, Delphi Object Pascal,, Eiffel , Generic Java, Mesa, Modula-3, Objective-C, UCSD Pascal, Smalltalk
influencedAda 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala, Vala
dialectsGeneric Java, Pizza
operating systemCross-platform (multi-platform)
licenseGNU General Public License / Java Community Process
websiteFor Java Developers
file ext.java, .class, .jar
wikibooksJava Programming }}
Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere." Java is currently one of the most popular programming languages in use, particularly for client-server web applications.

The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java, GNU Classpath, and Dalvik.

History

James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time. The language was initially called ''Oak'' after an oak tree that stood outside Gosling's office; it went by the name ''Green'' later, and was later renamed ''Java'', from Java coffee, said to be consumed in large quantities by the language's creators. Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of notation.

Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised "Write Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable security, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java ''applets'' within web pages, and Java quickly became popular. With the advent of ''Java 2'' (released initially as J2SE 1.2 in December 1998–1999), new versions had multiple configurations built for different types of platforms. For example, ''J2EE'' targeted enterprise applications and the greatly stripped-down version ''J2ME'' for mobile applications (Mobile Java). ''J2SE'' designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new ''J2'' versions as ''Java EE'', ''Java ME'', and ''Java SE'', respectively.

In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a ''de facto'' standard, controlled through the Java Community Process. At one time, Sun made most of its Java implementations available without charge, despite their proprietary software status. Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and Runtime Environment (JRE) (a subset of the SDK); the primary distinction involves the JRE's lack of the compiler, utility programs, and header files.

On November 13, 2006, Sun released much of Java as open source software under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of Java's core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.

Sun's vice-president Rich Green has said that Sun's ideal role with regards to Java is as an "evangelist."

Following Oracle Corporation's acquisition of Sun Microsystems in 2009–2010, Oracle has described itself as the "steward of Java technology with a relentless commitment to fostering a community of participation and transparency".

Principles

There were five primary goals in the creation of the Java language: # It should be "simple, object-oriented and familiar". # It should be "robust and secure". # It should be "architecture-neutral and portable". # It should execute with "high performance". # It should be "interpreted, threaded, and dynamic".

Versions

Major release versions of Java, along with their release dates:
  • JDK 1.0 (January 23, 1996)
  • JDK 1.1 (February 19, 1997)
  • J2SE 1.2 (December 8, 1998)
  • J2SE 1.3 (May 8, 2000)
  • J2SE 1.4 (February 6, 2002)
  • J2SE 5.0 (September 30, 2004)
  • Java SE 6 (December 11, 2006)
  • Java SE 7 (July 28, 2011)
  • Practices

    Java Platform

    One characteristic of Java is portability, which means that computer programs written in the Java language must run similarly on any hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation called Java bytecode, instead of directly to platform-specific machine code. Java bytecode instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware. End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets.

    Standardized libraries provide a generic way to access host-specific features such as graphics, threading, and networking.

    A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time compilers were introduced from an early stage that compile bytecodes to machine code during runtime.

    Implementations

    Sun Microsystems officially licensed the Java Standard Edition platform for Linux, Mac OS X, and Solaris. In the past Sun licensed Java to Microsoft but the license expired without renewal. Because Windows does not ship with a Java software platform, a network of third-party vendors and licensees develop them for Windows and other operating system/hardware platforms.

    Sun's trademark license for usage of the Java brand insists that all implementations be "compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001 won a settlement of US$20 million, as well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Java with Windows, and in recent versions of Windows, Internet Explorer cannot support Java applets without a third-party plugin. Sun, and others, have made available free Java run-time systems for those and other versions of Windows.

    Platform-independent Java is essential to the Java EE strategy, and an even more rigorous validation is required to certify an implementation. This environment enables portable server-side applications, such as Web services, Java Servlets, and Enterprise JavaBeans, as well as with embedded systems based on OSGi, using Embedded Java environments. Through the GlassFish project, Sun is working to create a fully functional, unified open source implementation of the Java EE technologies.

    Sun also distributes a superset of the JRE called the Java Development Kit (commonly known as the JDK), which includes development tools such as the Java compiler, Javadoc, Jar, and debugger.

    Performance

    Programs written in Java have a reputation for being slower and requiring more memory than those written in C. However, Java programs' execution speed improved significantly with the introduction of Just-in-time compilation in 1997/1998 for Java 1.1, the addition of language features supporting better code analysis (such as inner classes, StringBuffer class, optional assertions, etc.), and optimizations in the Java Virtual Machine itself, such as HotSpot becoming the default for Sun's JVM in 2000. Currently, Java 2.0 code has approximately half the performance of C code. However, Java 5.0 has been shown to run at native speeds that sometimes match and occasionally beat the speed of C and C++.

    Some platforms offer direct hardware support for Java; there are microcontrollers that can run Java in hardware instead of a software JVM, and ARM based processors can have hardware support for executing Java bytecode through its Jazelle option.

    Automatic memory management

    Java uses an automatic garbage collector to manage memory in the object lifecycle. The programmer determines when objects are created, and the Java runtime is responsible for recovering the memory once objects are no longer in use. Once no references to an object remain, the unreachable memory becomes eligible to be freed automatically by the garbage collector. Something similar to a memory leak may still occur if a programmer's code holds a reference to an object that is no longer needed, typically when objects that are no longer needed are stored in containers that are still in use. If methods for a nonexistent object are called, a "null pointer exception" is thrown.

    One of the ideas behind Java's automatic memory management model is that programmers can be spared the burden of having to perform manual memory management. In some languages, memory for the creation of objects is implicitly allocated on the stack, or explicitly allocated and deallocated from the heap. In the latter case the responsibility of managing memory resides with the programmer. If the program does not deallocate an object, a memory leak occurs. If the program attempts to access or deallocate memory that has already been deallocated, the result is undefined and difficult to predict, and the program is likely to become unstable and/or crash. This can be partially remedied by the use of smart pointers, but these add overhead and complexity. Note that garbage collection does not prevent "logical" memory leaks, i.e. those where the memory is still referenced but never used.

    Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new object; this can cause a program to stall momentarily. Explicit memory management is not possible in Java.

    Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned integers (usually long integers) can be used interchangeably. This allows the garbage collector to relocate referenced objects and ensures type safety and security.

    As in C++ and some other object-oriented languages, variables of Java's primitive data types are not objects. Values of primitive types are either stored directly in fields (for objects) or on the stack (for methods) rather than on the heap, as commonly true for objects (but see Escape analysis). This was a conscious decision by Java's designers for performance reasons. Because of this, Java was not considered to be a pure object-oriented programming language. However, as of Java 5.0, autoboxing enables programmers to proceed as if primitive types were instances of their wrapper class.

    Java contains multiple types of garbage collectors. By default, HotSpot uses the Concurrent Mark Sweep collector, also known as the CMS Garbage Collector. However, there are also several other garbage collectors that can be used to manage the Heap. For 90% of applications in Java, the CMS Garbage Collector is good enough.

    Syntax

    The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for structured, generic, and object-oriented programming, Java was built almost exclusively as an object-oriented language. All code is written inside a class, and everything is an object, with the exception of the primitive data types (integers, floating-point numbers, boolean values, and characters), which are not classes for performance reasons.

    Unlike C++, Java does not support operator overloading or multiple inheritance for ''classes''. This simplifies the language and aids in preventing potential errors and anti-pattern design.

    Java uses similar commenting methods to C++. There are three different styles of comments: a single line style marked with two slashes (//), a multiple line style opened with /* and closed with */, and the Javadoc commenting style opened with /** and closed with */. The Javadoc style of commenting allows the user to run the Javadoc executable to compile documentation for the program.

    Example:

    // This is an example of a single line comment using two slashes

    /* This is an example of a multiple line comment using the slash and asterisk. This type of comment can be used to hold a lot of information or deactivate code but it is very important to remember to close the comment. */

    /** * This is an example of a Javadoc comment; Javadoc can compile documentation * from this text. */

    Examples

    Hello world

    The traditional Hello world program can be written in Java as: class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } } To compare this to other programming languages see the list of hello world program examples.

    Source files must be named after the public class they contain, appending the suffix .java, for example, HelloWorldApp.java. It must first be compiled into bytecode, using a Java compiler, producing a file named HelloWorldApp.class. Only then can it be executed, or 'launched'. The Java source file may only contain one public class but can contain multiple classes with less than public access and any number of public inner classes.

    A class that is not declared public may be stored in any .java file. The compiler will generate a class file for each class defined in the source file. The name of the class file is the name of the class, with ''.class'' appended. For class file generation, anonymous classes are treated as if their name were the concatenation of the name of their enclosing class, a ''$'', and an integer.

    The keyword public denotes that a method can be called from code in other classes, or that a class may be used by classes outside the class hierarchy. The class hierarchy is related to the name of the directory in which the .java file is located.

    The keyword static in front of a method indicates a static method, which is associated only with the class and not with any specific instance of that class. Only static methods can be invoked without a reference to an object. Static methods cannot access any class members that are not also static.

    The keyword void indicates that the main method does not return any value to the caller. If a Java program is to exit with an error code, it must call System.exit() explicitly.

    The method name "main" is not a keyword in the Java language. It is simply the name of the method the Java launcher calls to pass control to the program. Java classes that run in managed environments such as applets and Enterprise JavaBean do not use or need a main() method. A Java program may contain multiple classes that have main methods, which means that the VM needs to be explicitly told which class to launch from.

    The main method must accept an array of objects. By convention, it is referenced as args although any other legal identifier name can be used. Since Java 5, the main method can also use variable arguments, in the form of public static void main(String... args), allowing the main method to be invoked with an arbitrary number of String arguments. The effect of this alternate declaration is semantically identical (the args parameter is still an array of String objects), but allows an alternative syntax for creating and passing the array.

    The Java launcher launches Java by loading a given class (specified on the command line or as an attribute in a JAR) and starting its public static void main(String[]) method. Stand-alone programs must declare this method explicitly. The String[] args parameter is an array of objects containing any arguments passed to the class. The parameters to main are often passed by means of a command line.

    Printing is part of a Java standard library: The class defines a public static field called . The out object is an instance of the class and provides many methods for printing data to standard out, including which also appends a new line to the passed string.

    The string "Hello, world!" is automatically converted to a String object by the compiler.

    A more comprehensive example

    // OddEven.java import javax.swing.JOptionPane;

    public class OddEven { // "input" is the number that the user gives to the computer private int input; // a whole number("int" means integer)

    /* * This is the constructor method. It gets called when an object of the OddEven type * is being created. */ public OddEven() { /* * In most Java programs constructors can initialize objects with default values, or create * other objects that this object might use to perform its functions. In some Java programs, the * constructor may simply be an empty function if nothing needs to be initialized prior to the * functioning of the object. In this program's case, an empty constructor would suffice, even if * it is empty. A constructor must exist, however if the user doesn't put one in then the compiler * will create an empty one. */ }

    // This is the main method. It gets called when this class is run through a Java interpreter. public static void main(String[] args) { /* * This line of code creates a new instance of this class called "number" (also known as an * Object) and initializes it by calling the constructor. The next line of code calls * the "showDialog()" method, which brings up a prompt to ask you for a number */ OddEven number = new OddEven(); number.showDialog(); }

    public void showDialog() { /* * "try" makes sure nothing goes wrong. If something does, * the interpreter skips to "catch" to see what it should do. */ try { /* * The code below brings up a JOptionPane, which is a dialog box * The String returned by the "showInputDialog()" method is converted into * an integer, making the program treat it as a number instead of a word. * After that, this method calls a second method, calculate() that will * display either "Even" or "Odd." */ input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); calculate(); } catch (NumberFormatException e) { /* * Getting in the catch block means that there was a problem with the format of * the number. Probably some letters were typed in instead of a number. */ System.err.println("ERROR: Invalid input. Please type in a numerical value."); } }

    /* * When this gets called, it sends a message to the interpreter. * The interpreter usually shows it on the command prompt (For Windows users) * or the terminal (For *nix users).(Assuming it's open) */ private void calculate() { if (input % 2 == 0) { System.out.println("Even"); } else { System.out.println("Odd"); } } }

    The import statement imports the class from the package.

  • The OddEven class declares a single private field of type int named input. Every instance of the OddEven class has its own copy of the input field. The private declaration means that no other class can access (read or write) the input field.
  • OddEven() is a public constructor. Constructors have the same name as the enclosing class they are declared in, and unlike a method, have no return type. A constructor is used to initialize an object that is a newly created instance of the class.
  • The calculate() method is declared without the static keyword. This means that the method is invoked using a specific instance of the OddEven class. (The reference used to invoke the method is passed as an undeclared parameter of type OddEven named this.) The method tests the expression input % 2 == 0 using the if keyword to see if the remainder of dividing the input field belonging to the instance of the class by two is zero. If this expression is true, then it prints Even; if this expression is false it prints Odd. (The input field can be equivalently accessed as this.input, which explicitly uses the undeclared this parameter.)
  • OddEven number = new OddEven(); declares a local object reference variable in the main method named number. This variable can hold a reference to an object of type OddEven. The declaration initializes number by first creating an instance of the OddEven class, using the new keyword and the OddEven() constructor, and then assigning this instance to the variable.
  • The statement number.showDialog(); calls the calculate method. The instance of OddEven object referenced by the number local variable is used to invoke the method and passed as the undeclared this parameter to the calculate method.
  • input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); is a statement that converts the type of String to the primitive data type int by using a utility function in the primitive wrapper class Integer.
  • Special classes

    Applet

    Java applets are programs that are embedded in other applications, typically in a Web page displayed in a Web browser.

    // Hello.java import javax.swing.JApplet; import java.awt.Graphics;

    public class Hello extends JApplet {

    public void paintComponent(Graphics g) { g.drawString("Hello, world!", 65, 95); }

    }

    The import statements direct the Java compiler to include the and classes in the compilation. The import statement allows these classes to be referenced in the source code using the ''simple class name'' (i.e. JApplet) instead of the ''fully qualified class name'' (i.e. javax.swing.JApplet).

    The Hello class extends (subclasses) the JApplet (Java Applet) class; the JApplet class provides the framework for the host application to display and control the lifecycle of the applet. The JApplet class is a JComponent (Java Graphical Component) which provides the applet with the capability to display a graphical user interface (GUI) and respond to user events.

    The Hello class overrides the method (additionally indicated with the annotation, supported as of JDK 1.5, Override) inherited from the superclass to provide the code to display the applet. The paintComponent() method is passed a Graphics object that contains the graphic context used to display the applet. The paintComponent() method calls the graphic context method to display the "Hello, world!" string at a pixel offset of (65, 95) from the upper-left corner in the applet's display.

    Hello World Applet

    An applet is placed in an HTML document using the HTML element. The applet tag has three attributes set: code="Hello" specifies the name of the JApplet class and width="200" height="200" sets the pixel width and height of the applet. Applets may also be embedded in HTML using either the object or embed element, although support for these elements by Web browsers is inconsistent. However, the applet tag is deprecated, so the object tag is preferred where supported.

    The host application, typically a Web browser, instantiates the Hello applet and creates an for the applet. Once the applet has initialized itself, it is added to the AWT display hierarchy. The paintComponent() method is called by the AWT event dispatching thread whenever the display needs the applet to draw itself.

    Servlet

    Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business systems. Servlets are server-side Java EE components that generate responses (typically HTML pages) to requests (typically HTTP requests) from clients. A servlet can almost be thought of as an applet that runs on the server side—without a face.

    // Hello.java import java.io.*; import javax.servlet.*;

    public class Hello extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); final PrintWriter pw = response.getWriter(); try { pw.println("Hello, world!"); } finally { pw.close(); } } }

    The import statements direct the Java compiler to include all of the public classes and interfaces from the and packages in the compilation.

    The Hello class extends the class; the GenericServlet class provides the interface for the server to forward requests to the servlet and control the servlet's lifecycle.

    The Hello class overrides the method defined by the interface to provide the code for the service request handler. The service() method is passed a object that contains the request from the client and a object used to create the response returned to the client. The service() method declares that it throws the exceptions and if a problem prevents it from responding to the request.

    The method in the response object is called to set the MIME content type of the returned data to "text/html". The method in the response returns a object that is used to write the data that is sent to the client. The method is called to write the "Hello, world!" string to the response and then the method is called to close the print writer, which causes the data that has been written to the stream to be returned to the client.

    JavaServer Pages

    JavaServer Pages (JSP) are server-side Java EE components that generate responses, typically HTML pages, to HTTP requests from clients. JSPs embed Java code in an HTML page by using the special delimiters <% and %>. A JSP is compiled to a Java ''servlet'', a Java application in its own right, the first time it is accessed. After that, the generated servlet creates the response.

    Swing application

    Swing is a graphical user interface library for the Java SE platform. It is possible to specify a different look and feel through the pluggable look and feel system of Swing. Clones of Windows, GTK+ and Motif are supplied by Sun. Apple also provides an Aqua look and feel for Mac OS X. Where prior implementations of these looks and feels may have been considered lacking, Swing in Java SE 6 addresses this problem by using more native GUI widget drawing routines of the underlying platforms.

    This example Swing application creates a single window with "Hello, world!" inside:

    // Hello.java (Java SE 5) import javax.swing.*;

    public class Hello extends JFrame { public Hello() { super("hello"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); add(new JLabel("Hello, world!")); pack(); setVisible(true);

    }

    public static void main(String[] args) { new Hello(); } }

    The first import includes all of the public classes and interfaces from the package.

    The Hello class extends the class; the JFrame class implements a window with a title bar and a close control.

    The Hello() constructor initializes the frame by first calling the superclass constructor, passing the parameter "hello", which is used as the window's title. It then calls the method inherited from JFrame to set the default operation when the close control on the title bar is selected to — this causes the JFrame to be disposed of when the frame is closed (as opposed to merely hidden), which allows the JVM to exit and the program to terminate. Next, a is created for the string "Hello, world!" and the method inherited from the superclass is called to add the label to the frame. The method inherited from the superclass is called to size the window and lay out its contents.

    The main() method is called by the JVM when the program starts. It instantiates a new Hello frame and causes it to be displayed by calling the method inherited from the superclass with the boolean parameter true. Once the frame is displayed, exiting the main method does not cause the program to terminate because the AWT event dispatching thread remains active until all of the Swing top-level windows have been disposed.

    Generics

    In 2004, generics were added to the Java language, as part of J2SE 5.0. Prior to the introduction of generics, each variable declaration had to be of a specific type. For container classes, for example, this is a problem because there is no easy way to create a container that accepts only specific types of objects. Either the container operates on all subtypes of a class or interface, usually Object, or a different container class has to be created for each contained class. Generics allow compile-time type checking without having to create a large number of container classes, each containing almost identical code.

    Criticism

    A number of criticisms have been leveled at Java for various design choices in the language and platform. Such criticisms include the implementation of generics, the handling of unsigned numbers, the implementation of floating-point arithmetic, and security vulnerabilities.

    Class libraries

  • Java libraries are the compiled bytecodes of source code developed by the JRE implementor to support application development in Java. Examples of these libraries are:
  • * The core libraries, which include:
  • ** Collection libraries that implement data structures such as lists, dictionaries, trees, sets, queues and double-ended queue, or stacks
  • ** XML Processing (Parsing, Transforming, Validating) libraries
  • ** Security
  • ** Internationalization and localization libraries
  • * The integration libraries, which allow the application writer to communicate with external systems. These libraries include:
  • ** The Java Database Connectivity (JDBC) API for database access
  • ** Java Naming and Directory Interface (JNDI) for lookup and discovery
  • ** RMI and CORBA for distributed application development
  • ** JMX for managing and monitoring applications
  • * User interface libraries, which include:
  • ** The (heavyweight, or native) Abstract Window Toolkit (AWT), which provides GUI components, the means for laying out those components and the means for handling events from those components
  • ** The (lightweight) Swing libraries, which are built on AWT but provide (non-native) implementations of the AWT widgetry
  • ** APIs for audio capture, processing, and playback
  • A platform dependent implementation of Java Virtual Machine (JVM) that is the means by which the byte codes of the Java libraries and third party applications are executed
  • Plugins, which enable applets to be run in Web browsers
  • Java Web Start, which allows Java applications to be efficiently distributed to end-users across the Internet
  • Licensing and documentation.
  • Documentation

    Javadoc is a comprehensive documentation system, created by Sun Microsystems, used by many Java developers. It provides developers with an organized system for documenting their code. Javadoc comments have an extra asterisk at the beginning, i.e. the tags are /** and */, whereas the normal multi-line comment tags comments in Java and C are set off with /* and */.

    Editions

    Sun has defined and supports four editions of Java targeting different application environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are:

  • Java Card for smartcards.
  • Java Platform, Micro Edition (Java ME) — targeting environments with limited resources.
  • Java Platform, Standard Edition (Java SE) — targeting workstation environments.
  • Java Platform, Enterprise Edition (Java EE) — targeting large distributed enterprise or Internet environments.
  • The classes in the Java APIs are organized into separate groups called packages. Each package contains a set of related interfaces, classes and exceptions. Refer to the separate platforms for a description of the packages available.

    The set of APIs is controlled by Sun Microsystems in cooperation with others through the Java Community Process program. Companies or individuals participating in this process can influence the design and development of the APIs. This process has been a subject of controversy.

    Sun also provided an edition called PersonalJava that has been superseded by later, standards-based Java ME configuration-profile pairings.

    Notes

    See also

  • Comparison of programming languages
  • Comparison of Java and C++
  • Comparison of Java and C#
  • JavaOne
  • Javapedia
  • List of Java virtual machines
  • List of Java APIs
  • List of JVM languages
  • Java version history
  • Threads in the Java programming language
  • C#
  • References

    Gosling, James, ''A brief history of the Green project''. Java.net, no date [ca. Q1/1998]. Retrieved April 29, 2007.

    External links

  • java.com - Java for end-users
  • Oracle's Developer Resources for Java Technology.
  • A Brief History of the Green Project
  • Michael O'Connell: Java: The Inside Story, SunWord, July 1995.
  • Patrick Naughton: Java Was Strongly Influenced by Objective-C (no date).
  • David Bank: The Java Saga, ''Wired'' Issue 3.12 (December 1995).
  • Shahrooz Feizabadi: A history of Java in: Marc Abrams, ed., ''World Wide Web – Beyond the Basics'', Prentice Hall, 1998.
  • Patrick Naughton: The Long Strange Trip to Java, March 18, 1996.
  • Open University (UK): M254 Java Everywhere (free open content documents).
  • is-research GmbH: List of programming languages for a Java Virtual Machine.
  • How Java's Floating-Point Hurts Everyone Everywhere, by W. Kahan and Joseph D. Darcy, University of California, Berkeley.
  • Lyes Hassaine: Object Oriented Programming vs. Procedural Programming, June 17, 2011.
  • Category:C programming language family Category:Class-based programming languages Category:Concurrent programming languages Category:Cross-platform software Programming language Programming language Category:JVM programming languages Category:Object-oriented programming languages Category:Programming languages created in 1995 Category:Sun Microsystems

    my:Java_(programming_language) ace:Java af:Java (programmeertaal) am:ጃቫ (java) ar:جافا (لغة برمجة) az:Java bn:জাভা (প্রোগ্রামিং ভাষা) be:Java be-x-old:Java bs:Java programski jezik bg:Java ca:Java (llenguatge de programació) cv:Java (компьютер чĕлхи) cs:Java (programovací jazyk) co:Java cy:Java (iaith rhaglennu) da:Java (programmeringssprog) de:Java (Programmiersprache) et:Java el:Java es:Java (lenguaje de programación) eo:Java (programlingvo) eu:Java (programazio lengoaia) fa:جاوا (زبان برنامه‌نویسی) fr:Java (langage) ga:Java gl:Linguaxe Java ko:자바 (프로그래밍 언어) hy:Ջավա hi:जावा प्रोग्रामिंग भाषा hr:Java (programski jezik) id:Java ia:Java (linguage de programmation) is:Java (forritunarmál) it:Java (linguaggio) he:Java ka:Java (პროგრამირების ენა) ht:Java la:Java (lingua programmandi) lv:Java (valoda) lt:Java (kalba) lij:Java (lenguazzo) hu:Java (programozási nyelv) mk:Јава (програмски јазик) ml:ജാവ (പ്രോഗ്രാമിങ് ഭാഷ) mr:जावा (प्रोग्रॅमिंग भाषा) ms:Java cdo:Java mn:Java (Программчлалын хэл) nl:Java (programmeertaal) ja:Java no:Java (programmeringsspråk) nn:Programmeringsspråket Java uz:Java pl:Java pt:Java (linguagem de programação) kaa:Java (programmalastırıw tili) ro:Java (limbaj de programare) ru:Java sah:Java sq:Java (gjuhë programimi) si:ජාවා (පරිගණක ක්‍රමලේඛන බස) simple:Java (programming language) sk:Java sl:Programski jezik java sr:Јава (програмски језик) sh:Java (programski jezik) fi:Java sv:Java (programspråk) tl:Java (wikang pamprograma) ta:ஜாவா நிரலாக்க மொழி te:జావా th:ภาษาจาวา tg:Java tr:Java (programlama dili) bug:Java uk:Java vec:Java vi:Java (ngôn ngữ lập trình) wuu:程序编制言话Java zh-yue:Java程式語言 bat-smg:Java zh:Java

    This text is licensed under the Creative Commons CC-BY-SA License. This text was originally published on Wikipedia and was developed by the Wikipedia community.

    49:47
    Lecture 1 | Programming Methodology (Stanford)
    StanfordUniversity
    65:27
    Advanced Topics in Programming Languages Series: JSR 277...
    GoogleTechTalks
    14:02
    Episode 1 - Window :: 3D Game Programming in Java - Making a First Person Shooter from Scratch
    TH3CHERNO
    9:45
    Episode 2 - Game Loop :: 3D Game Programming in Java - Making a First Person Shooter from Scratch
    TH3CHERNO
    8:35
    (4) Learn Java Programming | Object Methods
    JREAMdesign
    9:58
    Episode 3 - Arrays :: 3D Game Programming in Java - Making a First Person Shooter from Scratch
    TH3CHERNO
    show more
    Video Suggestions







    The World News (WN) Network, has created this privacy statement in order to demonstrate our firm commitment to user privacy. The following discloses our information gathering and dissemination practices for wn.com, as well as e-mail newsletters.

    1. Personal Information Collection and Use

    We do not collect personally identifiable information about you, except when you provide it to us. For example, if you submit an inquiry to us or sign up for our newsletter, you may be asked to provide certain information such as your contact details (name, e-mail address, mailing address, etc.).

    When you submit your personally identifiable information through wn.com, you are giving your consent to the collection, use and disclosure of your personal information as set forth in this Privacy Policy. If you would prefer that we not collect any personally identifiable information from you, please do not provide us with any such information. We will not sell or rent your personally identifiable information to third parties without your consent, except as otherwise disclosed in this Privacy Policy.

    Except as otherwise disclosed in this Privacy Policy, we will use the information you provide us only for the purpose of responding to your inquiry or in connection with the service for which you provided such information. We may forward your contact information and inquiry to our affiliates and other divisions of our company that we feel can best address your inquiry or provide you with the requested service. We may also use the information you provide in aggregate form for internal business purposes, such as generating statistics and developing marketing plans. We may share or transfer such non-personally identifiable information with or to our affiliates, licensees, agents and partners.

    We may retain other companies and individuals to perform functions on our behalf. Such third parties may be provided with access to personally identifiable information needed to perform their functions, but may not use such information for any other purpose.

    In addition, we may disclose any information, including personally identifiable information, we deem necessary, in our sole discretion, to comply with any applicable law, regulation, legal proceeding or governmental request.

    2. E-mail addresses

    We do not want you to receive unwanted e-mail from us. We try to make it easy to opt-out of any service you have asked to receive. If you sign-up to our e-mail newsletters we do not sell, exchange or give your e-mail address to a third party.

    E-mail addresses are collected via the wn.com web site. Users have to physically opt-in to receive the wn.com newsletter and a verification e-mail is sent. wn.com is clearly and conspicuously named at the point of

    collection.

    If you no longer wish to receive our newsletter and promotional communications, you may opt-out of receiving them by following the instructions included in each newsletter or communication or by e-mailing us at michaelw(at)wn.com

    The security of your personal information is important to us. We follow generally accepted industry standards to protect the personal information submitted to us, both during registration and once we receive it. No method of transmission over the Internet, or method of electronic storage, is 100 percent secure, however. Therefore, though we strive to use commercially acceptable means to protect your personal information, we cannot guarantee its absolute security.

    If we decide to change our e-mail practices, we will post those changes to this privacy statement, the homepage, and other places we think appropriate so that you are aware of what information we collect, how we use it, and under what circumstances, if any, we disclose it.

    If we make material changes to our e-mail practices, we will notify you here, by e-mail, and by means of a notice on our home page.

    3. Third Party Advertisers

    The advertising banners and other forms of advertising appearing on this Web site are sometimes delivered to you, on our behalf, by a third party. In the course of serving advertisements to this site, the third party may place or recognize a unique cookie on your browser. For more information on cookies, you can visit www.cookiecentral.com.

    4. Business Transfers

    As we continue to develop our business, we might sell certain aspects of our entities or assets. In such transactions, user information, including personally identifiable information, generally is one of the transferred business assets, and by submitting your personal information on Wn.com you agree that your data may be transferred to such parties in these circumstances.