ADVANCED JAVA USING ECLIPSE – GTJ02

Course Description

This course teaches how to develop advanced Java applications using Eclipse. The advanced features of Java that developers may be using in many different types of programs are covered.

The labs cover many advanced topics that students will encounter when programming Java applications. Together these labs give students practical hands-on experience in creating and deploying advanced Java technologies using Eclipse.

 

Objectives

After completing this course, the student should be able to:

Test Java code using JUnit

Understand how to connect to databases and work with data

Use the logging capabilities built into the Java language

Use the support for multiple languages provided by Java

Use the reflection API to programmatically obtain details on Java classes

Provide better architecture for Java programs

Work with multi-threaded Java applications

Use networking and distributed technologies of Java

Work with XML from Java code

Use Java capabilities to intergrate with non-Java code

Use the security APIs provided with the Java language

^^

Duration

5 days

^^

Target Audience

This course is intended for programmers who are familiar with Java and want to learn about the advanced features of Java.

^^

Course Prerequisites

A good understanding of object-oriented programming using Java. The following course meets this requirement:

GTJ01 – Introduction to Java Using Eclipse

^^

Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please contact us for further details.

^^

Course Content

1. COLLECTIONS AND GENERICS

  1. What are Collections?
  2. Arrays vs. Collections
  3. Main Collections Interfaces
  4. java.util.Collection
  5. Main Collection Methods
  6. Sets
  7. java.util.List
  8. java.util.Queue
  9. Iteration on a Collection
  10. Iterator vs. For-Each Loop
  11. Maps
  12. java.util.Map
  13. Other Maps
  14. Collections Implementations
  15. Abstract Implementations
  16. Choosing a Collection Type
  17. Generics
  18. Generics and Collections
  19. Generic Collection Example
  20. Collections and Primitive Types

2. JAVABEANS

  1. Overview
  2. Structure
  3. Life Cycle
  4. Properties
  5. Example
  6. Making a Bean

3. JDBC

  1. Overview
  2. Types of Drivers
  3. Making a Connection
  4. Statements
  5. Execute, Update and ResultSets
  6. SQLException
  7. Prepared Statements
  8. Stored Procedures
  9. Transactions
  10. Connection Pooling

4. ENTITIES AND JAVA PERSISTENCE API

  1. Data Persistence
  2. Java Persistence API
  3. Entities
  4. Session Beans Vs Entities
  5. Entities
  6. Persisting and Retrieving Data
  7. Accessing Entities
  8. EntityManager & Persistence Unit
  9. Persistence Context
  10. Entities – Example
  11. persistence.xml – Hibernate Provider
  12. persistence.xml – Open JPA Provider
  13. persistence.xml – Toplink
  14. Entity Instance Lifecycle
  15. Creating EntityManager in Session EJB
  16. Creating EntityManager in a Plain Java Class
  17. Working With the EntityManager Interface
  18. Transaction Basics

5. INTERNATIONALIZATION

  1. Internationalization
  2. Adoption Stages
  3. Internationalization
  4. Locale
  5. Dates
  6. User Interface design
  7. Resource Bundles
  8. Other Local Customs
  9. How Java Represents Characters
  10. Text Files
  11. Text files

6. THE REFLECTION API

  1. Overview
  2. Dynamic Facilities In Java
  3. What this Dynamic Aspect Implies
  4. Considerations
  5. The Class class
  6. Examining Classes
  7. The Example From Last Time
  8. An Example
  9. Reflection Allows
  10. Reflection Also Allows
  11. When Not to Use Reflection
  12. Examining Classes
  13. Manipulating Objects
  14. Creating Objects
  15. Getting Field Values
  16. Setting Field Values
  17. An example
  18. Arrays

7. ARCHITECTURE

  1. Tiered Architectures
  2. Presentation Layer
  3. Middle Tier
  4. Model View Controller
  5. Extensible Markup Language
  6. XML

8. THREADS

  1. Overview of Threads
  2. Threads in Java Programming
  3. Write a Runnable Class
  4. Create Threads
  5. Another Way of Creating Threads
  6. Two ways of creating threads
  7. States in a Thread’s Lifetime
  8. JVM Scheduler
  9. Control and Schedule Thread
  10. Executor Interface
  11. Callable<V> Interface
  12. ExecutorService Interface
  13. Future<T> Object
  14. Coordinating the Concurrency of Multiple threads
  15. Synchronization
  16. How Does the Object Lock Flag Work
  17. Using the synchronized keyword
  18. The implication of synchronization
  19. Example of Synchronization – Producer/Consumer
  20. Example of Synchronization – MyStack
  21. Example of Synchronization – Producer
  22. Example of Synchronization – Consumer
  23. Example of Synchronization – SyncTest
  24. But…
  25. Coordinating Thread Cooperation
  26. wait() and notify()
  27. Example of Coordination Producer/Consumer
  28. Example of Coordination – MyStack
  29. Results
  30. Deadlock

9. NETWORKING

  1. Overview
  2. URL Connections
  3. Browser Example
  4. InetAddress
  5. Socket Classes
  6. Simple Clients and Servers
  7. Simple Clients and Servers (cont.)
  8. Multithreaded Servers
  9. UDP Sockets

10. PARSING XML WITH SAX

  1. Obtaining a Parser
  2. SAX
  3. How it Works
  4. Core SAX2 Handler Classes
  5. SAX2 DefaultHandler
  6. SAX Events
  7. Ignorable Whitespace
  8. XMLReader Interface
  9. XMLReader Features
  10. XMLReader Factory
  11. Prepare SAX Parser Object
  12. Parse XML with SAX – Steps
  13. Define an Event Handler
  14. Prepare SAX Parser Object
  15. Define an Event Handler – startElement()
  16. Define an Event Handler – Element Attributes
  17. Define an Event Handler – Get Number of Attributes
  18. Define an Event Handler – Get Name of Attributes
  19. Define an Event Handler – Get Attribute Values
  20. Define an Event Handler – An Example
  21. Define an Event Handler – characters()
  22. Using characters()
  23. Define an Event Handler – Error Handling
  24. Define an Event Handler – ErrorHandler interface
  25. Parse XML Document
  26. Simple SAX Parser
  27. Run the SAX Application
  28. EntityResolver
  29. Locator
  30. Document Locator

11. PARSING XML WITH DOM

  1. DOM
  2. Limitations of SAX
  3. XML as an Object Model
  4. Nodes
  5. The Basic Node Types
  6. Less Common Node Types
  7. Node Interface
  8. Document Interface
  9. NodeList Interface
  10. Element Interface
  11. Attr Interface
  12. Text Interface
  13. DOM Parsing
  14. Parse XML with DOM – Steps
  15. Prepare DOM Parser Object
  16. Parse XML Document
  17. Parse Exceptions
  18. Example – SimpleDOMParser
  19. Writing DOM

12. THE JAVA ARCHITECTURE FOR XML BINDING (JAXB)

  1. Introduction to JAXB
  2. Overview of Data Binding
  3. JAXB Architecture
  4. Binding Example
  5. Binding Framework Example
  6. Java and XML Mapping Overview
  7. Namespace and Package Name Mapping
  8. Simple Type Mapping
  9. Complex Type Mapping
  10. Customizing Complex Type Mapping
  11. Property Accessor Customization
  12. Property Mapping Customization
  13. XML Element Mapping
  14. Mapping Java Enums
  15. Mapping Collections
  16. Generating Java Class and Schema
  17. Marshalling and Unmarshalling

13. JAVA LOGGING API

  1. Java Logging API
  2. Control Flow of Logging
  3. Logging Levels
  4. Logging Handlers
  5. Loggers
  6. Logging Example
  7. Logging Formatters & Log Manager
  8. Logging Configuration File
  9. Example Logging Configuration File
  10. Logging Filters

14. DISTRIBUTED OBJECTS

  1. Serialization
  2. Externalizable
  3. Remote Method Invocation
  4. Steps to implement RMI
  5. RMI – Remote Object Registry
  6. RMI – Dynamic class loading
  7. RMI and Applets

15. SECURITY

  1. Attacks and Dangers
  2. Overview of JDK Security Features
  3. Overview of JDK Security Features – cont’
  4. Basic Concepts of Computer Security
  5. Encryption
  6. Cryptography Algorithm
  7. Message Digest
  8. Symmetric Ciphers
  9. Asymmetric Ciphers
  10. Digital Signature
  11. Authentication
  12. Certificate Manipulation
  13. Java Cryptography Architecture (JCA)
  14. Java Cryptography Extension
  15. Using the MessageDigest Class
  16. Example of Using the MessageDigest Class
  17. Example of Using MessageDigest Class – cont’
  18. Using the Signature Class
  19. Java Security Architecture
  20. JDK 1.0 Security Model –Sandbox
  21. JDK 1.1 Security Model – Trusted Signed Code
  22. JDK 1.2 Security Model – Security Policy
  23. JDK 1.4 Security Enhancement
  24. Protection Domains and Security Policies
  25. ProtectionDomain Class
  26. Permission Classes
  27. Using Permission Classes
  28. Policy Class
  29. Policy Configuration File
  30. AccessController Class
  31. SecurityManager Class
  32. Using the SecurityManager Class
  33. Dynamic Class Loader
  34. Loader Classes
  35. Example of Security Check in a Class Loader
  36. Java Security Tools
  37. Using Java Security Tools – Code Signing

16. JNI

  1. Overview
  2. JNI Architecture
  3. Calling C Functions
  4. The Header File
  5. Passing Simple Parameters
  6. Mapping Java Types
  7. Calling Java Methods
  8. The Invocation API
  9. Exception Handling
  10. Native Exception to Java
  11. Java Exception In Native Code
  12. Code Sample

17. JUNIT

  1. What is JUnit?
  2. Why JUnit?
  3. The xUnit Philosophy
  4. Test-Driven Design
  5. A JUnit Test
  6. Running the Tests
  7. Swing-based Test Runner
  8. Text-based Test Runner
  9. JUnit Basics
  10. assertTrue
  11. assertEquals
  12. assertSame
  13. assertNull
  14. The Failure Message
  15. The Test Class
  16. The Test Method
  17. The Test Suite
  18. JUnit with Annotations
  19. JUnit 4 Test Suite
  20. JUnit Design
  21. Testing Strategies
  22. Specific Techniques
  23. Testing Simple Java classes
  24. Testing with Databases
  25. Testing Web Applications
  26. Testing Java EE Web Applications
  27. JUnit with Ant
  28. JUnit with Eclipse
  29. Create a Test Case
  30. Test Case “Stubs”
  31. Running Tests
  32. Eclipse Test Runner Icons
  33. Rerun an Individual Test
  34. Failure Trace
  35. Debug with JUnit
  36. Test Suite Wizard

18. SUMMARY OF RECENT JAVA CHANGES

  1. JDK 1.4 – New Features
  2. JDK 1.4 – New I/O API
  3. Buffer
  4. Channel
  5. Simple Write Example
  6. Simple Read Example
  7. File Locking
  8. Simple Locking Example
  9. Memory Mapping File
  10. Example Memory Mapping
  11. Regular Expression Search
  12. JDBC 3.0 Enhancements
  13. XML Processing Using JAXP
  14. Example SAX Handler
  15. Example: Begin Parsing
  16. Example: Build DOM Document
  17. Example: Save DOM Document in a File
  18. XML Serialization Format
  19. Chained Exception
  20. JDK 1.4 – Assertions
  21. When to use Assertions
  22. Enabling Assertions
  23. Java 5 – New Features
  24. Java 5 – Type Safe Enums
  25. Java 5 – Generics
  26. Java 5 – Generics and Collections
  27. Java 5 – Generic Collection Example
  28. Java 5 – Autoboxing/Unboxing
  29. Java 5 – Enhanced for loop
  30. Java 5 – Variable Arguments
  31. Java 5 – Variable Arguments Example
  32. Java 5 – Static import
  33. Java 5 – Annotations
  34. Java 5 – Library Additions
  35. Java 6 – New Features
  36. Java 6 – Web Services
  37. Java 6 – XML
  38. Java 6 – Database

^^

See more Internet Technologies courses