The following excerpt is
from "Inside Java
WorkShop," by Lynn
Weaver & Bob Jervis.
Sun Microsystems
Press/Prentice Hall PTR
book. (ISBN
0-13-858234-3; $39.95US)
Copyright Sun
Microsystems Inc., 1997.
With the release of the
Java 1.1 API, Java
developers have even more
tools to work with. Two
important abilities that
were added to the Java
1.1 API include the Java
Database Connectivity
(JDBC) objects and
objects to handle
Serialization. JDBC
provides developers with
the means to connect to
any type of database and
perform queries and
updates against the data
located in the database.
The JDBC API finally
gives developers the
ability to create usable
business solutions using
Java. Another new
ability added to the Java
language is the ability
to use Serialization.
Serialization is the
process by which the
application can send
program objects through a
stream, which can be a
file stream or a network
stream. Sending objects
through a stream will
allow developers to
create solutions that
were not available until
now.
Almost every working
professional has
experienced the tedium
and frustration that
results from scheduling a
meeting for multiple
attendees with
potentially conflicting
schedules plus additional
constraints imposed by
the meeting rooms and
other resources. This
problem deserves serious
attention as many people
in typical organizations
have to spend a large
portion of their working
time in scheduling and
attending meetings. With
autonomous agents [1],
which can schedule
meetings and manage
calendars on behalf of
their users, the savings
in time and effort can be
tremendous. Users can
then be relieved for more
creative and productive
tasks.
By Suchitra Gupta; Suresh Ramaswamy; Jeff Hartkopf
Introduction In the first
article of this series,
we compared how Java and
C++ support various
object-oriented concepts.
In this second and final
part, we cover other
programming language
concepts and examine
differences in how the
two languages support
them. Each programming
language concept has its
own section, first
presenting the concept in
commonly-used terms and
then comparing how ANSI
C++ and Java 1.0
implement, or can be used
to implement, it.
Welcome to Java
Foundations! Java is
purported, by its
designers, to be a
"simple"
programming language.
While reasonable
arguments can be made
that illustrate Java's
simplicity in comparison
to a language like C++,
developers coming from
languages such as the
xBASE derivatives, Visual
Basic or PowerBuilder,
will probably not agree
that Java is simple at
all. To fully exploit the
power of Java, you need
to understand and apply
the principles of
object-oriented analysis,
design and programming.
You need to learn the
nearly 150 classes that
comprise the core Java
class libraries. You need
to have at least a basic
understanding of
distributed software
component models such as
CORBA and
COM/OLE/ACTIVEX. To
develop network and
Internet applications you
need to understand
client/server principles,
sockets, URLs, etc. In
short, regardless of what
some publishers may
imply, Java is not a
programming language for
"dummies" or
"idiots". Nor
will the average
programmer be more than
marginally proficient in
Java after 21 days of
experience.
One of the most
significant aspects of
Java programming is that
it creates applications
that have extraordinary
relevance to computer
security. Few UNIX
administrators would be
prepared to allow
millions of users to
execute programs as root
(the administrative
superuser) on their
system, yet this level of
potentially total power
is what every user cedes
when they point their
browser at a URL
containing some form of
Java executable. Because
of this, knowledge of
computer security is
becoming a requirement
for Java programmers, and
Java developers are being
held accountable for the
security implications of
their code. Java experts
who can speak
authoritatively on
security issues will be
in greater demand.
Introduction Much of the
excitement about Java
comes from C++
programmers looking for a
better way to develop
software. In this article
we take an in-depth look
at Java from the
perspective of a C++
expert who wishes to
quickly come up to speed
and transfer hard-earned
knowledge of C++ to the
new language.
Ever since it was
announced in May of
1996, Java Beans has been
a topic of great interest
among Java developers.
The first generation Java
technology embodied
several modern software
engineering concepts such
as object-orientation,
platform independence,
multithreading, network
awareness, etc. However,
it lacked a few important
elements, including
support for visual
assembly of software
components, object
persistence and
distributed computing.
Java Beans is the next
generation Java
technology that not only
adds the functionality it
lacked but also makes
Java programs more
portable and
interoperable with a
number of component
models that include
Microsoft's ActiveX/COM,
Netscapes's LiveConnect
and IBM's OpenDoc.
Introduction Large-scale
distributed applications
and shells often require
the execution of external
modules. Because the
modules are not known at
compilation time, this
execution must be
dynamic. For example,
upon entering a command
at the UNIX prompt, the
shell must find, load,
and execute the requested
program or application.
Although several methods
have been found for
loading (and executing)
dynamic Java classes,
launching a Java
Application from within
another Java program
(applet or application)
remains a difficult task.
Last month, we began
looking at building data
structures in Java. The
idea for the article was
inspired by the constant
posts to comp.lang.java
from people who were lost
without pointers. The
data structures which we
introduced were useful,
but were really more of a
starting point for some
more advanced data
structures. The third
data structure covered
last month was a binary
search tree. As you will
remember, binary search
trees are great for
storing large amounts of
information, as search
time is much faster than
for a linked-list. The
problem with binary
trees, however, is the
worst case scenario. When
the input stream is
already in order (reverse
or forward), then our
binary tree becomes a
simple linked list. This,
of course, can bring our
worst search time from
O(lgN) all the way down
to O(N) which is no good
when you have to search
large amounts of data.
Java applets can be used
to provide better dynamic
interaction with the user
on Web pages than simple
CGI scripts and html
forms. However, like any
programming language, the
code does not spring
forth perfect, but rather
is designed, implemented,
and then debugged.
But an equally compelling
story can be told about
the virtues of building
the server-side of a web
application in Java as
well. This article will
outline the major design
issues of creating a
server-side Java
solution, and though I
promise not to make this
an infomercial, a number
of examples will be drawn
from one particular
implementation, a
commercial product called
Dynamo which I played a
key role in creating.
Introduction Scriptic is
an experimental extension
to the Java language. Why
is this new language on
top on another brand new
one? What problems does
it solve?
Java programs can be
classified as either Java
applications or Java
applets, based on the
modules' execution
content. While applets
require the presence of a
Java-enabled browser (or
an AppletViewer),
applications are designed
to run on the client
machine on the top of the
Java interpreter, without
the need for special
helper applications.
A common occurrence on
comp.lang. java is a post
questioning the ability
to create growable data
structures in Java. The
common belief tends to be
that pointers are
necessary to implement a
growable data structure.
This obviously stems from
experience with languages
like C or Pascal, where
one is forced to
manipulate pointers to
track memory in growable
data structures. If you
think about the data
structures, however, all
that is really necessary
to implement these
systems is the ability to
dynamically allocate
memory. Dynamic memory
allocation, a fundamental
part of any modern
programming language, is
actually much easier to
handle in Java than in C
or Pascal. This is
obviously due, in part,
to Java's automatic
garbage collection. Not
only does Java provide
for easier memory
management, but it also
provides several useful
classes and interfaces
which aid in the creation
of data structures. This
month's General Java
column will cover
creation of stacks,
queues, and trees in
Java.
Introduction Computing in
scientific and
engineering areas often
deals with manipulating
numbers that represent
physical entities, such
as durations, weights,
and forces. A common
source of errors in
scientific computing
involves processing
numbers that represent
different kinds of
entities, or that are
related to different
units, and utilizing the
result for additional
computation. A number is
referred to as
dimensioned when it
relates to a specific
entity such as distance,
time, or temperature, and
the number implies a
particular unit of
measure. A dimensionless
number, also known as a
nondimensional parameter,
is a ratio of physical
properties and conditions
of such a nature that the
resulting number has no
defining unit of weight,
duration, and so on.
Native methods are
functions written in C or
C++, compiled into a
library, and dynamically
loaded by the Java
runtime. This article
describes how Java
programs can call native
methods, and how native C
code can create Java
objects and invoke Java
methods. The examples are
written for Windows 95,
Windows NT and Solaris,
and should be portable to
other platforms.
When Sun Microsystems
introduced the Java
language, professional
software engineering and
network programming was
forever changed. Java's
language-level support
for platform-independent
software development,
multithreaded
applications, true
object-oriented program
design, and dynamic class
loading have proven to be
great tools for fast and
inexpensive software
prototype design.
Preface Current
difficulties in
developing and
maintaining software
within limited budgets
and challenging
development-schedule
constraints result in
part from the
shortcomings of existing
programming languages and
development environments.
In the context of
distributed programming
for the World Wide Web,
Sun Microsystems has
recently introduced the
Java programming language
environment. Since formal
announcement of Java in
May of 1995, a number of
companies have already
signed agreements to
license Sun's technology.
Among these new partners
are Netscape and Oracle.
Jan. 1, 1996 12:00 AM Reads: 7,405
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
I took the advice of a
friend of mine and
steered clear of the
'normal' movie theaters
and went a little out of
the way to go to a DLP
movie theater. The
experience
There are 8,909 books
listed on Amazon.com with
the word 'Investing' in
the title; there are(!)
27,146 books with the
word investment in the
title. Without having lo
This book is an update of
an earlier version that
was written for SQL
Server 2000. It employs
the Murach approach of
dual pages that repeat
and enhance the concepts
Reviewers overuse the
phrase 'required
reading,' but no other
description fits the new
book 'Ajax Security'
(2007, Addison Wesley,
470p). This exhaustive
tome from B
In my many years of
programming, almost 20
years now, I have used
countless integrated
development environments
(IDEs). I have used
everything from a simple
text edi