-
原文
Java
2
Micro
Edition
and
the
World
of
Java
1
Introduction
The
computer
revolution
of
the
1970s
increased
the
demand
for
sophisticated
computersoftware
to
take
advantage
of
the
ever
-increasing
capacity
of
computers
to
process
C
program
ming
language
became
the
linchpin
that
enabled
programmers
to
buildsoftware
that
was
just
as
robust
as
the
computer
it
ran
on.
As
the
1980s
approached,
programmers
were
witnessing
anot
her
spurt
in
the
evolutionof
programming
language.
Computer
tec
hnology
advanced
beyond
the
capabilities
of
the
C
programming
l
anguage.
The
problem
wasn’t
new.
It
occurred
previously
and
ca
used
the
demise
of
generations
of
programming
languages.
The
problem
was
thatprograms
were
becoming
too
complicated
to
des
ign,
write,
and
manage
to
keep
up
with
the
capabilities
of
compu
ters.
It
was
around
this
time
that
a
design
concept
based
on
Sim
ula
67
and
Smalltalk
(from
the
late
1960s)
moved
programming
to
the
next
evolutionary
step.
This
was
the
period
when
object-or
iented
programming
(OOP),
and
with
it
a
new
programming
lang
uage
called
C++,
took
programmers
by
storm.
In
1979,
Bjarne
Stroustrup
of
Bell
Laboratories
in
New
Jersey
enhanced
the
C
programming
language
to
include
object-oriente
d
features.
He
called
the
language
C++.
(The
++
is
the
increme
ntal
operator
in
the
C
programming
language.)
C++
is
truly
an
e
nhancement
of
the
C
programming
language,
and
it
began
as
a
preprocessor
language
that
was
translated
into
C
syntax
before
t
he
program
was
processed
by
the
compiler.
Stroustrup
built
on
the
concept
of
a
class
(taken
from
Simula
67
and
Smalltalk),
from
which
instances
of
objects
are
created.
A
cl
ass
contains
data
members
and
member
functions
that
define
an
object’s
data
and
functionality.
He
also
introduced
the
concept
o
f
inheritance,
which
enabled
a
class
to
inherit
some
or
all
data
members
and
member
functions
from
one
or
more
other
classes
—
all
of
which
complements
the
concepts
of
object-oriented
progr
amming.
By
1988,
ANSI
officials
standardized
Stroustrup’s
C++
specific
ation.
2
Enter
Java
Just
as
C++
was
becoming
the
language
of
choice
for
buildin
g
industrial-strength
applications,
another
growth
spurt
in
the
evo
lution
of
programming
language
was
budding,
fertilized
by
the
lat
est
disruptive
technology
—
the
World
Wide
Web.
The
Internet
had
been
a
well-kept
secret
for
decades
before
the
National
Science
Foundation
(who
oversaw
the
Internet)
removed
barriers
that
pre
vented
commercialization.
Until
1991
when
it
was
opened
to
com
merce,
the
Internet
was
the
almost
exclusive
domain
of
governm
ent
agencies
and
the
academic
community.
Once
the
barrier
to
c
ommercialization
was
lifted,
the
World
Wide
Web
—
one
of
several
services
offered
on
the
Internet
—
became
a
virtual
community
ce
nter
where
visitors
could
get
free
information
about
practically
an
ything
and
browse
through
thousands
of
virtual
stores.
Browsers
power
the
World
Wide
Web.A
browser
translates
AS
CII
text
files
written
in
HTML
into
an
interactive
display
that
can
be
interpreted
on
any
machine.
As
long
as
the
browser
is
compat
ible
with
the
correct
version
of
HTML
and
HTTP
implementation,
any
computer
running
the
browser
can
use
the
same
HTML
docu
ment
without
having
to
modify
it
for
a
particular
type
of
compute
r,
which
was
something
unheard
of
at
the
time.
Programs
written
in
C
or
C++
are
machine
dependent
and
cannot
run
on
a
differ
ent
machine
unless
the
program
is
recompiled.
The
success
of
the
Internet
gave
renewed
focus
to
developin
g
a
machine-independent
programming
language.
And
the
same
year
the
Internet
was
commercialized,
five
technologists
at
Sun
Microsystems
set
out
to
do
just
that.
James
Gosling,
Patrick
Nau
ghton,
ChrisWarth,
Ed
Frank,
and
Mike
Sheridan
spent
18
months
developing
the
programming
language
they
called
Oak,
which
w
as
renamed
Java
when
this
new
language
made
its
debut
in
199
5.
Java
went
through
numerous
iterations
between
1991
and
199
5,
during
which
time
many
other
technologists
at
Sun
made
subs
tantial
contributions
to
the
language.
These
included
Bill
Joy,
Arth
ur
van
Hoff,
Jonathan
Payne,
Frank
Yelin,
and
Tim
Lindholm.
Although
Java
is
closely
associated
with
the
Internet,
it
was
d
eveloped
as
a
language
for
programming
software
that
could
be
embedded
into
electronic
devices
regardless
of
the
type
of
CPU
u
sed
by
the
device.
This
is
known
as
the
EmbeddedJava
platform
and
is
in
continuous
use
today
for
closed
systems.
The
Java
team
from
Sun
succeeded
in
creating
a
portable
pro
gramming
language,
something
that
had
eluded
programmers
sin
ce
computers
were
first
programmed.
Their
success,
however,
wa
s
far
beyond
their
wildest
dreams.
The
same
concept
used
to
ma
ke
Java
programs
portable
to
electronic
devices
also
could
be
use
d
to
make
Java
programs
run
on
computers
running
Microsoft
Wi
ndows,
UNIX,
and
Macintosh.
Timing
was
perfect.
The
Internet/in
tranet
had
whetted
corporate
America’s
appetite
for
cost-effective,
portable
programs
that
could
replace
mission-critical
applications
within
the
corporation.
And
Java
had
proven
itself
as
a
program
ming
language
used
to
successfully
develop
machine-independent
applications.
3
Java
Virtual
Machine
Writing
Java
programs
is
similar
to
writing
C++
programs
in
that
the
programmer
writes
source
code
that
contains
instruction
s
into
an
editor,
or
in
an
integrated
development
environment,
and
then
the
source
code
is
compiled.
However,
th
at’s
where
Java
and
C++
part
ways.
The
compiling
and
linking
process
of
a
C++
program
results
in
an
executable
that
can
be
run
on
an
appropriate
machine.
In
contrast,
the
Java
compiler
converts
Java
source
code
into
bytecode
that
is
executed
by
the
Java
Virtual
M
achine
(JVM).
Machine-specific
instructions
are
not
included
in
bytecode.
Ins
tead,
they
already
reside
in
the
JVM,
which
is
machine
specific.
T
his
means
that
the
bytecode
might
contain
fewer
instructions
tha
t
need
to
be
translated
than
a
comparable
C++
program.
A
lthough
the
Java
compiler
generates
bytecode
that
must
be
interpreted
by
the
JVM
at
run
time,
the
number
of
instructions
that
need
translation
are
usually
minimal
and
have
already
been
optimized
by
the
Java
compiler.
4
Back
to
the
Future:
J2ME
Remember
that
Java
began
as
a
programming
language
to
cr
eate
programs
for
embedded
syst
ems
—
microcomputers
found
in
consumer
and
industrial
products
such
as
those
used
to
control
a
utomobiles
and
appliances.
The
development
team
at
Sun
worked
on
Java
in
the
early
1990s
to
address
the
programming
needs
o
f
the
fledgling
embedded
computer
market,
but
that
effort
was
si
detracked
by
more
compelling
opportunities
presented
by
the
Int
ernet.
As
those
opportunities
were
addressed,
a
new
breed
of
porta
ble
communications
devices
opened
other
opportunities
at
the
tur
n
of
the
century.
Cell
phones
expanded
J
2
M
E
:
T
h
e
C
o
m
p
l
e
t
e
R
e
f
e
r
e
n
c
e
from
voice
communications
devices
to
voice
and
text
communications
devices.
Pocket
electronic
telepho
ne
directories
evolved
into
personal
digital
assistants.
Chipmakers
were
releasing
new
products
at
this
time
that
were
designed
to
transfer
computing
power
from
a
desktop
computer
into
mobile
s
mall
computers
that
controlled
gas
pumps,
cable
television
boxes,
and
an
assortment
of
other
appliances.
The
time
was
right
for
the
next
evolution
of
Java.
However,
i
nstead
of
beefing
up
Java
with
additional
APIs,
the
team
at
Sun,
along
with
the
Java
Community
Process
Program,
dismantled
bot
h
the
Java
programming
language
and
the
Java
Virtual
Machine.
They
stripped
down
Java
APIs
and
the
JVM
to
the
minimum
coding
req
uired
to
provide
intelligence
to
embedded
systems
and
microcomputer
devices.
Thi
s
was
necessary
because
of
resource
constraints
imposed
upon
the
hardware
desig
n
of
these
devices.
The
result
of
their
efforts
is
J2ME.
J2ME
is
a
reduced
version
of
the
J
ava
API
and
Java
Virtual
Machine
that
is
designed
to
operate
wit
hin
the
sparse
resources
available
in
the
new
breed
of
embedded
computers
and
microcomputers.
5
How
J2ME
Is
Organized
Traditional
computing
devices
use
fairly
standard
hardware
co
nfigurations
such
as
a
display,
keyboard,mouse,
and
large
amoun
ts
of
memory
and
permanent
storage.
However,
the
new
breed
o
f
computing
devices
lacks
hardware
configuration
continuity
amon
g
devices.
Some
de
vices
don’t
have
a
display,
permanent
storage,
keyboard,
or
mouse.
And
memory
availability
is
inconsistent
am
ong
small
computing
devices.
The
lack
of
uniform
hardware
confi
guration
among
the
small
computing
devices
poses
a
formidable
challenge
for
the
Java
Community
Process
Program,
which
is
char
ged
with
developing
standards
for
the
JVM
and
the
J2ME
for
sma
ll
computing
devices.
J2ME
must
service
many
different
kinds
of
small
computing
d
evices,
including
screenphones,
digital
set-top
boxes
used
for
cabl
e
television,
cell
phones,
and
personal
digital
assistants.
The
chall
enge
for
the
Java
Community
Process
Program
is
to
develop
a
Ja
va
standard
that
can
be
implemented
on
small
computing
devices
that
have
nonstandard
hardware
configurations.
The
Java
Community
Process
Program
h
as
used
a
twofold
approach
to
addressing
the
needs
of
small
co
mputing
devices.
First,
they
defined
the
Java
run-time
environme
nt
and
core
classes
that
operate
on
each
device.
This
is
referred
to
as
the
configuration.
A
configuration
defines
the
Java
Virtual
M
achine
for
a
particular
small
computing
device.
There
are
two
con
figurations,
one
for
handheld
devices
and
the
other
for
plug-in
de
vices.
Next,
the
Java
Community
Process
Program
defined
a
profi
le
for
categories
of
small
computing
devices.
A
profile
consists
of
classes
that
enable
developers
to
implement
features
found
on
a
related
group
of
small
computing
devices.
6
J2ME
configurations
There
are
two
configurations
for
J2ME
as
of
this
writing.
Thes
e
are
Connected
Limited
Device
Configuration
(CLDC)
and
the
Co
nnected
Device
Configuration
(CDC).
The
CLDC
is
designed
for
16
-bit
or
32-bit
small
computing
devices
with
limited
amounts
of
m
emory.
CLDC
devices
usually
have
between
160KB
and
512KB
of
avai
lable
memory
and
are
battery
powered.
They
also
use
an
inconsi
stent,
small-bandwidth
network
wireless
connection
and
may
not
have
a
user
interface.
CLDC
devices
use
the
KJava
Virtual
Machine
(KVM)
implementation,
which
is
a
stripped-
down
version
of
the
JVM.
CLDC
devices
include
pagers,
personal
digital
assistants,
cell
phones,
de
dicated
terminals,
and
handheld
consumer
devices
with
between
128KB
and
512KB
of
m
emory.
CDC
devices
use
a
32-bit
architecture,
have
at
least
two
megaby
tes
of
memory
available,
and
implement
a
complete
functional
JVM.
CDC
devices
include
digital
set-top
boxes,
home
appliances,
navigation
syste
ms,
point-
of-sale
terminals,
and
smart
phones.
7
J2ME
Profiles
A
profile
consists
of
Java
classes
that
enable
implementation
of
features
for
either
a
particular
small
computing
device
or
for
a
class
of
small
computing
devices.
Small
computing
technology
co
ntinues
to
evolve,
and
with
that,
there
is
an
ongoing
process
of
defining
J2ME
profiles.
Seven
profiles
have
been
defined
as
of
thi
s
writing.
These
are
the
Foundation
Profile,
Game
Profile,
Mobile
Information
Device
Profile,
PDA
Profile,
Personal
Profile,
Personal
Basis
Profile,
and
RMI
Profile.
■
The
Foundation
Profile
is
used
with
the
CDC
configuration
and
is
the
core
for
nearly
all
other
profiles
used
with
the
CDC
configu
ration
because
the
Foundation
Profile
contains
core
Java
classes.
■
The
Game
Profile
is
also
used
with
the
CDC
configuration
and
contains
the
necessary
classes
for
developing
game
applications
f
or
any
small
computing
device
that
uses
the
CDC
configuration.
■
The
Mobile
Information
Device
Profile
(MIDP)
is
used
with
the
CLDC
configuration
and
contains
classes
that
provide
local
storag
e,
a
user
interface,
and
networking
capabilities
to
an
application
t
hat
runs
on
a
mobile
computing
device
such
as
Palm
OS
devices.
MIDP
is
used
with
wireless
Java
applications.
■
The
PDAProfile
(PDAP)
is
used
with
the
CLDC
configuration
an
d
contains
classes
that
utilize
sophisticated
resources
found
on
pe
rsonal
digital
assistants.
These
features
include
better
displays
an
d
larger
memory
than
similar
resources
found
on
MIDP
mobile
de
vices
(such
as
cell
phones).
■
The
Personal
Profile
is
used
with
the
CDC
configuration
and
th
e
Foundation
Profile
and
contains
classes
to
implement
a
complex
user
interface.
The
Foundation
Profile
provides
core
classes,
and
the
Personal
Profiles
provide
classes
to
implement
a
sophisticate
d
user
interface,
which
is
a
user
interface
that
is
capable
of
displ
aying
multiple
windows
at
a
time.
-
-
-
-
-
-
-
-
-
上一篇:服装设计与工程毕业论文
下一篇:TED演讲:珍惜年少时光,青春