Course in Java Intermediate

Supplementary course in Java programming

In this supplementary course, we carry on from were the basics course ended and teches you about the JVM, using reflections, creating annotations, dealing object serialization and much more.
This is what you will learn
  • Know how to write programs using reflections
  • Know how to use and design own annotations
  • Understand the JVM, its heap organization and how classes are loaded
  • Apply logging
  • Using various text formats
  • Mater binary I/O both for files and sockets
Course Contents


  • What is reflection and why is it a good idea to master
  • Understanding java.lang.Class
  • Reconstruction of an anonymous object
  • Reflective class-loading and instantion
  • Reflective invocation of methods, fields and constructors
  • Invoking private members
  • Proxy objects and their handlers


  • What is annotations
  • Standard annotations in the Java API
  • How to design your own annotations
  • Compile-time vs. run-time annotations
  • Some use cases

Class Loading

  • How the JVM loads classes and why it is a good idea to understand
  • The class-file format
  • Understanding and using a class-loader
  • Dealing with objects from different class-loaders


  • The JVM sandbox model
  • Understanding the role of a security-manager
  • Permissions
  • Setting policies
  • Byte-code verification
  • Code-bases

Understanding the JVM

  • Useful JVM related command-line tools
  • JVM parameter overview
  • The JVM heap organization
  • Understanding garbage collection
  • GC algorithms
  • Visually inspecting a JVM


  • What do we mean by logging
  • Java Util logging
  • Log4J
  • Apache Commons Logging
  • Simple framework for logging


  • What is i18n
  • Resource bundles
  • Message properties files
  • Locale
  • Language aware formatting and parsing
  • Setting the language as a system property

Text Serialization

  • Understanding different text formats
  • CSV
  • XML
  • JSON
  • YAML
  • FWV
  • Usage of some popular open-source libraries for text serialization/deserialization

File I/O

  • File systems
  • Paths
  • vs. java.nio.file.Path and how to proceed
  • Common file operations using java.nio.file.Files
  • Handling meta-data
  • Traversing directories
  • Directory watch service
  • Memory mapped files
  • Buffers and channels
  • Java binary serialization and externalization


  • Understanding stream socket communcation
  • Client sockets
  • Server sockets
  • Socket channels
  • Network byte order (NBO)
  • Using datagram communication
NameJava Intermediate
Duration 3 Days
AudienceJava programmers
Prerequisites Practical knowledge in Java programming
  • Java JDK, version 10+
  • JetBrains IntelliJ IDEA
Course Dates
2020-02-17Stockholm19 000 kr
2020-03-09Stockholm 19 000 kr
2020-03-30Stockholm 19 000 kr
2020-04-14Stockholm 19 000 kr
2020-05-25Stockholm 19 000 kr
2020-06-15Stockholm 19 000 kr

Same-Company Discout

We offer a 20% discount for additional participants from the same company and at the same course date. Read more here.

Teaching Language

Our printed course material is always authored in English. The oral presentation in our classrooms is generally in Swedish, unless all participants agree to that we perform the course in English.

On-Site Course

If you order an On-Site course, we will come to you and hold the course in your office. The price is determined by our price model and is based on the number of course days, number of participants and any travel and lodging.

Read more about out price modell and term of sales here.

Related Courses
CourseDays Level
Java Basics5BeginnerShow
Threads and Concurrency in Java2AdvancedShow
Java for REST Web Services Apps3 IntermediateShow