| The term Java actual refers to more than just a particular 
              language like C or Pascal. Java encompasses several parts, including 
              :  
              A high level language – 
                the Java language is a high level one that at a glance looks very 
                similar to C and C++ but offers many unique features of its own. 
                
 
Java bytecode - a compiler, 
                such as Sun's javac, 
                transforms the Java language source code to bytecode that runs 
                in the JVM. 
 
Java Virtual Machine (JVM) 
                – a program, such as Sun's java, 
                that runs on a given platform and takes the bytecode programs 
                as input and interprets them just as if it were a physical processor 
                executing machine code. (See Chapter 
                24 for examples of processors that in fact do execute Java 
                bytecode directly.) Sun provides a set of programming tools such as javac, 
               java 
              and others in a bundle that it calls a Java Software Development 
              Kit for each version of the language and for different platforms 
              such as Windows, Linux, etc.. Sun also provides a runtime bundle 
              with just the JVM when the programming tools are not needed.  Note that because of the open nature of Java (see below), any or 
              all of these parts can be replaced by non-Sun components. For example, 
              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. Similarly, many JVMs have been written 
              by groups outside of Sun.  In this book and web course, when we use the term Java we are referring 
              to the the high level language unless noted otherwise. Also, those 
              packages that come with the SDK for a given version will be referred 
              to as comprising the core language for that version, as distinguished 
              from optional or third party packages.  Java, 
              Open or Closed? Java is not quite an open language but not quite a proprietary 
              one either. All the core language products - compiler, virtual machines 
              (VM), class packages, and other components - are free. Detailed 
              specifications and source code are made openly available.  The Java Community Process 
              (JCP) leads the development of new standards for the language. Other companies and organizations can legally create a clean 
              sheet compiler and/or a Virtual Machine as long as it follows 
              the publicly available specifications. Microsoft did this with the 
              Version 1.1 JVM that it used in its Internet Explorer browser.
 
 Sun, however, does still assert final say on the specifications 
              and controls the copyrights to logos, and trademarks.
 
 For example, Microsoft's VM differed in a some significant details 
              from the specifications and Sun accused Microsoft of attempting 
              to weaken Java's "write once, run anywhere" capabilities. 
              Sun sued Microsoft and the dispute was later settled out of court.
 References and Web Resources Latest update: Oct.9.2004 |