Customized Java 5 and Java 6 Training Courses
“Wonderful. In 20 years,
this is the best organized,
most pragmatic and
enjoyable course I've taken.”
“The best instructor-led
course I have attended, by far.”
“Best short course ever!”
more student reviews
Here are the potential topics covered in the Java 5 and Java 6
programming courses taught by
Marty Hall. If you have a group of
at least eight interested developers (10 for courses outside the US or Canada),
contact Marty to arrange a course
at your location.
Please note that topics can be added or removed to fit
the interest and experience of your developers, and topics
from this course can be combined with topics from
other related J2EE courses.
For example, some organizations want coverage of
basic Java 5 or Java 6 programming combined with
basic servlet and and JSP topics.
Others want to cover only the most fundamental Java and servlet/JSP
topics and then move on to
Ajax and GWT,
JSF, or
Struts.
However, the syllabus below gives an idea of the most popular
Java-only option.
Syllabus
Introduction to and Overview of Java
- Truths / Myths About Java
- Java is Web-Enabled?
- Java is Safe?
- Java is Cross-Platform?
- Java is Simple?
- Java is Powerful?
- Common Java Protocols and Packages
- Getting Started
Basic Java Syntax
- Creating, compiling, and executing simple Java programs
- Accessing arrays
- Looping
- Indenting code
- Using if statements
- Comparing strings
- Building arrays
- One-step process
- Two-step process
- Multidimensional arrays
- Performing basic mathematical operations
- Reading command-line input
Basic Object-Oriented Programming in Java
- Similarities and differences between Java and C++
- Object-oriented nomenclature and conventions
- Instance variables (data members, fields)
- Methods (member functions)
- Constructors
- Destructors (not!)
Object-Oriented Programming in Java: More Capabilities
- Overloading
- Designing "real" classes
- Inheritance
- Quick intro to advanced topics
- Abstract classes
- Interfaces
- Understanding polymorphism
- Setting CLASSPATH and using packages
- Visibility modifiers
- Creating on-line documentation using JavaDoc
More Java Syntax and Utilities
- Mutating vs. returning results
- Data structures
- ArrayList
- LinkedList
- HashMap
- Generics
- printf
- varargs
- String vs. StringBuilder
Applets and Basic Graphics
- Applet restrictions
- Basic applet and HTML template
- The applet life-cycle
- Customizing applets through HTML parameters
- Methods available for graphical operations
- Loading and drawing images
- Controlling image loading
Java Deployment Options
- Individual .class files
- JAR files
- OS wrapper around class files or JAR files
- Applets
- Java Web Start
- Server-based Alternatives
- Details: Java Web Start
Asynchronous Event Handling
- General event-handling strategy
- Handling events with separate listeners
- Handling events by implementing interfaces
- Handling events with named inner classes
- Handling events with anonymous inner classes
- The standard AWT listener types
- Subtleties with mouse events
AWT Components
- Basic AWT windows
- Creating lightweight components
- Closing frames
- Using object serialization to save components to disk
- Basic AWT user interface controls
- Processing events in GUI controls
Layout Managers
- How layout managers simplify interface design
- Standard layout managers
- Positioning components manually
- Strategies for using layout managers effectively
Java 2D
- Drawing Shapes
- Paint Styles
- Transparency
- Using Local Fonts
- Stroke Styles
- Coordinate Transformations
- Requesting Drawing Accuracy
Basic Swing
- New features
- Basic approach
- Starting points
- Swing equivalent of AWT components
- JLabel, JButton, JPanel, JSlider
- New Swing components
- JColorChooser, JInternalFrame, JOptionPane,
JToolBar, JEditorPane
- Other simple components
- JCheckBox, JRadioButton, JTextField,
JTextArea, JFileChooser
Advanced Swing and MVC
- Building a simple static JList
- Adding and removing entries from a JList at runtime
- Making a custom data model
- Making a custom cell renderer
Multithreaded Programming
- Why threads?
- Approaches for starting threads
- Separate class approach
- Callback approach
- Solving common thread problems
- Synchronizing access to shared resources
- Thread life cycle
- Stopping threads
Multithreaded Graphics and Animation
- Approaches for multithreaded graphics
- Redraw everything in paint
- Have routines other than paint draw directly on window
- Override update and have paint do incremental updating
- Double buffering
- Reducing flicker in animations
- Implementing double buffering
- Animating images
- Controlling timers
Network Programming - Clients
- Creating sockets
- Implementing a generic network client
- Parsing data
- StringTokenizer
- String.split and regular expressions
- Retrieving files from an HTTP server
- Retrieving Web documents by using the URL class
Network Programming - Servers
- Steps for creating a server
- A generic network server
- Accepting connections from browsers
- Creating an HTTP server
- Adding multithreading to an HTTP server
Network Programming - Serialization
- Idea
- Requirements
- Steps for sending data
- Steps for receiving data
XML Parsing and DOM
- Options for input files
- XML overview
- Parsing an XML document
- Creating a DocumentFactory and Document
- Extracting data from parsed Document
- Known structure, attribute values only
- Known structure, attribute values and body content
- Unknown structure
Invoking OS-Specific Programs and Native Methods
- Integration options
- Invoking native programs
- Calling native functions
|