Java Programs
- anc/Ancestor.java --
collect parental info and output ancestors
- anc/AncestorFile.java --
like Ancestor program but input from file
- anc/HashDemo.java --
use a Hashtable to insert names
- approx/Approx.java --
approximate string matching
- args/Args.java --
print all the command line arguments
- args/Count.java --
count number of 'a's in 1st command line argument
- basic/Block.java --
// Block.java: compute Golden number and Gregorian correction for 1998
- basic/BodyMain1.java --
// BodyMain1.java: recursive class with classwide (static) variable
- basic/BodyMain2.java --
// BodyMain2.java: recursive class with user-defined constructor
- basic/BodyMain3.java --
class Body {
- basic/BodyMain4.java --
// BodyMain4.java: explicit constructor invocation
- basic/Flip.java --
import java.io.IOException;
- basic/PassByRef.java --
// Java objects are references; from Arnold and Gosling
- basic/PassByValue.java --
// Java uses call by value; from Arnold and Gosling
- basic/PrintDate.java --
import java.text.DateFormat;
- basic/StringFest.java --
examples of most of the methods of java.lang.String
- big/Misc.java --
import java.math.BigInteger;
- break/Break.java --
illustrate "break" and "continue" in Java
- bundle/Bundle.java --
internationalization of button labels
- bundle/Labels.java --
default resource bundle used in "Bundle.java"
- bundle/Labels_de.java --
resource bundle for locale "de", used in "Bundle.java"
- bundle/SimpleMenu.java --
// This example is from the book "Java in a Nutshell, Second Edition".
- byte/Byte.java --
class Byte {
- byte/Twos.java --
class Twos {
- calendar/Calendar.java --
import java.awt.*;
- calendar/Find.java --
import java.text.DateFormat;
- calendar/Gregorian.java --
Gregorian calendar class; keeps Julian Day count
- calendar/NextDate.java --
import java.io.DataInputStream;
- card/Equations.java --
// Equations.java: GUI application using CardLayout adapted from Boone
- cast/StaticTest.java --
// Two related classes
- cast/Subclass.java --
illustrate simple subclassing
- cast/Test.java --
// Two related classes
- cgi/CGI.java --
import Query;
- cgi/GetQuery.java --
import Query;
- cgi/PostQuery.java --
import Query;
- cgi/Query.java --
abstract class for CGI queries
- class/Abstract.java --
abstract class A {
- class/CircularA.java --
a class that extends CircularB
- class/CircularB.java --
a class that extends CircularA
- class/Classify.java --
import java.util.Date;
- class/Dispatch.java --
illustrates OO dynamic dispatch of methods
- class/Main.java --
public class Main {
- control/Days.java --
A Java program illustrating "case"
- control/DoWhile.java --
Example "do-while" loop
- control/Grade.java --
A Java program illustrating "if"
- control/Local.java --
// Local.java: common programming mistakes
- control/Month.java --
A Java program illustrating "case" statement
- control/WhileDemo.java --
Example "while" loop
- control/WordCount.java --
simple program counting lines, words, and chars
- copy/Copy.java --
Read line by line the standard input
- copy/NumberLines.java --
Read the standard input and number the lines
- copy/Read_10.java --
Read line by line the standard input (JDK 1.0)
- copy/Read_11.java --
Read line by line the standard input (JDK 1.1)
- copy/WC.java --
//
- crawler/Crawler.java --
import Tags;
- crawler/Tags.java --
import java.io.InputStream;
- crypt/Test.java --
import java.security.*;
- date/Now.java --
print the current day and time
- date/TimeLine.java --
powers of two seconds past the epoch
- div/Div.java --
// Div.java
- draw/DrawDemo.java --
draw all possible shapes
- draw/ShapesDemo.java --
/*
- echo/EchoClient.java --
import java.net.Socket;
- echo/EchoServer.java --
- email/Base64.java --
import java.io.File;
- email/Email-orig.java --
import java.net.*;
- email/Email.java --
"java Email recipient [mailserver]"
- email/MIME.java --
import Base64;
- encrypt/CryptTest.java --
import java.io.*;
- encrypt/DecryptTest.java --
import java.io.*;
- encrypt/DecryptedInputStream.java --
/*
- encrypt/EncryptedOutputStream.java --
/*
- except/Except.java --
Illustrate exception handling; from Anuff, Chapter 11
- except/FinallyDemo.java --
"finally" clause from Naughton, Chapter 10
- except/Pre.java --
try/catch statement and predefined exceptions
- except/Recurse.java --
// class Zero extends Exception {};
- except/Search.java --
Hypothetical stream class
- except/Try_Block.java --
class One_Exception extends Exception {
- file/Audio.java --
import SunAudioClip;
- file/AudioApplet.java --
import java.applet.Applet;
- file/FS.java --
import java.io.File;
- file/SunAudioClip.java --
import java.net.URL;
- final/DF.java --
public class DF {
- float/Bits.java --
class Bits {
- float/TestDouble.java --
illustrate 64 bit IEEE 754 floating point
- float/TestFloat.java --
illustrate 32 bit IEEE 754 floating point
- gui/Separation.java --
// Separation.java: Illustration separation of "business" and GUI logic
- hello/Constants.java --
A main program using constants in another class
- hello/Hello.java --
A Java stand-alone, main program
- hello/HelloWorld.java --
A Java stand-alone, main program
- hier/Hier.java --
GUI application illustrating component hierarchy
- i18n/AbsInsert.java --
import java.util.Locale;
- i18n/EurList.java --
class EurList extends EngList {
- i18n/I18N_Insert.java --
import java.util.Vector;
- i18n/Insert.java --
- i18n/InterCharacter.java --
// InterCharacter.java - translation to base character: no diacritic marks
- i18n/LangSort.java --
import EurList;
- i18n/SortedStrings.java --
import java.util.Vector;
- i18n/Vector.java --
- inner/Enclosing.java --
synchronization and inner classes
- inter/List.java --
illustrate the use of an interface with lists
- inter/PointPack.java --
convert/unconvert point to bytes
- io/Gzip.java --
import java.util.zip.*;
- load/BubbleSort.java --
import Sorter;
- load/Main.java --
import Sorter;
- load/Name.java --
create an instance of a class by name as string
- load/QuickSort.java --
import Sorter;
- load/SelectionSort.java --
import Sorter;
- load/Sorter.java --
interface Sorter {
- menu/MenuBarTest.java --
import java.awt.*;
- menu/MenuTest.java --
import java.awt.*;
- misc/Order.java --
public class Order {
- misc/Sub.java --
class Base {
- multicast/MulticastSender.java --
import java.net.*;
- multicast/MulticastSniffer.java --
import java.net.*;
- net/Client.java --
Client of the echo server
- net/Connection.java --
thread for all communication with a client
- net/Finger.java --
import java.net.*;
- net/Server.java --
Echo server
- net/WhatMachine.java --
Find out what machine we are running on
- net/cgi.java --
fragment illustrating posting to CGI
- net/file.java --
fragment illustrating file access as URL
- order/Order.java --
illustrate static initialization and order dependencies
- overload/Main.java --
// Main.java: basic overloading of methods
- overload/Overload.java --
// Overload.java
- pack/Access.java --
illustrate access to predefined packages
- pack/Pack.java --
illustrate the use of user-defined packages
- pack/another/C.java --
package another;
- pack/another/Sub.java --
package another;
- pack/one/Main.java --
package one;
- pack/tools/Hammer.java --
part of tools package illustrating packages
- pack/tools/Wrench.java --
part of tools package illustrating packages
- parallel/Functions.java --
class Functions {
- parallel/Parallel.java --
import Functions;
- property/List.java --
// List.java
- quit/Beep.java --
applet and application that beeps
- quit/Comm.java --
applet and application that beeps
- quit/Quit.java --
application with just a quit button
- quit/QuitCentered.java --
application with just a quit button
- quit/Tiny.java --
applet and application
- rmi/DateClient.java --
/* Copyright (c) 1996, 1997 Prominence Dot Com, Inc. *
- rmi/DateServer.java --
/* Copyright (c) 1996, 1997 Prominence Dot Com, Inc. *
- rmi/DateServerImpl.java --
/* Copyright (c) 1996, 1997 Prominence Dot Com, Inc. *
- rmi/Identifiable.java --
import java.rmi.Remote;
- rmi/IdentityClient.java --
import Identifiable;
- rmi/IdentityRemoteObject.java --
import Identifiable;
- rmi/IdentityServer.java --
import IdentityRemoteObject;
- rmi/myremote.java --
/* Copyright (c) 1996, 1997 Prominence Dot Com, Inc. *
- rmi/myremoteimpl.java --
/* Copyright (c) 1996, 1997 Prominence Dot Com, Inc. *
- rubik/Face.java --
import Square;
- rubik/Link.java --
import Face;
- rubik/Rubik.java --
import Face;
- rubik/Square.java --
public class Square {
- security/Client.java --
import java.net.*;
- security/Main.java --
import java.net.*;
- security/Server.java --
import java.net.*;
- security/signedData.java --
import java.io.*;
- serial/App.java --
// App.java: read and write object to file with a GUI
- serial/Country.java --
import java.io.Serializable;
- sieve/Sieve.java --
Sieve of Eratosthenes using streams represented as classes
- sort/Employee01.java --
generic sorting using subclassing
- sort/Employee02.java --
generic sorting using an interface
- sort/Test.java --
public class Test {
- soundex/Soundex.java --
/*
- st/Parse.java --
break 1st command line arg into key, value pairs
- st/Table.java --
print a delimiter separated table
- st/URL.java --
parse first command line argument as URL
- swing/ToolbarFrame2.java --
// ToolbarFrame2.java: the Swing-ified button example.
- thread/Consistent.java --
class Account {
- thread/Consumer.java --
- thread/CountThread.java --
From Anuff, page 201
- thread/CurrentThreadDemo.java --
list known threads (from Handbook)
- thread/Kitchen1.java --
locking the kitchen reduces potential parallelism
- thread/Kitchen2.java --
fine granularity locking may lead to deadlock
- thread/Kitchen3.java --
lock hierarch avoids deadlock
- thread/MSS.java --
// Maximum.java: Maximum sum subsequence (parallel version)
- thread/Maximum.java --
// Maximum.java: Maximum sum subsequence (sequential version)
- thread/PC.java --
class Q {
- thread/PCspin.java --
class Q {
- thread/PCsynch.java --
class Q {
- thread/Run.java --
Java program illustrating threads and yielding
- thread/Scope.java --
class Account extends Semaphore {
- thread/Semaphore.java --
public class Semaphore {
- thread/Simple.java --
Java program illustrating thread creation
- thread/SimpleRun.java --
illustrate thread creation via Runnable
- thread/Synch.java --
no synchronization (from Handbook)
- thread/Synch1.java --
synchronization (from Handbook)
- thread/Update.java --
class Account {
- thread/Utensil.java --
class Utensil {
- tree/BinSearchTree.java --
import java.util.Stack;
- tree/Main.java --
import SearchTree;
- tree/SearchTree.java --
interface SearchTree {
- udp/UDPClient.java --
import java.net.*;
- udp/UDPEchoClient.java --
import UDPClient;
- udp/UDPEchoServer.java --
import UDPServer;
- udp/UDPServer.java --
import java.net.*;
- unicode/Hello.java --
using unicode ch\u0041racters
- unicode/WordCount.java --
public class WordCount {
- url/URLDecoder.java --
import java.io.ByteArrayOutputStream;
- url/WWWGet.java --
given a URL, copy it from the server
- zip/BadFingerprintClassException.java --
package IS.hi.logir.cryptonite;
- zip/BadKeyClassException.java --
package IS.hi.logir.cryptonite;
- zip/CaesarKey.java --
package IS.hi.logir.cryptonite;
- zip/CryptoException.java --
package IS.hi.logir.cryptonite;
- zip/Data.java --
package IS.hi.logir.cryptonite;
- zip/DecryptException.java --
package IS.hi.logir.cryptonite;
- zip/DecryptStream.java --
package IS.hi.logir.cryptonite;
- zip/EncryptStream.java --
package IS.hi.logir.cryptonite;
- zip/Fingerprint.java --
package IS.hi.logir.cryptonite;
- zip/FingerprintException.java --
package IS.hi.logir.cryptonite;
- zip/FingerprintState.java --
package IS.hi.logir.cryptonite;
- zip/Fingerprintable.java --
package IS.hi.logir.cryptonite;
- zip/Key.java --
package IS.hi.logir.cryptonite;
- zip/KeyException.java --
package IS.hi.logir.cryptonite;
- zip/KeyPair.java --
package IS.hi.logir.cryptonite;
- zip/KeyRing.java --
package IS.hi.logir.cryptonite;
- zip/KeyRingCorruptException.java --
package IS.hi.logir.cryptonite;
- zip/MD5State.java --
package IS.hi.logir.cryptonite;
- zip/RandomSpinner.java --
package IS.hi.logir.cryptonite;
- zip/RsaKey.java --
package IS.hi.logir.cryptonite;
- zip/Signature.java --
package IS.hi.logir.cryptonite;
- zip/SignatureMatch.java --
package IS.hi.logir.cryptonite;
- zip/Spinner.java --
package IS.hi.logir.cryptonite;
- zip/TeaKey.java --
package IS.hi.logir.cryptonite;
- zip/test/TestEncryption.java --
package IS.hi.logir.cryptonite.test;
- zip/test/TestKeyGeneration.java --
package IS.hi.logir.cryptonite.test;
- zip/test/TestMD5.java --
package IS.hi.logir.cryptonite.test;
- zip/test/TestNamedCreation.java --
package IS.hi.logir.cryptonite.test;
- zip/test/TestRandom.java --
package IS.hi.logir.cryptonite.test;
- zip/util/ckey.java --
package IS.hi.logir.cryptonite.util;
- zip/util/md5.java --
package IS.hi.logir.cryptonite.util;
Ryan Stansifer <ryan@cs.fit.edu>