Java Programming – Advanced

Java Programming – Advanced

Course Summary

This course is for those who want to go further and learn advanced Java programming! You will learn how to apply proven DesignPatterns, different techniques for handling XML files, both for configuration and for storing data.
You will learn how to write advanced multi-threaded applications using both traditional thread classes and the Executor Framework. You will understand the underlying technology of network programming and how to build distributed RMI applications.
You will learn how to create reusable components; JavaBeans.
Finally, the course includes methods for analyzing existing classes, optimizing existing code, and measuring the performance of Java applications.

  • Writing efficient Java code
  • Understand how Java works in depth
  • Applying design patterns in Java
  • Building robust changeable systems
  • Create advanced multi-threaded applications
  • Using different Java techniques for handling XML files
  • Create distributed client/server solutions
  • Creating reusable components
  • Managing performance measurement tools

Java-savvy programmers, systems engineers and project managers who want to build advanced systems that exploit the full potential of Java.

Knowledge of Java programming and basic knowledge of object orientation.

This course has no certification

Course content

1. design patterns

  • Advanced object orientation with Java and UML
  • Creating patterns
  • Structural patterns
  • Behavioral patterns
  • Application of design patterns in the Java standard library

2. thread programming with Java

  • Runnable interface and Thread class
  • Synchronization: synchronized, wait, notify, notifyAll
  • Technology for wire-secure code
  • The primitives behind wire management
  • Rules for variables and locks
  • Producer-Consumer design patterns

3. executor framework

  • Framework java.util.concurrent
  • Executor and ExecutorService
  • The Callable interface
  • Future and FutureTask interfaces
  • Specially designed classes: Semaphore, CountDownLatch, CyclicBarrier, Exchanger
  • Thread-safe collection classes: BlockingQueue, DelayQueue ConcurrentHashMap
  • Lock: Lock, ReadWriteLock, ReentrantLock, Condition
  • Atomic variables
  • Fork/Join framework

4. Java and XML

  • XML: Text-based standard for data
  • JAXP, JAXB: Java support for handling XML
  • Validation of XML documents with DTD, XML Schema
  • Techniques for parsing XML in Java: SAX, DOM
  • Manipulating XML-based data in Java
  • XML for configuration and processing of Java applications
  • Techniques for reading and writing XML with StAX

5. New I/O

  • Package java.nio
  • Performance improvements compared to java.io
  • Classes for effective two-way communication
    • Channels
    • Buffers
  • Direct transfer between streams via underlying OS
  • NIO2 Accessing the underlying File System

6. Network programming with Java

  • ServerSocket and Socket
  • Setting up a server
  • Connecting to server from client
  • Two-way communication over Socket connection
  • ServerSocketChannel and SocketChannel for non-blocking communication

7. Distributed services

  • Distributed services
  • Register for accessing services
  • RMI – Remote Method Invocation
  • Implementation of RMI service
  • Registration of RMI object in rmiregistry on server
  • Calling RMI objects via name service
  • CORBA
  • WebServices

8. Java Deep Dive

  • Reflection
  • ClassLoaders
  • Security

9. JavaBeans

  • Software components
  • JavaBeans definition and properties
  • Attribute: Normal, Indexed, Bound, Constrained
  • PropertyChangeSupport / VetoableChangeSupport
  • Callback procedures for event listeners
  • Serialization to XML format
  • JavaBeans and JSP
  • Enterprise Java Beans (EJB)

10. performance

  • Optimization
  • Java execution environment
  • Java’s memory allocation
  • Compiler technology
  • JVM parameters
  • Automatic memory recovery
  • Garbage collection: mark-and-sweep vs generational
  • JMX – performance analysis tool
  • Security aspects of Java applications

Exercises

Applications of different Design Patterns

Implementing multi-threaded applications with traditional technologies

Using the Executor Framework to separate thread jobs from execution

Applying the Fork/Join framework to efficiently utilize multi-core CPUs

Using DOM technology for the configuration of an application

Using StAX technology to read/write from/to XML

Using Sockets to communicate between Client/Server

Create distributed services with RMI

Create non-visual and visual component with JavaBeans

Performing performance measurement on a Java application

Course Overview

28 450 kr

3 days

Can’t find a (suitable) date, but are interested in the course? Send in an expression of interest and we will do what we can to find a suitable opportunity.

Out of stock

Customized Courses

The course can be adapted from several perspectives:

  • Content and focus area
  • Extent and scope
  • Delivery approach

In interaction with the course leader, we ensure that the course meets your needs.

Skicka intresseanmälan för utbildningen

Send an expression of interest for the training