Download Chapter 3

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 3
Programs and Packages
1
Java Virtual Machine (JVM)
• Java programs execute on the JVM.
• The JVM is a virtual rather than a physical
machine, although the JVM has been
implemented in silicon.
• The JVM is typically implemented as a runtime interpreter that translates Java bytecode
instructions into native instruction codes,
which the host platform executes.
2
Java Virtual Machine (JVM)
• The java utility in the JDK provides the
JVM as a run-time interpreter.
• The JVM provides a run-time environment
(runtime for short) that enables programs to
execute on a host platform.
• The Java runtime can work with a security
manager to determine which operations a
program can perform on the host platform.
3
Program types
• Java has four program types, although the
differences among them are shallow.
• The four types are:
–
–
–
–
Application
Applet
Servlet
Bean
4
Application type
• An application is a standalone program in
the sense of requiring only the JVM to
execute.
• An application does not require a host
program such as a browser.
• An application has main as its entry point.
5
Applet type
• An applet in the original sense is a small
program typically downloaded from a
server to a client machine.
• A Web browser equipped with a JVM
typically acts as the host program for an
applet.
• An applet is typically launched through an
HTML or equivalent document.
6
Applet type
• An applet typically operates under a strict
security manager, which imposes sandbox
security. Such security prevents an applet
from performing potentially dangerous
operations such as reading from or writing
to the local disk.
• An applet’s class descends from the
standard Applet class.
7
Servlet type
• A servlet is a program that executes on a
server machine, typically to process a
request submitted from a client machine.
• A servlet’s host program is typically a Web
server, which provides a JVM.
• A servlet, like an applet, is typically
launched from a Web browser but, unlike an
applet, executes on the server.
8
Servlet type
• A servlet commonly performs database
operations and generates dynamic Web
content to displayed on a client’s browser.
• A servlet’s class either implements the
standard Servlet interface or descends
from a class that implements this interface.
9
Bean type
• A bean is a software component, that is, a
prebuilt software part that can be integrated
with others to build an application.
• A bean typically has a distinct, special
purpose. Examples are calendar beans, login
beans, email beans, and so forth.
• A bean’s class or an ancestor implements
the standard Serializable interface.
10
Summary of program types
• A given piece of Java code could, in
principle, belong to each program type.
– Every applet is automatically a bean, for
instance.
• The key point is that the very same
programming constructs are available
throughout the program types.
11
Packages
• Files with a .class extension are aggregated
into packages, or collections of related
classes.
• Packages may contain subpackages to
arbitrary levels.
• The primary package is java and its main
subpackage is lang.
12
Packages
• All classes in the java.lang package are
automatically imported into every program.
• Programmers typically import classes
from packages to avoid using fully qualified
names. If a program imports the class
java.util.Date, the programmer then
can use Date instead of the fully qualified
name.
13
Packages
• The java and the javax packages are
standard packages.
– The javax packages are extensions to the
earlier java packages.
• The standard packages support string and
text processing, numeric computation,
networking, graphics, security, and so on.
14
Packages
• Packages can be used to resolve name
conflicts.
– The java.awt package has a List class and
the java.util package has a List
interface. The fully qualified names
java.awt.List
java.util.List
disambiguate.
15
Packages
• Every class belongs to a package.
• The package to which a class belongs can
be explicitly declared with the package
statement in a source file.
• A class belongs to a default unnamed
package if a containing package is not
explicitly declared.
16
package statement
• The package statement, if present, occurs as
the first uncommented line in a source file.
– The source file Hi.java could begin
package hiPkg; // Note: 1st line
import java.util.Date;
class Hi {
...
17
CLASSPATH Variable
• Utilities such as the compiler and the runtime interpreter can find standard packages
and the classes contained therein.
• The CLASSPATH environment variable can
be set so that these utilities can find
programmer-defined classes in their
containing packages, whether explicitly
named or default.
18
Subdirectories as subpackages
• A hierarchical file system with directories
and subdirectories can be used to implement
packages and subpackages.
• Suppose that directory MAIN contains a
subdirectory SUB. A source file in MAIN
could treat SUB as a subpackage and import
all of the classes therein with the command
import SUB.*;
19
Summary of packages
• Packages are a convenient way to group
related classes into software libraries.
Standard packages such as java.math do
precisely this.
• For small programs and projects, default
packages are typically sufficient. Explicitly
named packages are especially useful for
large projects with many programmers.
20