Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
Java
- Language type:
- Description:
Java is a full-featured, portable object-oriented
language designed by research staff at
Sun Microsystems. The feel of the
Java language is fairly similar to that of C++,
but it also borrows ideas from Modula-3,
Mesa, and Objective-C.
The feature set of Java is fairly broad:
it has inheritance, strong type checking,
modularity (packages), exception handling,
polymorphism, concurrency, dynamic loading
of libraries, arrays, string handling,
garbage collection, and a pretty extensive
standard library. The newest version of
the language, Java 1.5
(aka Java 5.0), includes generics,
annotations, auto-boxing, var-args, as
well as many additional standard libraries.
The fundamental structural component of
a Java program is the class. All
data and methods in Java are associated
with some class, there is no 'global'
data or functions as in C++. Classes
can be members of packages; package
and class membership help determine
scope and visibility of data and methods.
Java does not include features that its
designers felt would compromise the
similicity or safety of the language, so
Java has no true pointers, no true
multiple inheritance, no operator
overloading, and no macro preprocessor.
The lack of multiple inheritance could
have been a serious shortcoming, but Java
does support the definition and interitance
of multiple stateless "interfaces", which
serve for most areas where multiple
inheritance might be desired. Java had
no facility for generic functions, but
that was added in Java 1.5.
The Java standard library packages
include extensive I/O facilities, a
comprehensive GUI toolkit,
collection classes, date/time support,
cryptographic security classes,
distributed computation support,
network interfaces, CORBA support,
XML support, and system interfaces.
Java is typically compiled to
platform-independent byte-code. These
byte-codes must be interpreted by a
Java Virtual Machine (JVM), which may
choose to compile the byte-codes further
into native machine instructions.
There is a strict definition of the
Java byte-code file format, the .class
file format, which ensures portability
of compiled Java classes.
In additional to normal application
development, Java is used to develop
embedded programs, called 'applets',
for web browsers and
other Java-enabled platforms.
This capability is an important part
of Java, and the standard library
packages include a security manager
to restrict the capabilities of Java
applets. These applet facilities
were important to Java's widespread
adoption and popularity.
Commercial Java compilers and development
environments are readily available; among
the most popular are products from Symantec
and Microsoft. Javasoft supports and
distributes a 'reference' Java implementation
known as the J2SE, it is free.
- Origin:
Gosling et al, Sun Microsystems, 1994-95.
- See Also:
- Remarks:
According to its designers, Java was
intended to be object-oriented, robust,
secure, architecture neutral, portable,
high-performance, threaded, and dynamic.
Certainly Java succeeds at being
object-oriented and threaded, it is
fairly architecture-neutral and quite
portable. Its performance was initially
poor, but newer JVM implementations that
employ just-in-time compilation have
helped to improve Java's execution
speed. Java
is fairly dynamic, but not as much so
as other interpreted languages like Lisp
or Perl.
Java information and software are
widely available in bookstores and
on the Web. Hundreds of add-on
packages and utilities supporting
Java development have been written,
and many of them are free.
Initiatives are underway for Java
microprocessors, a Java OS, Java
re-use framework (Beans), and a
ISO Java standard.
- Links:
-
-
-
-
- Date:
- Sample code:
import java.awt.*;
import java.util.*;
public class Showtime extends Frame implements Runnable {
Button quitBtn;
Label timeLbl;
Thread tthread;
public Showtime() {
super("Java Showtime");
setLayout(new FlowLayout());
quitBtn = new Button("Quit");
timeLbl = new Label((new Date()).toString());
add(quitBtn); add(timeLbl);
pack();
show();
tthread = new Thread(this);
tthread.run();
}
public boolean action(Event evt, Object what) {
if (evt.target == quitBtn) {
tthread.stop();
System.exit(0);
}
return super.action(evt,what);
}
public void run() {
while(true) {
try { Thread.sleep(10000); }
catch (Exception e) { }
timeLbl.setText((new Date()).toString());
}
}
public static void main(String [] argv) {
Showtime st = new Showtime();
}
}
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.