Previous
Next

I need more information

If you would like to speak to a member of our specialist team, please feel free to call our freephone number or email us directly:

0800 028 6400

enquiries@jbinternational.co.uk

Quote me | Enrol me

Advanced Java Training Course - Advanced Programming Techniques Workshop

Course code: JAVAADV
Details: 22 July, 4 days, £1995 + VAT
28 October, 4 days, £1995 + VAT
25 February, 4 days, £1995 + VAT
OnsiteEnquire about bringing this course to your offices
Who should attend: IT professionals who already have some Java experience and are looking to further their skills or resolve any issues they may have with the more complex areas of its use.
Prerequisite skills: Java knowledge (to the level of our JavaSE course or similar).

Clients who have attended this course include

HSBCBarclaysSantander

Course Outline

Java is now a mature language. With the advent of Java 5 and now Java 6, the language has seen profound improvements of which not all developers are aware. This course highlights those improvements, as well as delving into a range of topics that an experienced Java developer needs, such as design patterns, logging and testing frameworks, performance and concurrency issues: skills that underpin best Java development project practice worldwide.

This course has very much a workshop feel by design, as experienced Java developers will typically come to this course with individual issues and requirements, and our expert instructors can usually adapt the course content on the fly and have the flexibility to concentrate on topics as required (within reason!).

Course Content

All exercises and examples are designed to achieve the maximum benefit for delegates. They aim to effectively demonstrate the advanced concepts covered in the course and provide an opportunity to experiment with them; many of the exercises develop custom API’s which encapsulate complex functionality that can be used in numerous real world applications.

This course has been developed for real-world, commercial scenarios by our expert instructors. See below for detailed syllabus. If you have a technical question, please email sales@jbinternational.co.uk

What you will learn

1. Advanced language concepts, including generics, enumerations and other Java 5 additions to the Java language.
2. A solid grounding in use of Java for distributed programming, including web techniques.
3. Best practices, including use of open source frameworks and techniques that are now mainstream project standards.
4. How to use design patterns effectively and apply them in practical contexts.

Advanced Java Training Course Outline

Improvements to the Java Language

Exploiting type-safe Collection classes with generics
Writing your own generified, flexible classes
How to minimize casting with autoboxing
Annotations for improving compiler effectiveness
Providing your own annotations
Effective string processing with regular expressions
Flexible parameter lists with varargs
Farewell to lists of constants: enumerations

Maintainability & Extensibility with Design Patterns

Beyond simple OO
Why new is not always best: creational patterns
One and only one instance with Singleton
Controlling what you create with Factory Method
Improved object relationships: structural patterns
Bridging divides with Adapter
When inheritance is not enough: Decorator
Object oriented algorithms: behavioural patterns
Divide and rule with Command
Event-driven processing: Observer
Applying State and Strategy
Enforcing lifecycles with Template Method

Logging Best Practice

System.out.println considered harmful
Controlling message destinations
Filtering messages by severity
Choices of logging framework: Java native logging versus log4j
Avoiding commitment: Apache
Commons Logging
Creative applications for logging

Optimizing the Java Development Lifecycle

Beyond simple build management with ANT
Incorporating and automating project-wide testing
Enforcing code quality standards
Gathering metrics
Spotting anti-patterns
Further automation with Maven
Controlling dependencies
Maven and IDE integration
Configuration management with SubVersion

New features of Java

JUnit: testing framework and philosophy
Testing best practice
Improved test management with annotations
Container-based testing for enterprise Java components

Approaches for Distributed Applications

Java's raw networking capabilities
Simplifying access to networked resources:
URL and URLConnection
Improved remote method invocation (RMI) and macro frameworks - Web client/server architectures
Apache HttpClient
Web containers: Apache Tomcat

Designing Secure Applications

Locking down the JVM with policy-based security
Implications of security for writing Java code
Authentication and authorisation in enterprise Java environments
High Performance Java
Tools for profiling your Java code
Analysing response times and bottlenecks
Automating load and stress testing
High-performance IO for files and networks: java.nio.
Common performance-related coding issues
Configuring the JVM for best performance
Managing and monitoring Java applications with JMX
Concurrency Utilities
Thread-safe building blocks: the java.util.concurrent* packages
Scheduling and synchronizing tasks
Implementing highly scalable concurrent algorithms