Datastructures and algorithms, Part 2
Last month's column brought you into the computer science world of datastructures and algorithms by focusing on the array
datastructure and associated algorithms. Developers view the array as a fundamental datastructure because it serves as the
basis for more complex datastructures, such as stacks, queues, and trees. Developers also view the fundamental linked-list
datastructure as a foundation for more complex datastructures.
Jeff Friesen,
June 2003
Study guide: Datastructures and algorithms, Part 2
Welcome to the Java 101 study guide. This guide
complements "
Datastructures And Algorithms, Part 2." It provides a glossary
of terms specific to that article, tips and cautions, solutions to
last month's homework, and Jeff Friesen's answers to questions from
your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
June 2003
Datastructures and algorithms, Part 1
Computer science emphasizes two important topics: datastructures and algorithms. Those topics are important because the choices
you make for a program's datastructures and algorithms affect that program's memory usage (for datastructures) and CPU time
(for algorithms that interact with those datastructures). When choosing a datastructure or algorithm, you sometimes discover
an inverse relationship between memory usage and CPU time: the less memory a datastructure uses, the more CPU time associated
algorithms need to process the datastructure's data items, which are primitive type values or objects, via references. Also,
the more memory a datastructure uses, the less CPU time associated algorithms need to process the data items—and faster algorithms
result. This inverse relationship appears in Figure 1.
Jeff Friesen,
May 2003
Study guide: Datastructures and algorithms, Part 1
Welcome to the Java 101 study guide. This guide
complements "
Data Structures And Algorithms, Part 1." It provides a glossary
of terms specific to that article, tips and cautions, homework, and
Jeff Friesen's answers to questions from your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
May 2003
Regular expressions simplify pattern-matching code
Text processing frequently requires code to match text against patterns. That capability makes possible text searches, email
header validation, custom text creation from generic text (e.g., "Dear Mr. Smith" instead of "Dear Customer"), and so on.
Java supports pattern matching via its character and assorted string classes. Because that low-level support commonly leads
to complex pattern-matching code, Java also offers regular expressions to help you write simpler code.
Jeff Friesen,
February 2003
Study guide: Regular expressions simplify pattern-matching code
Welcome to the Java 101 study guide. This guide
complements "
Regular Expressions Simplify Pattern-Matching Code." It
provides a glossary of terms specific to that article, tips and
cautions, new homework, solutions to last month's homework, and
Jeff Friesen's answers to questions from your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
February 2003
Tools of the trade, Part 3
What task do you perform after creating your Java program with a development tool, such as JCreator, and thoroughly testing
that program with a testing tool, such as Jtest? Answer: Prepare the program for installation on your customers' computers.
How do you accomplish that task? Either create your own installation program, which might take as long to create as the program
to be installed, or obtain a tool that creates that installation program for you. However, the J2SE (Java 2 Platform, Standard
Edition) SDK doesn't provide such a tool. Although the SDK provides a jar tool that simplifies distribution by packaging a
program's classfiles and other files into a jar file, that tool proves appropriate only for simple installations. For more
complex installations, which might involve displaying a license agreement a customer must accept before installation proceeds,
you must use an appropriate non-SDK installation tool, such as InstallAnywhere, which this article explores.
Jeff Friesen,
January 2003
Study guide: Tools of the trade, Part 3
Welcome to the Java 101 study guide. This guide
complements "
Tools of the Trade, Part 3." It provides a glossary of terms
specific to that article, tips and cautions, new homework,
solutions to last month's homework, and Jeff Friesen's answers to
questions from your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
January 2003
Tools of the trade, Part 2
Sun Microsystems' Java 2 SDK tools prove helpful for building small Java programs. However, they lack features for the rapid
development and thorough testing that large Java programs need. Furthermore, no SDK tool simplifies the installation of a
Java program's classfiles (and other files) on multiple platforms. Thus, a world of non-SDK Java tools have evolved, tools
that facilitate the development, testing, and installation of Java programs. In this series, I explore some of those tools:
the JCreator development tool (which I explored in Part 1), the InstallAnywhere installation tool (which I will explore in
Part 3), and the Jtest testing tool (which I explore this month). Before exploring Jtest, I introduce testing in a Java context.
Jeff Friesen,
December 2002
Study guide: Tools of the trade, Part 2
Welcome to the Java 101 study guide. This guide
complements "
Tools of the Trade, Part 2." It provides a glossary of terms
specific to that article, tips and cautions, new homework,
solutions to last month's homework, and Jeff Friesen's answers to
questions from your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
December 2002
Tools of the trade, Part 1
Although I use Java 2 Platform, Standard Edition (J2SE) tools (such as javac) throughout Java 101, a world of Java tools exists
beyond the SDK. I would do you a disservice if I did not explore some of those tools in this column. Therefore, this month's
Java 101 article introduces a three-part series that explores one non-SDK Java tool from each of the following three categories:
Jeff Friesen,
November 2002
Study guide: Tools of the trade, Part 1
Welcome to the Java 101 study guide. This guide
complements "
Tools of the Trade, Part 1." It provides a glossary of terms
specific to that article, tips and cautions, new homework,
solutions to last month's homework, and Jeff Friesen's answers to
questions from your fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically.
Jeff Friesen,
November 2002
Java's character and assorted string classes support text-processing
Text can represent a combination of digits, letters, punctuation, words, sentences, and more. Computer programs that process
text need assistance (from their associated languages) to represent and manipulate text. Java provides such assistance through
the Character, String, StringBuffer, and StringTokenizer classes. In this article, you'll create objects from these classes
and examine their various methods. You'll also receive answers to three mysteries: why Java regards a string literal as a
String object, why String objects are immutable (and how immutability relates to string internment), and what happens behind
the scenes when the string concatenation operator concatenates two strings into a single string.
Jeff Friesen,
October 2002
Study guide: Java's character and assorted string classes support text-processing
Welcome to the Java 101 study guide. This guide
complements "
Java's Character and Assorted String Classes Support
Text-Processing." It provides a glossary of terms specific to
that article, tips and cautions, new homework, solutions to last
month's homework, and Jeff Friesen's answers to questions from your
fellow students.
The Java 101 study guides are evolving
documents—they change periodically. For example, if you
submit a question long after Jeff posts the relevant study guide,
your question and his answer will eventually make its way onto that
guide. Furthermore, from time to time, he will post additional
examples and other material that clarifies an article's topic, so
be sure to revisit the
study guides periodically. Updated: October 21,
2002
Jeff Friesen,
October 2002
Packages organize classes and interfaces
Why reinvent the wheel? That cliche applies to software development where some developers frequently rewrite the same code
for different programs. Two disadvantages with that approach are:
Jeff Friesen,
September 2002
Recent top five:
Let's talk about exceptions ...
How do you handle exceptions? Do you think upfront about the type of exceptions that you want to catch or do you just let
the outside world handle it?
-- Jeroen van Bergen in JW Blogs