Java
Java
javaThe Java language is an object-oriented programming language created by James Gosling and other engineers at Sun Microsystems. It was developed in 1991, as part of the Green Project, and officially announced on May 23, 1995, at SunWorld; being released in November. Java was initially designed as a replacement to C++ (although the feature set is more similiar to Objective C) and known as Oak (in honour of a tree outside Gosling’s office). More on the history of Java can be found in the article about the Java platform, which includes the language, the Java virtual machine, and the Java API. Java is owned by Sun Microsystems; the term Java is a trademark of Sun Microsystems.Overview There were four primary goals in the creation of the Java language: It is object-oriented. It is independent of the host platform (more or less) It contains language facilities and libraries for networking. It is designed to execute code from remote sources securely.Object orientationThe first characteristic, object orientation (“OO”), refers to a method of programming and language design. The main idea of OO is to design software around the “things” (ie. objects) it manipulates, rather than the actions it performs. This is based on the notion that the former change less frequently and radically than the latter, making such objects (actually the entities containing data) the more stable foundation for a software system’s design. The intent is to make large software projects easier to manage, thus improving quality and reducing the number of failed projects.Platform independenceThe second characteristic, platform independence, means that programs written in the Java language must run similarly on diverse hardware. One should be able to write a program once and run it anywhere. This is achieved by compiling Java language code “halfway” to bytecode–simplified machine instructions that conform to a set standard. The code is then run on a virtual machine, a program written in native code on the host hardware that translates generic Java bytecode into usable code on the hardware. Further, standardized libraries are provided to allow access to features of the host machines (such as graphics and networking) in unified ways. The Java language also includes support for multi-threaded programs–a necessity for many networking applications.The first implementations of the language used an interpreted virtual machine to achieve portability, and many implementations still do. These implementations produce programs that run more slowly than the fully-compiled programs created by the typical C++ compiler and some later Java language compilers, so the language suffered a reputation for producing slow programs. More recent implementations of the Java VM produce programs that run much faster, using multiple techniques.The first of these is to simply compile directly into native code like a more traditional compiler, skipping bytecodes entirely. This achieves great performance, but at the expense of portability. Another technique, the just-in-time compiler or “JIT”, compiles the Java bytecodes into native code at the time the program is run. More sophisticated VMs even use dynamic recompilation, in which the VM can analyze the behavior of the running program and selectively recompile and optimize critical parts of the program. Both of these techniques allow the program to take advantage of the speed of native code without losing portability.Portability is a technically difficult goal to achieve, and Java’s success at that goal is a matter of some controversy. Although it is indeed possible to write programs for the Java platform that behave consistently across many host platforms, the large number of available platforms with small errors or inconsistencies led some to parody Sun’s “Write once, run anywhere” slogan as “Write once, debug everywhere”.Platform independent Java is, however, very successfull with server side applications, such as web services, servlets, or Enterprise Java Beans.Secure execution of remote codeThe Java platform was one of the first systems to provide wide support for the execution of code from remote sources. An applet could run within a user’s browser, executing code downloaded from a remote HTTP server. The remote code runs in a highly restricted “sandbox”, which protects the user from misbehaving or malicious code; publishers could apply for a certificate that they could use to digitally sign applets as “safe”, giving them permission to break out of the sandbox and access the local filesystem and network, presumably under user control.EvaluationIn most people’s opinions, Java technology delivers reasonably well on all these goals. The language is not, however, without drawbacks. Java tends to be more high-level than similar languages (such as C++), which means that the Java language lacks features such as hardware-specific data types and low-level pointers to arbitrary memory. Although these features are frequently abused or misused by programmers, they are also powerful tools. However, Java technology includes Java Native Interface (JNI), a way to call native code from Java language code. With JNI, it is still possible to use these features.Some programmers also complain about its lack of multiple inheritance, a powerful feature of several object-oriented languages, C++ for example. The Java language separates inheritance of type and implementation, allowing inheritance of multiple type definitions through interfaces, but only single inheritance of type implementation via class hierarchies. This allows most of the benefits of multiple inheritance while avoiding many of its dangers. In addition, through the use of concrete classes, abstract classes, as well as interfaces, a Java language programmer has the option of choosing full, partial, or zero implementation for the object type he defines, thus ensuring maximum flexibilty in application design.There are some who believe that for certain projects, object orientation makes work harder instead of easier. This particular complaint is not unique to the Java language but applies to other object-oriented languages as well.LanguageAn example of a hello world program in the Java language follows: public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello world!”); } }Control structures Loops while (Boolean expression) { statement(s) } do { statement(s) } while (Boolean expression); for (initialisation ; termination condition ; incrementing expr) { statement(s) } Conditional statements if (Boolean expression) { statement(s) } if (Boolean expression) { statement(s) } else { statement(s) }With else if arbitrarily complex if-then-constructions may be built. if (Boolean expression) { statement(s) } else if (Boolean expression) { statement(s) } else if (Boolean expression) { statement(s) } else { statement(s) } switch (integer expression) { case constant integer expr: statement(s) break; … default: statement(s) break; }Exception handling try { statement(s) } catch (exception type) { statement(s) } catch (exception type) { statement(s) } finally { statement(s) }Unstructured control flowJava does not have goto statements, as their use is widely considered poor programming practice. There are, however, some uses for goto that are considered acceptable, and Java have facilities to duplicate such functionality. Early exit from loops Java provides two statements to exit from a loop in the midst of an iteration. The statement continue;terminates the current iteration of a loop and starts the next one, behaving as a goto jumping to the top of the loop body. Similarly, the statement break;exits the loop, terminating the current iteration and executing no more iterations. The effect is that of a goto jumping just past the end of the loop.Java’s break and continue statements are more powerful than the C and C++ constructs of the same name, in that they are capable of exiting more than one loop-nesting level. Specifically, to jump out of a particular loop, one can label the loop, and then affix the label to the break or continue statement. To achieve similar functionality in C and C++ would require the use of a goto statement.For instance: outer: while (true) { inner: while (true) { break; // Exits the innermost loop break inner; // Also exits the innermost loop break outer; // Exits the outermost loop } }This should not be confused with the break label;and continue label;statements in C and C++, which function identically to goto. Early exit from methods The statement return;terminates a method.With return aValue;aValue may be given back to the calling method.Primitive data typesVariable TypeDescriptionbyte8-bit signed (two’s complement) integershort16-bit signed (two’s complement) integerint32-bit signed (two’s complement) integerlong64-bit signed (two’s complement) integerfloat32-bit single-precision floating point (IEEE 754 standard)double64-bit double-precision floating point (IEEE 754 standard)char16-bit single Unicode characterbooleantrue or falseCharacters use the 16-bit Unicode encoding. It contains all of the usual characters, but also includes character sets for many languages other than English, including Greek, Cyrillic, Chinese, Arabic, etc. Java programs can use all of these characters, although most editors do not have built-in support for character sets other than the usual ASCII characters. Arrays and strings are not primitive types: they are objects.Versions JDK 1.0 1996, Solaris, Windows, MacOS Classic, Linux JDK 1.1 1997, Solaris, Windows, MacOS Classic, Linux JDK 1.2 1998, Solaris, Windows, Linux, ? JDK 1.3 2000 (also known as Java 2), Solaris, Windows, MacOS X, Linux JDK 1.4 2002, Solaris, Windows, MacOS X, Linux JDK 1.5 2003 (yet to be released)Java was initially released as the Java Development Kit 1.0 (JDK 1.0). This included the Java runtime (the virtual machine and the class libraries), and the development tools (e.g. the Javac compiler). Later, Sun also provided a runtime-only package, called the Java Runtime Environment (JRE). The first name stuck, however, so usually people refer to a particular version of Java by its JDK version (e.g. JDK 1.4). The JDKs of version 1.2 and later versions are often called Java 2 as well. For example, the official name of JDK 1.4 is The Java(TM) 2 Platform, Standard Edition version 1.4.The language as such has been stable since JDK 1.0; the class libraries that come with the JDK got larger and have changed in some parts. Extensions and architectures closely tied to the Java programming language include: J2EE, J2ME, JNDI, JSML, JDBC, JAIN, JDMK, Jini, Jiro, JXTA, JavaSpaces, JMI.1.5 (codename Tiger) is scheduled to be released in late 2003. Major changes include: Generics – Provides compile-time type safety for collections and eliminates the drudgery of casting. Autoboxing/unboxing – Eliminates the drudgery of manual conversion between primitive types (such as int) and wrapper types (such as Integer). Metadata – Lets you avoid writing boilerplate code, by enabling tools to generate it from annotations in the source code. This leads to a “declarative” programming style where the programmer says what should be done and tools emit the code to do it.(from [1] (http://java.sun.com/features/2003/05/bloch_qa.html))Interpreted versionThere is an interpreted version of Java called beanshell which may be used as a shell scripting language.The interpreter may be embedded in a Java application to make it scriptable. A good starting point for learning Java is the Sun tutorial on Java Programming, found at http://java.sun.com/docs/books/tutorial/.Another very helpful page for beginners and experts alike is the current Java Syntax page for the latest Java API, Java 2 v1.4.2, also from the Sun site, found at http://java.sun.com/j2se/1.4.2/docs/api/See also Java platform Java API Java virtual machine gcc (includes a Java to machine language compiler) Comparison of Java to C++. JINI Eclipse (Open source IDE) NetBeans (Another open source IDE) Optimization of JavaExternal links Official Java Home Site (http://java.sun.com) Original Java whitepaper (http://java.sun.com/docs/white/langenv/) beanshell (http://www.beanshell.org) Interpreted version The Java Language Specification, 2nd edition (http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html) Pedantic description of all of the Java language Java newsgroup (news:comp.lang.java) (Google’s web interface (http://groups.google.com/groups?group=comp.lang.java)) A pure java desktop (http://www.jdistro.com/) Javapedia project (http://wiki.java.net/bin/view/Javapedia/) A comparison of Java vs. C++ (http://www.bucketobits.com/thoughtson.html#_JavaVsCPlusPlus)This article is licensed under the GNU Free Documentation License, and uses material from the Wikipedia article “java programming language”.
Related Search :
web hosting companies,best web hosting company,web host review,web hosting control panel,web hosting mexico,blue host web mail,web hosting affiliate program,free web hosting companies
web hosting uk com,,best web hosting for business,cheap web hosting with free domain,best web hosts review,uk web hosting companies,how to be a web host,how to promote web hosting business
Recommended Posts
How to find discounted hosting
March 14, 2020
How we test and evaluate web hosting service?
March 14, 2020

Affordable Web Hosting Services
March 4, 2019