Framework Training

Code

java2

Scheduled Dates

15 Jul 2013
9 Sep 2013
4 Nov 2013
27 Jan 2014

Scheduled Address

Framework Training Ltd

154 - 160 Fleet Street
London
EC4A 2DQ

More about our London Training Centre

Experience Level

expert

Days

4

Price per person

£1995 +VAT

Course description

Our challenging Expert Java SE Programming course has been designed to give existing Java developers the opportunity to learn Best Practices, advanced programming techniques, key Java language updates and code optimisation methods.

This training course aims to put experienced Java developers through the mill and introduce and reinforce the use of proven design patterns to improve the quality and efficiency of Java code.

What you will learn

  • Advanced Java Threading & Multi-threading
  • Advanced OO
  • Key New Language Features in Java SE 7
  • Advanced Java File IO techniques
  • Advanced JDBC
  • Java Reflection API
  • Remote Method Invocation (RMI)
  • Java Serialization API
  • Client/Server interaction through Sockets
  • Java Native Methods
  • Java SE Design Patterns

Who should attend

Java developers looking to increase their understanding and abilities with the more advanced Java APIs and capabilities.

Prerequisites

You should be comfortable with the topics in our Intro Java Programming training course or have similar experience, with at least 6 months' solid Java coding experience.

Expert Java Training Course Syllabus

Advanced Java Threading & Multi-threading

Threads
ThreadGroups
Mutual exclusion
Semaphores

Advanced OO

Class partitioning
Inner Classes
Enumerations
Generics & Collections
Auto-boxing and auto-unboxing

New Language Features coming in Java SE 7

Strings in switch
Binary integral literals
Underscores in numeric literals
Multi-catch and precise rethrow
Improved type inference for generic instance creation
try
-with-resources statement
Simplified varargs method invocation
Lambda Expressions

Advanced Java File IO techniques

NIO Buffer

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer

Channels
File Locking
Transferring Data & Exceptions
Invoking Chaining

Advanced JDBC

Optimising Stored Procedures & Prepared Statements
DatabaseMetaData
Smoothing out SQL with JDBC Escape Syntax
Creating Batch Updates in JDBC
Transaction Savepoints
Wrapping ResultSets with the RowSet Class
Caching
DataSources

Java Reflection API

Dynamic retrieval of information using Reflection
Creating instances of Extensibility Objects
Test Harnesses
Class Fields, Methods & Constructors
Arrays & Enumerated types
Improving Exception Handling with Reflection & Generics
Considerations - Performance & Security

Remote Method Invocation (RMI)

Distributed Java Applications
Stub & Skeleton Layer
Naming Remote Objects
Using RMI
Interfaces
Host Server & Client
Parameters
Callbacks
Dynamic Class Loading
Distribution of RMI Classes
Serialization of Remote Objects
Untrusted Code
Managing Security Policies
Securing Applications & Applets
RMI vs. Sockets and Object Serialisation

Java Serialization API

Object Persistence
java.io.Serializable
Writing & Reading Objects
Serialized GUI objects
Exception Handling
Customising the Default Protocol
Version Control
Performance Considerations

Client/Server interaction through Sockets

What is a Socket?
The Socket Class
Reading from & writing to a Socket
Transporting Objects over Sockets
Concurrent Servers
The URL Class
The URLConnection Clas

Java Native Methods

Overview of Java Native Methods and Java Native Interface (JNI)
JNI Functions & Enhancements
Native Method Declaration
Calling Java Methods in Native Code
Resolving Native Method Names
Native Method Arguments
Global and Local References
Exception Handling
JNI Types and Data Structures
String Operations

Java SE Design Patterns

What Design Patterns are and when to use them
Creational Patterns

  • Singleton
  • Object Pool
  • Factory Method
  • Builder
  • Prototype

Structural Patterns

  • Bridge
  • Composite
  • Façade
  • Adapter / Wrapper

Behavioral Patterns

  • Interpreter
  • Iterator
  • State
  • Observer
  • Strategy

Concurrency Patterns

  • Active Object
  • Messaging Pattern
  • Double-checked Locking