Intermediate and Advanced Java Topics

Course:  JAVATPC
Duration:  10 Days
Level:  II
Course Summary

The topics described here present many intermediate and advanced Java coding techniques and APIs that an experienced Java developer will want to be familiar with, but which our Java Fundamentals course doesn't cover in great detail.  Each module can run one to three days. You might select some of these topics to be presented as an extensions to any of our other Java courses, or you may choose to create a customized course to meet specific requirements in your organization. We have also defined several short specialized courses that present closely-related subsets of these topics, often with additional material, and those courses are referenced in the Related Courses below.

The topics included here include a comprehensive discussion of Java???s vendor-neutral database API (JDBC), remote method invocation (RMI), Web Applications (Servlets/JSP), network programming, graphics/windowing (Swing/AWT) and multi-threading.

Any of this material may be delivered on either UNIX or Windows platforms, and using either NetBeans or Eclipse as the development environment.

« Hide The Details
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
  • Interacting with Applets, Serving Images

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

Enterprise JavaBeans (EJB)

  • Overview: Versions, EJB Types, Servers and Containers, Deployment Descriptors
  • Architecture: Home/Remote Interfaces, Bean Implementation Classes, Deployment, Client Views, Example
  • Developing EJBs: Steps and Roles, Coding Restrictions, JNDI Contexts and Lookup, Remote/Home Interfaces
  • Entity Beans
    • Bean-Managed (BMP) vs Container-Managed (CMP) Persistence
    • Primary Keys
    • Interfaces
    • Bean Class
    • Create/Finder Methods
    • Lifecycle Methods
    • Deployment Descriptor
    • Clients
    • Examples
  • Session Beans
    • Stateless vs Stateful
    • Interfaces
    • Bean Class
    • Create and Lifecycle Methods
    • Examples
  • EJB 2.0

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

Java Foundation Classes (JFC) and Swing

  • Overview: AWT vs Swing
  • Architecture: Containers, Components, LayoutManagers
  • Program Structure and Coding
  • Containers, JFrame/Dialog/Window, Size/Position, Color/Font, Window Events
  • JComponents, Buttons, Labels, Text, Check/Radio, List/Combo; Layout Managers, Flow, Grid, Border, null, Box
  • Dialog Factories, OptionPane, FileChooser
  • Menus

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

Creating Java Applets

  • Overview: Applet Class Anatomy and Life Cycle, init/destroy, start/stop Methods
  • Using Images and Audio
  • Applet Messaging, Context Methods
  • URL Streams
Who Should Take This Course

These topics are intended 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

Participants in this class should be proficient Java programmers, either having a year or more of experience, or completion of our Java Fundamentals course. The Web Applications topics here also assume familiarity with HTML.

Training Style

Lecture, discussion, demonstrations and extensive hands-on labs.

« Hide The Details
Related Courses
Code Course Title Duration Level
JAVAF
Fundamentals of Java Development
5 Days
I
Details
JAVA9NF
Java 9 New Features
3 Days
I
Details
MCJFR
Java Performance Tuning with Mission Control and Flight Recorder
4 Days
II
Details
JAVAWA
Java EE Web Application Development
3 Days
II
Details
J7NEW
New Features In Java 7
2 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.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]