David Neto's Java newbie page David Neto's page for Java newbies Update May 14, 1998 May 14, 1998: java-linux.org has given way to blackdown.org! March 20, 1998: blackdown.org has given way to java-linux.org This page is intended for people new to Java. You probably got here by first visiting my main Java page. After you've digested this information, you may want to visit my page for Java oldies, for people who already know the basics and just want to use Java. To use Java on the CS Lab machines, see my page about using Java on the CS Lab machines. Contents General information Becoming a Java developer Programmer's documentation by Sun Other Java-related web links General information Java is a programming system developed by Sun Microsystems. Initially it was intended for controlling consumer electronic devices, but it gained popularity by its use in the World Wide Web. Java is a fully-featured programming language. It is wholly object-oriented, multithreaded, has garbage collection, and is net-aware. It has been designed with security and portability in mind. There are two kinds of Java programs: applications and applets. An application is a standalone program, i.e. it doesn't need to be run inside a web browser. Applications may open up many windows and dialog boxes on your screen, like any other windowing program. Then again, you can always write Java applications without a windowing interface: standard I/O programs are easy to write as well. Linux and OS/2 support Java applications directly. An applet is a Java program that is embedded in a web page and is run via a Java-aware web browser. When a user loads a web page into their Java-enabled browser, a Java program is loaded as well. The program runs automatically, and presents its results, or interacts with the user, in a square region of the web page. Most common web browsers now support Java, including Sun's HotJava, Netscape Navigator (2 and later), and Microsoft Internet Explorer. Becoming a developer If you want to develop Java applications, you have a few options. If you're on the local CS Lab machines, then follow the instructions in my Java on the CS Lab machines page. The Java Development Kit (JDK) version 1.1.3 is installed here. If you're using Solaris, Windows 95, or Windows NT then you can get a copy of Sun's Java Development Kit for any of these platforms. Sun does not charge for them. As of July 17, 1997 the latest version is 1.1.3, a bugfix version. If you're using OS/2 or AIX, you can get IBM's port of the development kit from the IBM Centre for Java Technology. Or you can purchase their VisualAge for Java integrated development environment. IBM wants Java to succeed. A team of volunteers has ported Sun's Java development tools to Linux. Generally speaking, the Linux ports lag Sun's releases by only a couple of months, and are quite usable. See the Java-Linux Web page. Since first creating these pages in the spring of 1996, a gaggle of development environments have been released. Even Microsoft has one. :-) It appears Java is here to stay. Programmer's documentation by Sun Important: Sun does not allow their Java documentation to be redistributed via the web. They want to make sure everybody gets up-to-date information. However, they do allow intra-departmental distribution as I've implemented here. The following are local copies of some of Sun's documentation, accessible only through the UofT's CS Lab filesystem. The originals may be found at Sun's Java documentation web site. Beware that as of June 1997, not all Java implementations support the 1.1 API. Addison-Wesley publishes the official Java documentation as regular books, The Java Series. But since it's printed on paper, it's likely out of date, at least for the summer of 1997. Visit your local book store. A reasonable path to learning Java is to read the first two documents in sequence. The JDK documentation is useful mainly during coding. The Java Language Environment White Paper (HTML-about 85 pages worth of information, downloaded June 24, 1997) -- This document places Java in context, outlining the design goals for Java, and describing its main features (especially in comparison with C and C++). Java Language Tutorial, version 1.1 (version dated July 8, 1997, downloaded July 10, 1997) -- I learned Java from the 1.0 version of this document. It assumes knowledge of procedural programming, but not necessarily object-oriented programming. Java Development Kit 1.1.3 Documentation, includes the Java Platform 1.1.3 Core API. You will be using these documents extensively. :-) (These are links to inside the docs directory of the JDK installed on the CS Lab machines, so they should always be consistent with the current software environment.) Other Java-related web links Sites at Sun Java -- the main Java site. Java Beans -- Sunsoft's component API design for Java. Component technology (hopefully) allows for construction of software largely through the assembly of reusable software modules. We've all heard that before, but the technology continues to mature and certainly is proven at least in the domain of GUI construction. FAQ for comp.lang.java.programmer maintained by Peter van der Linden. Gamelan -- ``The official directory for Java''. Gamelan is a clearing house for all sorts of Java resources, including many applets and applications. Cup O' Joe Java Shop -- code, JDK's, documentation Java Development Centre at the University of Toronto. ObjectSpace has released JGL a generic container library patterned after C++'s Standard Template Library. Online Java magazines JavaUniverse Developer Javology Pizza -- an extension to the Java language that includes many goodies from functional languages (typesafe parametric polymorphism, first-class functions, and case classes and pattern-matching (a.k.a. algebraic data types)), but still compiles to the Java Virtual Machine. Kaffe -- a free implementation of the Java Virtual Machine that uses Just-In-Time (JIT) compilation on many platforms. JIT can speed up execution by orders of magnitude. Back to David Neto's page about using Java on CS Lab Back to David Neto's page for Java oldies Back to David Neto's main Java page Back to David Neto's programming page Back to David Neto's home page