Java 7 SE Programming for OO Experienced Developers (TT2100-J7) TT2100-J7

Days: 5 day
Price: $2495

Course Details

This comprehensive, hands-on introduction to Java is geared for developers who have prior working knowledge of object-oriented (OO) programming languages such as C++.

Throughout the course, you will learn the best practices for writing great OO programs in Java 7 using sound development techniques, new improved features for better performance, and new capabilities for addressing rapid application development. You will participate in exercises, and you will work through a case study that covers the entire spectrum, from use cases to OO design to implemented classes. You can use the case study during and after the course as a reference and a tool for reviewing and practicing what you learned in class.

Course Agenda

1. Java: A First Look

  • Using the JDK
    • Setting Up Environment
    • The Development Process
    • Class Files
    • Java Applications
  • Writing a Simple Class
    • Classes in Java
    • Class Modifiers and Types
    • Variables and Primitives
    • Creating Objects
    • The main Method
    • Using the Dot Operator
    • Writing Output
  • The Java Platform
    • Defining Java
    • Java SE Development Kit (JDK)
    • Executing Programs
    • Lifecycle of a Java Program
    • Java Virtual Machine (JVM)
    • Java is Dynamic: The Runtime Process
    • Garbage Collection
    • Documentation and Code Reuse
    • JavaDoc Provides Documentation Delivery
    • In-Line Comments are Translated into HTML Rendering

2. OO Concepts In Java

  • OO Programming
    • The OO Way
    • Real-World Objects
    • Classes and Objects
    • Object Behavior
    • Methods and Messages
  • Inheritance, Abstraction, and Polymorphism
    • Encapsulation
    • Inheritance
    • Method Overriding
    • Aggregation
    • Type Abstraction: Grouping as Supertype
    • Polymorphism

3. Getting Started with Java

  • Adding Methods to the Class
    • Instance Methods
    • Passing Parameters into Methods
    • Overloaded Methods
    • Constructors
  • Language Statements
    • Operators
    • Comparison and Logical Operators
    • Using Comparison and Logical Operators
    • Looping: The for Statement
    • Looping: The while Statement
    • Looping: The do Statement
    • Continue and Break Statements
    • The switch Statement
  • Using Strings
    • Strings
    • StringBuffer
    • StringTokenizer
    • Scanner
    • Formatter
  • 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
    • Constructors

4. Essential Java Programming

  • Fields and Variables
    • Fields vs. Variables
    • Instance vs. Local Variables: Usage Differences
    • Data Types
    • Default Values
    • Block Scoping Rules
    • Using this
    • Final and Static Fields
    • Static Variable Diagram
  • Using Arrays
    • Arrays
    • Accessing the Array
    • Multidimensional Arrays
    • Copying Arrays
  • Static Methods and Fields
    • Static Fields
    • Simple Example of Static Fields
    • Static Methods
  • Java Packages and Visibility
    • The Problem
    • Packages
    • Class Location of Packages
    • The Package Keyword
    • Importing Classes
    • Executing Programs
    • Accessibility/Visibility
    • Java Naming Conventions
    • Packages Diagram

5. Advanced Java Programming

  • Inheritance and Polymorphism
    • Polymorphism
    • Polymorphism: The Subclasses
    • 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
  • 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
  • Exceptions
    • Exception Architecture
    • Handling Exceptions
    • The Throwable Class
    • The try Block, The catch Block, and The finally Block
    • Generalized vs. Specialized Exceptions
    • Overriding Methods
    • Creating Your Own Exceptions
    • Throwing Exceptions
    • Checked vs. Unchecked Exceptions

6. Java Developer's Toolbox

  • Utility Classes
    • Wrapper Classes
    • The Number Class
    • Numbers and Strings
    • Big Decimal
    • Random Numbers
    • Decimal Formatting
    • The Date Class
  • Collections
    • The Collections Framework
    • Characterizing Collections
    • Collection Interface Hierarchy
    • Top-Level Collection Interfaces
    • Collection Interface Provides Element Handling
    • Collections Utility Methods
    • Generics and Collections
    • Generics and Parametric Polymorphism
    • Java 7: The Diamond Operator
    • Simple Generics
    • Iterators
    • The Set Interface; SortedSet
    • Comparable; Comparator
    • HashSet (Set) and TreeSet (SortedSet) Example
    • NavigableSet
    • The List Interface
    • Queue Interface
    • Map Interface Hierarchy
    • Creating and Using a HashMap
    • Feature Comparison
    • Using the Right Collection
    • Collection vs. Vector/Hashtable
    • Collections and Multithreading
    • Optimizing Collection Constructors: Initial Size
  • Generics
    • Generics and Subtyping
    • Compiler Restrictions on Generics and Subtyping
    • Wildcards
    • Standard Rules Apply
    • Generic Methods
    • Interoperability with Legacy Code
    • Raw Types
    • Legacy Calls to Generics; When Generics Should Be Used
  • Java GUIs
    • Java Foundation Classes (JFC)
    • Categories of Classes in JFC
    • Creating the Frame and Adding Content to a Frame
    • A Closer Look at Layout Managers
    • BorderLayout
    • JFC Provides an Event Handling Structure
  • Autoboxing, Enhanced for Loop, and Varargs
    • Autoboxing/Unboxing
    • Iterators and Collections
    • The for-each() Loop; For-each Loop Restrictions
    • Legacy Variable Argument Support
    • Variable Arguments and Varargs Rules
    • Issues
  • Enumerations and Static Imports
    • Rationale for Enumerations
    • Enumeration Syntax and Methods
    • Enumerations as a Better Class Type
    • EnumSet and EnumMap
    • When You Should Use Enumerations
    • Using Static Imports
    • When You Should Use Static Imports
  • Inner Classes
    • Defining Inner Classes
    • Member Inner Classes
    • Local Inner Classes
    • Anonymous Inner Classes
    • Anonymous Subclassing
  • Multithreading
    • Principles of Multithreading
    • Creating a Threaded Class
    • Example: Runnable Class
    • Daemon Threads
    • Thread Scheduling and Signaling a Thread
    • Sleeping
    • Thread Synchronization
    • Synchronized Methods and Statements
    • Object Synchronization
  • Concurrent Java
    • Synchronized Code Uses an Implicit Lock
    • Concurrent Locks are Explicit and Flexible
    • Using ReadWriteLock
    • Need to Separate Thread Management
    • Executor Interfaces Provide Thread Management
    • Scheduling Tasks using Executors
    • Concurrent Use of Collections
    • Scaling Using BlockedQueue
    • Atomic Variables Avoid Synchronization
    • Options for Avoiding Threading Errors and Issues
    • Java 7: Support for Multi-Core Platforms
  • Java I/O
    • The Java I/O Mechanism
    • Subclasses Accessing Real Data
    • Filter Classes
    • Reading Stream as Data Primitives
    • Writing Buffered Data to a File
    • Character Level I/O
    • Subclasses Accessing Real Data
    • Reader/Writer Filter Classes
    • Serialization
    • New File IO - NIO
    • NIO Overview
    • Stream-Based (IO) vs. Buffer-Based (NIO)
    • Blocking (IO) vs. Non-Blocking (NIO)

7. Java Application Development

  • Annotations
    • Annotations Overview
    • Working with Java Annotations
    • Example of Using @ Override
    • Annotations are Heavily Used in Many Technologies
    • Declaring Persistence in Hibernate
  • File System Access
    • The File Class
    • File Utility Methods
    • RandomAccessFile
    • Byte-Based File Access
    • Text-Based File Access
    • FileReader Diagram
    • Java 7: Automatic Closure of Resources
  • Networking
    • Socket Programming Fundamentals
    • Communicating on a Socket
    • Single-Threaded Server Performance
    • Creating a Threaded Server
    • Sending and Receiving Objects
    • Useful Methods
    • Java 7: Automatic Closure of Resources
  • JDBC
    • What is JDBC?
    • Structured Query Language (SQL)
    • Connecting to the Database
    • 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
    • Connection Pooling
    • Database Connection Using a DataSource
    • Stored Procedures
    • Callable Statement Syntax
    • Stored Procedure Parameters
    • RowSet Implementations
    • JDBCRowSet and CachedRowSet
  • Java Logging
    • Logging Framework
    • Logging in Java
    • The Logger Class
    • Global Configuration
    • Programmatically Setting Logging Properties
    • Programmatic Handlers
    • Formatters
    • Logging Security and Performance

Details

Options