Advanced Java Topics

Course:   JAVAA
Duration:   5 Days
Level:   I
On our website at:   http://www.verhoef-training.com/courses/JAVAA.html
 
Course Summary

This course outline is a starting point for building an Advanced Java Programming class for experience Java programmers. The goal of this document is to be a *menu* of topics which could be included in this course. Additional topics are welcomed. This document will act as a requirements document within the team.

Topics Covered In This Course

Overview of Java EE (Enterprise Edition)

  • Overview: Definitions, MVC Design Pattern, Server Products
  • Platform Servers: Containers, Client Technologies
  • API Services: Servlet, JSP, EJB, JNDI, JDBC, JTA, JMS, JAXP, JCA, JAAS
  • Web Application Processing Cycle
  • Deployment Objects: JAR/WAR/EAR
  • Server Component Directory Structure, XML Descriptors
  • Development Roles
  • Sample Apps.

Using JDBC to Access Databases

  • Overview: Packages, Coding Essentials, Drivers, Connections, Statements and ResultSets
  • Making Connections, Driver Types, Loading Drivers, Connection String URLs
  • Statements and ResultSets, Executing Queries/Updates, Accessing Rows/Columns, Handling Nulls, Exceptions
  • PreparedStatement and Efficiencies
  • Stored Procedures, CallableStatements
  • Advanced ResultSets, Scrollable Cursors, Updatable Rows
  • Transactions, commit/rollback
  • Database MetaData

Implementing Distributed Objects using RMI

  • Overview: Distributed Objects, RMI vs DCOM vs Corba
  • RMI Architecture: Stubs and Skeletons, RRL and Transport Layers, Naming Service and Registry, Memory Mgmt, Development checklist
  • RMI Servers, Remote Interfaces, RemObj Implementation, Servers, Binding
  • RMI Clients
  • Deployment Issues, Compiling/Testing, ClassLoaders and Servers, Classpaths
  • BiDirectional Messaging
  • Object Activation, rmid, Setup programs

Developing Servlets

  • Overview: Request/Response systems, HTTP, Browser/Server protocols
  • Servlet Architecture: Interfaces and Classes, Generic/HTTP Servlet classes, Life Cycle, Property files, Configuration and Context info
  • Coding Servlets: Request/Response classes/methods, GET and POST processing
  • File/DB Processing
  • Maintaining State: Cookies, HTTPSession object
  • Servlet Collaboration: Including and Forwarding Responses and Requests

Developing JavaServer Pages (JSP)

  • Overview: API package, App Servers, Classes and Translation Phases, Example
  • JSP Coding: Tag Syntax, Directives Page/Include
  • Scripting Elements, Expressions, Declarations, Scriptlets
  • Actions, useBean, get/setProperty, include/forward
  • JSP Design Patterns, Model I/II, Page-Centric vs MVC
  • Example Application

Java XML Processing

  • Overview: Standards, Parsers, APIs, SAX and DOM Features, Sun Java APIs
  • XML Overview: Modeling/Presentation/Processing Software, Technologies
  • XML Syntax, ProcInstructions, Declarations, Elements/Attributes
  • Examples XML, DTD, XSD
  • Coding With SAX
  • *
  • Overview/Steps
  • Xerces and JAXP API and packages
  • XMLReader
  • Content and Error Handlers
  • Event Callback Methods
  • Properties and Features
  • Examples
  • Coding With DOM
  • *
  • Overview/Step
  • Xerces and JAXP API and packages
  • DOMParser
  • DOMImplementation
  • Document object
  • Collections
  • DOM Classes
  • Mutability
  • Node/Element Methods
  • Document Methods
  • Creating Nodes
  • DocTypes
  • Serialization
  • Examples

Event Delegation Model, Sources, Objects and Listeners

  • Program Structure and Coding, Implementing Interfaces, Inner Classes, Anonymous Adapters

Java Networking and Sockets

  • Overview: Network Stack and Protocols, IP/TCP/UDP, Appl, Services
  • Package Classes and Exceptions
  • INET Address Translations
  • URL and URLConnections, HTTP Header Info, Downloading FileData
  • Socket Programming, Client vs Server Coding, Threading
  • Datagram Sockets and UDP
  • CGI-like GET/POST Processing

Using Java Threads

  • Overview: Process vs Thread
  • Object Threading Model, Thread Class, Data, run() code
  • Creating Threads, Runnable Interface vs Extending Thread Class
  • Thread States: New, Runnable, Blocked, Dead
  • Thread Class Methods, start/stop, suspend/resume, yield, sleep
  • Thread Priority and Scheduling, Daemons, Groups
  • Synchronization and Thread Safe coding, Locks
  • Producer/Consumer Model, wait/notify Processing
  • SE5 Concurrency Package, Executors, ThreadPools, Scheduling, Callables

Additional Topics

  • Spring Aspect Oriented Programming (AOP)
  • Test Driven Development
  • Agile Considerations
  • Design Patterns (23 available ? pick top 5)
  • Performance Considerations
  • JVM Tuning
  • JMeter for Load Testing
  • Maven
  • JavaServer Faces (JSF) Overview
Who Should Take This Course

This course is for Java programmers/developers who want to achieve an expert level of Java proficiency, or who want to rapidly gain experience/expertise in a specialized area.

Recommended Prerequisites

Students in this class should be proficient Java programmers with at least 2 years experience.

Training Style

Lecture (50%) and Workshop (50%)

Related Courses
Code Course Title Duration Level
JAVAF
Fundamentals of Java Development
5 Days
I
Details
JAVAWDOO
Java Web Development for OO Programmers
5 Days
I
Details
JAVAWS
Developing Java Web Services
5 Days
II
Details

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.