fbpx

Course Advanced Java Programming

Course Advanced Java Programming
Region:
  • Modules
  • Course
  • Content
  • General information
    General
  • Reviews
  • Module 1 : Advanced Class Design

    Module 2 : Multiple Threads

    Module 3 : Concurrency

    Encapsulation and Inheritance
    Implementing Composition
    Polymorphism
    Singleton Patterns
    Immutable Classes
    Abstract Classes
    Final Classes
    Inner Classes
    Static Inner Classes
    Anonymous Inner Classes
    Autonomous Classes
    Extending Interfaces
    Enumerated Types
    Implementing hashCode and equals
    Java Thread Model
    Extending Thread Class
    Implementing Runnable
    Daemon Threads
    Thread Alive States
    Thread Class Methods
    Sleeping and Yielding Control
    Using join and interrupt
    Concurrent Method Activation
    Synchronized Statement
    Locking and Statics
    Deadlock
    Condition Synchronization
    Using wait and notify
    Concurrency Package
    Task Scheduling Framework
    Executor Interface
    ExecutorService
    Callables and Futures
    ScheduledExecutorService
    Synchronizers
    Semaphores and Exchanger
    CountdownLatch and CyclicBarrier
    Concurrent Collections
    BlockingQueue Interface
    Lock Interface
    Reentrant Locks
    Atomic Variables

    Module 4 : Lambda's and Functional Interfaces

    Module 5 : Generics and Collections

    Module 6 : Streams

    Passing Functionality
    Lambda Expressions
    Lambda Syntax
    Lambda Variable Access
    Lambda Scoping Rules
    Functional Interfaces
    Predicate Interface
    Consumer Interface
    Supplier Interface
    Function Interface
    UnaryOperator Interface
    BinaryOperator Interface
    Method References
    @FunctionalInterface annotation
    User Defined Functional Interfaces
    What are Generics?
    Type Erasure and Raw Types
    Generics and Subtyping
    Bounded Type Parameters
    Wildcards
    Generics in Collections
    ArrayList and LinkedList
    TreeSet and Hash Set
    HashMap and TreeMap
    ArrayDeque objects
    Comparable and Comparator Interface
    Collections Streams and Filters
    Iteration using forEach
    Filtering using Lambda's
    Stream Interface and Stream Pipeline
    What are Streams?
    Lazy Evaluation and Parallelization
    Core Stream Methods
    forEach, Map and Filter
    findFirst and findAny
    toArray and collect
    Optional Class
    Limiting Stream Size
    allMatch and anyMatch
    Number Specialized Streams
    Reduction Operations
    Parallel and Infinite Streams
    collect Method
    Grouping with Collectors class
    Using flatMap Method

    Module 7 : Exception Handling

    Module 8 : Java IO and NIO

    Module 9 : Database Access met JDBC

    Errors and Exceptions
    Exception Handling Syntax
    Checked and Unchecked Exceptions
    Exception Hierarchy
    Multiple Catch Clauses
    finally Clause
    try with Resources
    Auto Closeable Resources
    Common Exceptions
    Throwing Exceptions
    User Defined Exceptions
    Chained Exceptions and Stack Traces
    Rethrowing Exceptions
    Assertions
    Standard I/O Streams
    Stream Types
    Reading and Writing Files
    Buffered Streams
    Data Conversion Streams
    Serialization
    Object Streams
    NIO and Asynchronous I/O Processing
    Working with Buffers
    IO Channels
    Stream API with NIO.2
    Using Path Class
    Directory Traversing
    PathMatcher class
    JDBC Architecture
    JDBC Drivers and URL's
    Database Connections
    Executing Statements
    Querying Databases
    Update Statements
    Retrieving Results
    Handling Errors
    Prepared Statements
    Database Metadata
    Transactions
    Commit and Rollback
    Rowset Interfaces
    Using RowsetProvider

    Module 10 : Localization

    Optional Module 11 : Reflection

    Optional Module 12 : Performance

    LocalDate Class
    LocalTime and LocalDateTime
    Instant and Period
    Duration and TemporalUnit
    Defining Properties
    Reading Property Files
    Creating Resource Bundles
    Formatting Date and Times
    Locale Class
    Localizing Dates
    Localizing Numbers
    Localizing Currencies
    What is Reflection?
    Reflection Classes
    Class Loading
    The Class Class
    Creating Objects
    Reflection Methods in Class
    Field Class
    Constructor Class
    Method Class
    AccessibleObject Class
    Dynamic Proxies
    Invocation Handler
    Influences on Performance
    JIT Compilation and Hotspot JVM
    Garbage Collection
    String Types
    Buffered and New I/O
    Synchronization and Concurrency
    Primitives versus Wrappers
    Collections
    Exception Handling
    Serialization
    Native methods
    Lazy Loading and Object Reuse
  • Audience Course Advanced Java Programming

    Course Advanced Java ProgrammingThe course Advanced Java Programming is intended for experienced Java developers who want to gain more in depth knowledge of Java.

    Prerequisites Course Advanced Java Programming

    Knowledge of the Java language and syntax and basic experience in Java programming is required to participate in this course.

    Realization Training Course Advanced Java Programming

    The theory is treated on the basis of presentations and is interspersed with exercises. Demos are used to clarify the theory. The course material is in English. The course times are from 9.30 up and to 16.30.

    Certification Course Advanced Java Programming

    Participants receive an official certificate Advanced Java Programming after successful completion of the course.

  • Course Advanced Java Programming

    In the course Advanced Java Programming a series of advanced aspects of Java are discussed. The course covers the topics that are asked for on the Oracle Certified Java Professional or OCP exam and is a good preparation to pass this exam. In the first place attention is paid to aspects of Advanced Class Design such as the implementation of inheritance and composition, the use of polymorphism, interfaces, inner and anonymous classes and the singleton pattern. Next multithreaded applications are discussed and the synchronization between threads when accessing shared data. During the treatment of the concurrency package advanced synchronization mechanisms such as cylic barriers and countdown latches are discussed. Also the functional language constructs introduced in recent Java versions are discussed with lambdas and functional interfaces. Next generics are on the course program with which classes and methods can be parameterised, strong typing is imposed and the chance of runtime errors is limited. Generics are used a lot in the Collection Framework and the most important container classes in this Framework are discussed. Next attention is paid to the Stream API that enables transformations on data collections to be performed by a combination of successive simpler methods like map and reduce. The various possibilities for dealing with errors and exceptions are also on the program and attention is paid to file I/O and new I/O when accessing files and directories. Database access with Java Database Connectivity (JDBC) is treated and queries, prepared statements and transactions are part of that. Finally, if time permits, reflection is optionally on the course program, with which compiled Java classes can be analyzed by means of software, and optionally various aspects of enhancing the Java performance are discussed.

  • Course Forms

    All our courses are classroom courses in which the students are guided through the material on the basis of an experienced trainer with in-depth material knowledge. Theory is always interspersed with exercises.

    Customization

    We also do custom classes and then adjust the course content to your wishes. On request we will also discuss your practical cases.

    Course times

    The course times are from 9.30 to 16.30. But we are flexible in this. Sometimes people have to bring children to the daycare and other times are more convenient for them. In good consultation we can then agree on different course times.

    Hardware

    We take care of the computers on which the course can be held. The software required for the course has already been installed on these computers. You do not have to bring a laptop to participate in the course. If you prefer to work on your own laptop, you can take it with you if you wish. The required software is then installed at the start of the course.

    Software

    Our courses are generally given with Open Source software such as Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda and Netbeans. You will receive the digital course material to take home after the course.

    Lunch

    The course includes lunch that we use in a restaurant within walking distance of the course room.

    Locations

    The courses are planned at various places in the country. A course takes place at a location if at least 3 people register for that location. If there are registrations for different locations, the course will take place at our main location, Houten which is just below Utrecht. A course at our main location also takes place with 2 registrations and regularly with 1 registration. And we also do courses at the customer’s location if they appreciate that.