100 likes | 175 Views
Java Platform overview (JP). 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
E N D
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 History of Java [1] • 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
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 History of Java [2] • 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
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 History of Java [3] • 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 [2] • 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.
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 General remarks for the beginner • 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).
Platform Independence The Write-Once-Run-Anywhere 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. Features of Java • Compiler/Interpreter Combo • 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. • Robust • 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.
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. Features of Java … • 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.