HemSök efter kurserJavaprogrammering - Avancerad

Javaprogrammering – Avancerad


This course is for those who want to go further and learn advanced Java programming! You will learn how to apply proven Design Patterns, various techniques for managing XML files, both for configuration and for data storage. 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 analysis of existing classes, optimization of existing code and performance measurement for Java applications.


  • Applications of various Design Patterns
  • Implement multi-threaded applications with traditional technology
  • Use the Executor Framework to separate thread jobs from execution
  • Apply the Fork / Join framework to efficiently utilize multi-core CPUs
  • Use DOM technology to configure an application
  • Use StAX technology to read / write from / to XML
  • Use Sockets to communicate between Client / Server
  • Create distributed services with RMI
  • Create non-visual and visual component with JavaBeans
  • Perform performance measurement on a Java application


3 dagar

28450 kr

Target group

Programmers with fundamental Java and OO knowledge that want to learn more and be able to build advanced systems that utilize the full potential of Java.


  • Write effective Java code
  • Understand how Java works in depth
  • Apply design patterns in Java
  • Build robust changeable systems
  • Create advanced multi-threaded applications
  • Use various Java techniques to manage XML files
  • Create distributed client / server solutions
  • Create reusable components
  • Manage performance measurement tools

Previous knowledge

Knowledge of Java programming and basic knowledge in object orientation.

Java programming - Basic

Course content: Java programming - Advanced

1. Design Patterns

  • Advanced object orientation with Java and UML
  • Creational patterns
  • Structural patterns
  • Behavioral patterns
  • Application of design patterns in Java's standard library

2. Thread programming with Java

  • The Runnable interface and the Thread class
  • Synchronization: synchronized, wait, notify, notifyAll
  • Writing thread safe code
  • The primitives behind thread management
  • Rules for variables and locks
  • Design pattern Producer-Consumer

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
  • Locks: 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
  • Manipulation of 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 efficient two-way communication
    • Channels
    • Buffers
  • Direct transfer between streams via the underlying OS
  • NIO2 Access to the underlying file system

6. Network programming with Java

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

7. Distributed services

  • Distributed services
  • Register for access to services
  • RMI - Remote Method Invocation
  • Implementation of RMI service
  • Registration of RMI objects in rmiregistry on server
  • Calling of RMI objects via name service
  • WebServices

8. Java Deep Dive

  • Reflection
  • ClassLoaders
  • Security

9. JavaBeans

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

10. Performance

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


Andra har även varit intresserade av dessa kurser: