Professor Sullivan's
Learning Java Page

by Kevin Sullivan, Assistant Professor of Computer Science at the University of Virginia


Please visit pages for my other projects:

Whether you are a rank novice or advanced Java wizard, this page holds something for you. It provides resources intended to help you to learn and to use the Java programming language, and to help you to understand the broader distributed software engineering issues raised by Java, the internet, distributed object models, and the like. We welcome feedback. Thanks for visiting our site.


Java in the CS Curriculum

Java is increasingly recognized as a viable option for teaching undergradate computer science courses. We will attempt to provide links to sites for those who are interested in the evolution of the trend toward the use of Java in the undergraduate curriculum.


Check out Some Cool Applets!

Java supports object-oriented programming on the Internet. It can be used to develop both stand-alone applications and applets, which are programs that are downloaded and executed on your computer when you visit others' web pages. For examples applets, check out some of the following sites. You do have to be running a Java-enabled web browser, such as Navigator version 3.0, available from Netscape or Internet Explorer 3.0, available from Microsoft.


Getting Started with Java

It is easy to get started programming with Java. To program, you will have to be running the right operating system. If you are running Solaris or Windows 95, you're probably all set. The White Paper is a brief introduction to the main features of the Java language. From there, follow links to basic tutorial materials, and to the "man pages" for the Java tools (such as the compiler, interpreter, and so on). In particular, if you have never written a Java program, be sure to visit the Hello World tutorial site.


Studying The Java Programming Language

On-line documentation of the Java Programming Language is a real boon. The Java Language White Paper provides a gentle introduction that is especially useful to those seeking to understand the key key programming languages (PL) features of Java. This paper, in turn, provides good background for a subsequent reading the Language Specification.

Advanced Java Programming and Design

Programming real systems is hard in any language. Java is no different. However, the internet orientation of Java makes it easy to find help on more advanced topics. Here are links to some key resources.


JavaBeans

JavaBeans is a component object model with API's that extend Java's reuse capabilities by enabling third parties can create applications from reusable components. JavaBeans is the Java analog of Microsoft's ActiveX, and of OMG's CORBA. Unlike ActiveX, JavaBeans is intended to be platform-independent.

Remote Method Invocation

Remote Method Invocation allows a programmer to create Java applications which can be invoked from other Java virtual machines, and possibly from different hosts.

JavaSpaces

JavaSpaces allows for the computation of parts of a Java program on any machine that has a Java VM. It can be used for the dynamic networking of heterogeneous computers to execute a distributed program.

Messaging Services

Messaging Services is a new initiative API that enables technology for enterprise messaging.

Other Java Resources

The popularity and dissemination of Java are growing rapidly. Information on Java is widely available. We cannot provide links to all interesting and useful material. However, we can and do provide links to sites that keep up to date on many of the "latest and greatest" Java-related happenings. From the following links, you should be able to find a wealth of material on Java.

The Unfolding Java Security Wars

The security of Java and its implementations is of significant concern. Java programs, authored by possibly unscrupulous people, are downloaded and executed by your computer as you browse the Web using a Java-enabled browser such as Netscape 2.0. The question is thus can browsing the web compromise your computer by causing your files to be read, deleted, or changed into "land-mines" that could then harm others?

C++ to Java Conversion and Interfaces.

Here are some products and sites for C++ to Java conversion.


Distributed Objects

Distributed object-oriented programming on the internet is likely to be a critical technology in the future. Although standards are still needed, the basic technologies are progressing rapidly. Here are links to some of the important sites on this topic.

General Web Tools

This is a collection of general tools which may be useful for Web and Java development.


This site maintained by Jason O. Watson

Last Modified August 1997

Access Statistics