Java programming – advanced

Java programming – advanced

Course Summary

Do you want to deepen your knowledge of Java and become an expert in advanced programming?
This course is tailored for those who already know the basics and want to take the next step towards professional development with Java.

You will learn:

  • Design Patterns in Practice
    Learn to use proven design patterns to write robust, scalable, and maintainable code.
  • Managing XML files efficiently
    Discover techniques for working with XML – both for configuration and data storage.
  • High-performance multi-threaded applications
    Create advanced programs with traditional thread classes and the Executor Framework.
  • Network Programming & Distributed Systems
    Understand the basics of network communication and how to build distributed RMI applications.
  • JavaBeans
    Learn how to create reused components.
  • Code Analysis and Performance Optimization
    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. Threaded 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

28450 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.

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