Opening up new ports to Java with javax.comm
One of the more interesting technologies to come out of Sun's Java
Software Division recently has not had nearly the fanfare of
Java3D, JFC, or even the 1.2 version of the JDK. I'm talking about
the communications library: javax.comm....
My ENIGMAtic Java Ring
The Java Ring was a tremendous sensation at the JavaOne conference
at Moscone last March. After the initial excitement of Java running
on a ring had passed, the main question on developers' minds was:
How do I program it? Even more...
Using threads with collections, Part 2
In this second part of his discussion on using threads with collections, Chuck McManis subsets a collection, discusses the issues that arise when multiple threads use it, and demonstrates, via a unique applet, what is going on inside...
Using threads with collections, Part 1
This first article in a two-part series defines the issues associated with multiple threads and collections, then describes a collection that starts off simple but gets much more complicated on the way to becoming thread-aware.
An in-depth look at Java's character type
Some aspects of the Java language look like C but differ
in significant ways. One of the most fundamental of these is the
representation of characters. What started for me as a simple
question "Why is PrintStream, the stream used by...
A first look at Borland's JBuilder IDE
When Java was first released, Borland was one of the first
companies to enter into the Java tools market. That entry consisted
of some pasted-on attachments to their C++ product Borland C++ 5.0.
This strategy was similar to the one...
A look at inner classes
Probably the most controversial change in JDK 1.1 was the
introduction of inner classes. The controversy stems from
the fact that most people consider inner classes to be a change to
the Java language, and thus inappropriate to a...
Take an in-depth look at the Java Reflection API
When you are creating tools for a programming language that are
written in that programming language, sometimes you have
to look "under the covers." The process of inspecting components of
the program for meta-information -- that is,...
Take a look inside Java classes
The Java language's safety features often make it difficult to get
to information about a Java class other than what the Java
virtual machine wants you to know. This month I'll take a look at
class files with an eye toward...
Build an interpreter in Java -- Implement the execution engine
One of the nicer aspects of programming in Java is that once the
foundation is solid, building upon it is easy. Now that we have our
interpreted language parsed into Java objects, implementing the
execution engine is straightforward....
How to build an interpreter in Java, Part 2: The structure
Constructing an interpreter in Java ties together many different
programming techniques. Java object orientation makes implementing
the interpreter both straightforward and easy to grasp by any
programmer. Part 2 of this column looks...
How to build an interpreter in Java, Part 1: The BASICs
Complex applications include a large number of configuration
options, and these applications often can be dynamically programmed
using scripting languages (also known as macro languages). If you
use Java to create an interpreter for a...
Lexical analysis, Part 2: Build an application
Building on the lessons gleaned from last month's article, learn
how to convert human-readable text into machine-readable data using
a StreamTokenizer in an actual application. (3,400 words)
Lexical analysis and Java: Part 1
Reading configuration information, interpreting parameters, and
importing data are tasks that call for simple parsers in your Java
application. Java provides some basic tools in the form of lexical
analyzer classes to make this task...
Code reuse and object-oriented systems
The power of object-oriented systems lies in their promise of code
reuse. This promise is predicated on the assertion that if you
build generic objects they can be used and reused. Some people use
the Java notion of "interfaces" to...
Container support for objects in Java 1.0.2
Many aspects of programming revolve around the organization of data
structures. In the object-oriented world, organizing objects into
containers has become a high art. This column will look at
container support in Java 1.0.2 and will...
Not using garbage collection
Java is a garbage-collected run-time system, which frees the
programmer from manually tracking allocation and deallocation of
memory. However, as in manually managed systems, performance can be
improved if you think ahead about the...