Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Java Platform overview (JP) History of Java [1] 1990 • James Gosling, Bill Joy and others at Sun Microsystems developed a language called Oak. Primarily they wanted this to control microprocessors embedded in consumer items like cable set-top boxes, VCRs, toasters and PDAs To serve the above goals, Oak had to be Platform independent (multiplicity of manufacturers) Extremely reliable Compact By 1993 – Interactive TV and PDA markets failed to take off – The Internet and Web explosion began then, and so Sun shifted the target market to Internet applications and changed the project name to Java from Oak • 1994 – Sun’s HotJava browser appeared , illustrating the power of applets – programs that run within a browser, as well as showing the power of Java in speeding up program development History of Java [2] Growth Riding along with the explosion of interest and publicity of the internet, Java quickly gained widespread recognition and expectations grew for it to become the dominant software for browser and consumer applications Early versions of Java did not possess the breadth or depth of capabilities needed for client (i.e.consumer) applications. People say that the graphics in Java 1.0 appeared crude and clumsy compared to programs developed in C with libraries • Applets – Became popular and remained common but don’t dominate interactive or multimedia displays on web pages. • 1994 – Sun’s HotJava browser appeared , illustrating the power of applets – programs that run within a browser, as well as showing the power of Java in speeding up program development History of Java [3] Results Java has not been too successful in the development of consumer application. However, Java’s capabilities grew with the release of newer and expanded versions and it has become a very popular language for development of enterprise or middleware applications such as on-line web stores, transaction processing, database interfaces and so on • Other – Java has also become common on smaller platforms such as cell phones and PDAs. Java is now used on several types of cell phone models Various releases of Java [1] Version and year What it contained Remarks 1.0, 1995 8 packages with 212 classes (referred to as the JDK – Java Development Kit) Since introduction, Sun has released a new version of Java every 2 years, which brought enhancements, new capabilities and fixes to bugs (and of course new bugs !). Until recently, the versions were numbered as 1.x (Intermediate releases were labeled as 1.x.y as in 1.4.2). Later it was referred to as Java 5.0 rather than 1.5 1.1, 1997 23 packages, 504 classes Improvements – better event handling, inner classes Swing packages of greatly improved graphics , but not included with the core language 1.2, 1999 59 packages, 1520 classes (also called the Java 2 Platform) Code and tools distributed as The Software Development Kit (SDK) Java Foundation Classes (JFC), based on Swing, for improved graphics. Collections API included support for various lists, sets and hash maps 1.3, 2000 76 packages, 1842 classes Performance enhancements including the Hotspot virtual machine Various releases of Java [2] Version and year What it contained Remarks 1.4, 2002 135 packages, 2991 classes Improved I/O, XML support etc., 5.0, 2004 (previously 1.5) 165 packages, over 3000 classes Faster startup and smaller memory footprint Generics, Formatted output and improved multithreading features 6.0, 2008 –In the late 1990s, Sun split off specialized branches or editions of Java. One is aimed at small, embedded applications and the other for large scale middleware applications. –Micro Java : Embedded systems as cell phones and device controllers offer reduced resources as compared with desktop PCs. This may mean less or no disk space, less of other types of non-volatile memory and smaller or no display. The slimmed down versions of Java are JavaCard, EmbeddedJava, PersonalJava, J2ME (Java 2 Platform, Micro Edition) –J2EE (Java 2 Platform, Enterprise Edition) With the Java 2 platform came a separate version with enhanced resources targeted at Enterprise applications. The J2EE now provides a wide array of tools for building middleware software such as database access applications, online storefronts and other services. General remarks for the beginner Conventions of name All of these editions and version numbers can be quiet confusing for the beginner. Terms change such as Java Development Kit becoming Software Development Kit. The terms Java 1.x, SDK 1.x and J2SE 1.x are interchangeably used, as well as for Java 5.0, SDK 5.0 and J2SE 5.0 • The Java Platform – The word “Platform” is used to denote the whole Java programming environment including the compiler, JVM and the various other tools available for working with the language. Source program In Java javac bytecode java Java Virtual Machine (interpret the bytecode Like a physical processor) Underlying OS (Windows / Unix / …) –Sun provides set of programming tools such as javac, java and others in a bundle it calls the Java Software Development Kit, a separate one offered for different platforms such as Windows, Linux etc., It also provides a run-time bundle only with the JVM when the programming tools are not needed. –Because of the open nature of Java, any part of these can be replaced by non-Sun components. Just as many different languages can create machine code for a given processor, compilers of other languages have been created that output bytecode to run in the JVM. Many JVMs have been written by groups outside of Sun (e.g. Microsoft has its own version of the JVM). Features of Java Platform Independence • Compiler/Interpreter Combo – The Write-Once-RunAnywhere ideal has not been achieved (tuning for different platforms usually required), but closer than with other languages. – – Object Oriented Object oriented throughout no coding outside of class definitions, including main(). An extensive class library available in the core language packages. • Robust – • Code is compiled to bytecodes that are interpreted by a Java virtual machines (JVM) . This provides portability to any machine for which a virtual machine has been written. The two steps of compilation and interpretation allow for extensive code checking and improved security. Exception handling built-in, strong type checking (that is, all data must be declared an explicit type), local variables must be initialized. Automatic Memory Management – Automatic garbage collection memory management handled by JVM. Features of Java … Security No memory pointers Programs runs inside the virtual machine sandbox Array index limit checking Good Performance Interpretation of bytecodes slowed performance in early versions, but advanced virtual machines with adaptive and just-in-time compilation and other techniques now typically provide performance up to 50% to 100% the speed of C++ programs. • Threading – – – Lightweight processes, called threads, can easily be spun off to perform multiprocessing. Can take advantage of multiprocessors where available Great for multimedia displays. • Built-in Networking – Java was designed with networking in mind and comes with many classes to develop sophisticated Internet communications.