Java 6 Programming Fundamentals for OO Developers Training

How To Take This Class

Live Instructor-Led Online Class

Cost: $2,250.00

  • Open enrollment class for individuals
  • Live class with an instructor
  • Free class retakes forever!
  • Six months of instructor email support
  • Hands-on exercises and student labs
  • Classes never cancelled due to low enrollment
  • Money-back guarantee

    Sorry, no courses are scheduled at this time. Please Contact Us to schedule this course.

Onsite or Offsite Group Training

Cost: Based on number of students

  • For groups as small as 3 people
  • Class Held at our location or yours
  • Hands-on exercises and student labs
  • Customization at no extra charge
  • Six months of instructor email support
  • All-inclusive pricing
  • Money-back guarantee
Request Group Pricing Proposal

Course Duration

5 Days

Course Description

Java 6 Programming Fundamentals for OO Developers Training is a five-day, comprehensive hands-on workshop geared for developers who have prior working knowledge of object-oriented programming languages such as C++, SmallTalk, etc. Throughout the course students learn the best practices for writing great object-oriented programs in Java 6, using sound development techniques, new improved features for better performance, and new capabilities for addressing rapid application development. In addition to the normal exercises that are liberally sprinkled throughout the course, there is a case study that covers the entire spectrum from use cases to object-oriented design to implemented classes. This case study supplements the course and can be used during and after the course as a reference and a tool for reviewing and practicing what was learned in class.

Although this training is skills-centric, this course can be delivered using a variety of software combinations, including but not limited to: Eclipse / Galileo, MyEclipse, IBM® WebSphere Rational Application Developer (RAD7), Oracle JDeveloper or other IDEs. This course may be run using Java 5 or Java 6. Please inquire for details and options.

Course Objectives

Upon successful completion of this course, students will be able to:
  • Understand not only the fundamentals of the Java language, but also it’s importance, uses, strengths and weaknesses
  • Understand the basics of the Java language and how it relates to OO programming and the Object Model
  • Learn to use Java multi-threading and exception handling features
  • Understand and use classes, inheritance and polymorphism
  • Understand and use collections, generics, autoboxing, and enumerations including new Java 6 features and capabilities
  • Work with the logging API and framework that is part of the Java platform
  • Use the JDBC API for database access
  • Use Java for networking and communication applications
  • Work with annotations
  • Understand and work with the classes in the concurrent package
  • Outline the options for GUI applications in Java
  • Take advantage of the Java tooling that is available with the programming environment being used in the class

Course Audience

This course is geared for developers with prior OO development experience in languages such as C++ or SmallTalk, this course will teach students everything they need to become productive in essential Java programming.

Course Prerequisites

This is a beginner- level Java course, designed for experienced developers who wish to get up and running with Java, or who need to reinforce sound Java coding practices, immediately. Attendees should have a working knowledge of developing OO software applications.

Course Syllabus

  1. Lesson Using the JDK
    • Setting Up Environment
    • The Development Process
    • Locating Class Files
    • Compiling Package Classes
    • Source and Class Files
    • Applications and Applets
  2. Lesson Writing a Simple Class
    • Classes in Java™
    • What Is a Class?
    • Defining the Class
    • Class Modifiers
    • Class Instance Fields
    • Instance Fields Diagram
    • Primitives vs. Object References
    • Creating Objects
    • The main Method
    • Using the Dot Operator
    • Writing Output
  3. Lesson The Java™ Platform
    • Defining Java
    • Java Provides Several Platforms
    • Note on Terminology
    • Java SE 6
    • Java SE Development Kit (JDK)
    • Executing Programs
    • Lifecycle of a Java Program
    • Responsibilities of JVM
    • Java is Dynamic: The Runtime Process
    • Primary Areas of the JVM Runtime
    • Garbage Collection
    • Documentation and Code Reuse
    • JavaDoc Provides Documentation Delivery
    • In-Line Comments are Translated into HTML Rendering
    • Working with Java in Your Environment
  4. Lesson Object-Oriented Programming
    • The Object Oriented Way
    • Real-World Objects
    • Classes and Objects
    • Examples of Classes and Objects
    • Classes and Objects Diagram
    • Object Behavior
    • Methods and Messages
  5. Lesson Inheritance, Abstraction, and Polymorphism
    • Encapsulation
    • Inheritance
    • Method Overriding
    • Aggregation
    • Type Abstraction – Grouping as Supertype
    • Polymorphism
    • Polymorphism Diagram
  6. Lesson Adding Methods to the Class
    • Instance Methods
    • Passing Parameters Into Methods
    • Returning a Value From a Method
    • Overloaded Methods
    • Overloaded Methods Diagram
    • Constructors
    • Defining a Constructor
    • Optimizing Constructor Usage
  7. Lesson Language Statements
    • Operators
    • Comparison and Logical Operators
    • Looping: The for Statement
    • Looping: The while Statement
    • Looping: The do Statement
    • Continue and Break Statements
    • The switch Statement
  8. Lesson Using Strings
    • Strings
    • String Method
    • String Equality
    • StringBuffer
    • Strings, StringBuffer, and StringBuilder
    • StringTokenizer
    • Scanner
    • Scanner - File Source
    • Scanner - Getting Input
    • Scanner - Testing for Tokens
    • Scanner - Patterns for Tokens
    • Formatter
    • Formatter – Probable First
    • Encounters
    • Formatter – StringBuffer
  9. Lesson Specializing in a Subclass
    • Extending a Class
    • The extends Keyword
    • Casting
    • Overriding Superclass Methods
    • Method Overriding Diagram
    • Calling Superclass Methods from Subclass
    • The Object Class
    • The equals Method
    • Default Constructor
    • Implicit Constructor Chaining
    • Passing Data Up Constructor Chain
    • A Common Programming Mistake
    • Editing Tools in Your IDE
  10. Lesson Fields and Variables
    • Fields vs. Variables
    • Data Types
    • Default Values
    • Block Scoping Rules
    • Using this
    • Final and Static Fields
    • Static Variable Diagram
  11. Lesson Using Arrays
    • Arrays
    • Accessing the Array
    • Multidimensional Arrays
  12. Lesson Static Methods and Fields
    • Static Fields
    • Simple Example of Static Fields
    • Static Methods
    • Lesson Java™ Packages
    • The Problem
    • Packages
    • Class Location of Packages
    • The Package Keyword
    • Importing Classes
    • Executing Programs
    • Visibility
    • Java Naming Conventions
    • Packages Diagram
    • Refactoring in Your IDE
  13. Lesson Inheritance and Polymorphism
    • Polymorphism
    • Polymorphism: The Subclasses
    • Treating Derived Classes as the Superclass
    • Casting to the Derived Class
    • Using instanceof For Downcasting
    • Upcasting vs. Downcasting
    • Calling Superclass Methods From Subclass
    • The final Keyword
    • Lesson Interfaces and Abstract Classes
    • Separating Capability from Implementation
    • Abstract Classes
    • Shape as an Abstract Class
    • Polymorphism With Abstract
    • Classes
    • Interfaces
    • Implementing an Interface
    • Extending Interfaces
    • Polymorphism With Interfaces
    • Type Checking
    • Abstract Classes vs. Interfaces
    • Interfaces Diagram
  14. Lesson Exceptions
    • What is an Exception?
    • Exception Architecture
    • Handling Exceptions
    • The Throwable Class
    • The try Block
    • The catch Block
    • The finally Block
    • Full Example of Exception Handling
    • Generalized vs. Specialized Exceptions
    • Overriding Methods
    • Creating Your Own Exceptions
    • Throwing Exceptions
    • Re-throwing an Exception
    • Checked vs. Unchecked Exceptions
    • Debugging in Your IDE
  15. Lesson Utility Classes
    • Wrapper Classes
    • The Number Class
    • Numbers and Strings
    • Big Decimal
    • Random Numbers
    • Decimal Formatting
    • The Date Class
  16. Lesson Vector and Hashtable
    • The Vector Class
    • Creating and Using a Vector
    • Java Collections Methods in Vector
    • Hashtables
    • Understanding How Hashing Works
    • Creating and Using a Hashtable
    • Performing Lookups
  17. Lesson Collections
    • The Collections Framework
    • Collections Feature Types
    • Collections Interface Hierarchy
    • Map Interfaces
    • Optional Methods
    • The Collection Interface
    • Iterators
    • The Set Interface
    • SortedSet
    • Set and SortedSet Example
    • Comparable and Comparator
    • The List Interface
    • List Example
    • ListIterator
    • Queue Interface
    • QueueExample
    • BlockingQueue
    • BlockingQueue Implementations
    • Collections Utility Methods
    • Features of the Implementation Classes
    • Synchronization Wrappers
    • Feature Comparison
    • Using the Right Collection
    • Use of Collections vs. Vector/Hashtable
    • Optimizing Collection Constructors
    • Copying Arrays
    • Creating and Using an ArrayList
    • Creating and Using a HashMap
  18. Lesson Generics
    • Generics and Parametric Polymorphism
    • Simple Generics
    • The Mechanics of Generics
    • Generics and Subtyping
    • Compiler Restrictions on Generics and Subtyping
    • Generics as Arguments in Methods
    • Rationale Behind Wildcards
    • Wildcards In Use
    • Regular Wildcards in Method
    • Parameters
    • Bounded Wildcards
    • Standard Rules Apply
    • Generic Methods
    • Interoperability with Legacy Code
    • Raw Types
    • Legacy Calls To Generics
    • When Generics Should Be Used
    • Build Paths in Your IDE
  19. Lesson Overview of Java GUIs
    • JFC – Java Foundation Classes
    • Categories of Classes in JFC
    • Creating the Frame
    • Adding Content to a Frame
    • A Closer Look at Layout Managers
    • BorderLayout
    • JFC Provides an Event Handling Structure
    • Lesson Autoboxing, Enhanced for Loop and Varargs
    • Autoboxing/Unboxing
    • Autoboxing/Unboxing Issues
    • For() Loops and Collections
    • The Enhanced for() Loop
    • Another Example - Problematic
    • Another Example – Enhanced for()
    • Enhanced for() Loop Restrictions
    • Previous Variable Argument Support
    • Variable Arguments in Java SE 1.5
    • Varargs rules
    • Issues
  20. Lesson Enumerations and Static
    • Imports
    • Rationale for Enumerations
    • Enumeration Syntax
    • Enumerations Methods
    • Enumerations as a Better Class Type
    • Enumeration Code
    • EnumSet
    • EnumMap
    • When You Should Use Enumerations
    • Using Static Imports
    • When You Should Use Static Imports
  21. Lesson Inner Classes
    • Defining Inner Classes
    • Member Inner Classes
    • Local Inner Classes
    • Anonymous Inner Classes
    • Anonymous Subclassing
  22. Lesson Multithreading
    • Principles of Multithreading
    • Creating a Threaded Class
    • Creating a Threaded Class Using Runnable
    • Example: Threaded Class
    • Example: Runnable Class
    • Basic Features of the Thread Class
    • Daemon Threads
    • Thread Scheduling
    • Signaling a Thread
    • Sleeping
    • Thread Synchronization
    • Synchronized Methods
    • Synchronized Block
    • Object Synchronization
  23. Lesson Java I/O
    • The Java I/O Mechanism
    • Byte Level I/O
    • Subclasses Accessing Real Data
    • Filter Classes
    • Reading Stream as Data Primitives
    • Adding Buffering for Better Performance
    • Writing Buffered Data to a File
    • Character Level I/O
    • Subclasses Accessing Real Data
    • Reader/Writer Filter Classes
    • Serialization
    • Switching Java Versions in Your IDE
  24. Lesson Introduction to Annotations
    • Annotations Overview
    • Working with Java Annotations
    • Example of Using @Override
    • Annotations are Heavily Used in Many Technologies
    • Declaring Persistence in Hibernate Development
    • Lesson File System Access
    • The File Class
    • File Utility Methods
    • RandomAccessFile
    • Byte-Based File Access
    • Text-Based File Access
    • FileReader Diagram
  25. Lesson Networking
    • Socket ProgrammingFundamentals
    • Communicating on a Socket
    • Single-Threaded Server Performance
    • Creating a Threaded Server
    • Sending and Receiving Objects
    • Useful Methods
  26. Lesson JDBC ™
    • What is JDBC?
    • Structured Query Language (SQL)
    • Connecting to the Database
    • Statements
    • Statement and PreparedStatement
    • ResultSet
    • JDBC Diagram
    • Executing Inserts, Updates, and Deletes
    • Controlling Transactions and Concurrency
    • Mapping SQL Types to Java Types
    • Database Connection Via JDBC Calls
    • Rationale for Connection Pooling
    • Connection Pooling in JDBC
    • Database Connection Using a DataSource
    • Stored Procedures Defined
    • Callable Statement Syntax
    • Stored Procedure Parameters
    • RowSet Implementations
    • JDBCRowSet
    • JDBCRowSet Approach
    • JDBCRowSet – Retrieving Data
    • JDBCRowSet Example
    • CachedRowSet
    • CachedRowSet Approach
    • CachedRowSet Example
  27. Lesson Java Logging
    • Formatters
    • Logging Security & Performance
  28. Lesson New In Java 6
    • Java 6 - Performance
    • Java 6 – Security Improvements
    • Java 6 – Web Services Improvements
    • Java 6 – Development
    • Java 6 – GUI
    • Java 6 – Compression
    • Java 6 – Collection Interfaces
    • Java 6 – Concrete Implementation
    • Java 6 – Retrofitted
    • Java 6 – More on Collection
    • Java 6 – I/O
    • Java 6 – Internationalization
    • The JAXB Difference
  29. Appendix: Additional Topics (Available on Request)
    • Programming JavaBeans™
    • Introduction to Java 2 Security
    • Containers and Layout Managers
    • Writing Simple Graphical Applications
    • Writing Complete Graphical Applications
    • Writing Java Applets