We use cookies to offer you a better experience and to analyse how visitors use our site, you may consent to our cookies by continuing to use our site, or you may view more information and choose to reject cookies by clicking here. Thank you

Contact us online or call us on 0191 377 8377

  • Name*:*
  • Organisation:
  • Telephone:
  • Email:*
  • Message*:*
  • Send me a copy of this email
  • Send me course updates from time to time via email

    Your subscription will naturally terminate after your chosen time limit. We will get in touch just before the end so that you can subscribe again if you would like to continue receiving information after that point.

* Required Fields

Course Java Programming 2
  • Course Duration5 Days
  • Course Options
    Public Scheduled
    Public Scheduled
    Fixed content, fixed date, fixed location, fixed length, multiple organisations - All you need to do is choose which course you would like to attend and contact us to book!
    Flexible content, flexible date, flexible location, variable length, private to your organisation - Courses can be held at one of our training venues or at another location convenient to you. Training can be set over a number of days or weeks to allow for practice time between training sessions.
    Bespoke private training can be based on an existing course or a number of lessons taken from several courses, we can also write bespoke courses for you based on your in-house systems or development program.

The Java Programming 2 course is closely aligned with the Oracle Java SE 8 Programmer II exam.

This course focuses on the core language features and Application Programming Interfaces (APIs) you will use to design effective object-oriented and functional programming applications with the Java Standard Edition 8 Platform.

This course will teach you how to design and develop robust Java code that is easy to test and maintain and can be integrated into multiple applications.

The most important new topics introduced in Java SE 8 are covered, such as Functional Programming and Stream API, that allow you to use the most up to date techniques in your code.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.
    • Delegates attending this course should have experience programming with an object-oriented language, ideally Java. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 course.
    • This course aims to provide the delegate with the knowledge to be able to produce robust, scalable, and testable Java code that may be integrated into enterprise applications and that go beyond the core elements of the language exploiting design patterns, functional programming, collections, date and time, input/output, concurrency, and JDBC. The course further aims to prepare the delegate to sit the Oracle Java SE 8 Programmer II exam.
The Java Programming 2 course helps delegates prepare for the following exam:

Oracle Certified Professional (OCP) Java SE8 Programmer II exam (1Z0-809)

Attending this course will help delegates gain many of the skills and product knowledge requirements as outlined in the exam objectives. Studying this course and its associated reference materials can form part of the preparation to achieve certification. Experience, practice, self-study and aptitude are also key requirements for exam success.

Before taking any exam, ensure you have the recommended experience. The Oracle website lists all exam requirements and these are updated regularly.

Exams are not included as part of the course.
Target Audience
    • The Java Programming 2 course is aimed at staff and consultants working as part of a Java development team to develop high-quality robust software. Roles include Programmers, Designers, Architects, Testers and anyone who needs a good understanding of the use of the Java language and infrastructure.
Skills Gained
    • Implementing code using inheritance and polymorphism
    • Using design patterns to ensure robust design of classes
    • Overriding key methods of the Object class to provide interoperability with collections and other APIs
    • Understanding and using Generics within existing classes and create new Generic classes
    • Creating and using collections including sets, maps and queues
    • Selecting and incorporating standard functional interfaces in code
    • Using Stream API to generate, filter, process and reduce stream data
    • Writing Lambda expressions for use within code including with functional interfaces
    • Declaring try-with-resources blocks and using AutoCloseable classes
    • Working with Java SE8 Date/Time API classes
    • Reading and writing data from/to the Console
    • Managing files and directories
    • Writing concurrent code and using Concurrent API
    • Using parallel streams
    • Building database applications with JDBC
Course Content
    • DAY 1
      Course Introduction
      Administration and Course Materials
      Course Structure and Agenda
      Delegate and Trainer Introductions

      Session 1: JAVA CLASS DESIGN
      Review of Core Java Class Design Principles
      The instanceof operator
      Virtual Method Invocation
      @Override Annotation
      Overriding equals, hashCode and toString
      Nested Classes

      Designing Interfaces
      Functional Programming
      Implementing Polymorphism
      Java Design Principles
      Singleton Pattern
      Immutable Objects
      Builder Pattern
      Factory Pattern
    • DAY 2
      Review of Array and ArrayList and Diamond Operator
      Generic Classes, Interfaces and Methods
      Lists, Sets, Maps and Queues
      Comparable and Comparator
      Searching and Sorting
      Method References
      Conditional Removal of Elements
      Java Map APIs

      Using Variables in Lambdas
      Built-In Functional Interfaces
      Optional Objects
      Creating Stream Sources
      Terminal and Intermediate Operations
      Constructing a Pipeline
      Primitive Streams
    • DAY 3
      Functional Interfaces for Primitives
      Linking Streams to Underlying Data
      Chaining Optionals
      Collecting Results

      Date and Time API Classes
      Creating Dates and Times
      Manipulating Dates and Times
      Daylight Saving Time
      String Class Functionality
      Internationalization and Localization
      Resource Bundles
      Formatting Numbers
      Formatting Dates and Times

      Exceptions Terminology
      Categories of Exceptions
      Try Statement
      Throw Statement
      Throws Statement
      Custom Exceptions
      Multi-Catch Blocks
      Suppressed Exceptions
      Rethrowing Exceptions
      The assert Statement
      Enabling Assertions
    • DAY 4
      Session 7: CONCURRENCY
      Thread Types and Concurrency
      Runnable Interface
      Creating Threads
      Polling with Sleep
      Using ExecutorService
      Thread Pools
      Synchronizing Data Access
      Atomic Classes
      Synchronized Blocks and Methods
      Concurrent Collections
      Memory Consistency Errors
      Parallel Streams
      Processing Parallel Reductions
      CyclicBarrier Class
      Fork/Join Framework
      Threading Problems and Race Conditions

      Session 8: IO
      Conceptualizing the File System
      File Class
      IO Streams
      FileInputStream and FileOutputStream
    • DAY 5
      Session 8 (Continued): IO
      FileReader and FileWriter
      ObjectInputStream and ObjectOutputStream
      Serializing and Deserializing Objects
      PrintStream and PrintWriter

      Session 9: NIO.2
      Path Class
      Interacting with Paths and Files
      File Attributes
      File Attribute View Classes
      Directory Walking
      Legacy File vs. NIO.2 Methods

      Session 10: JDBC
      Relational Databases and SQL
      JDBC Interfaces
      Connecting to a Database
      Statements, ResultSet Types and Concurrency Modes
      Executing Statements
      Getting Data from a ResultSet
      Closing Database Resources
      Dealing with Exceptions
What's included
    • For courses held on our premises, complimentary tea, coffee and biscuits are available. Lunch is not provided, however, there is a wide variety of eateries within a short walk of the centre.
    • Comprehensive course materials and exercises


Course Dates Please contact us to discuss dates for this course, thank you

IT Training Solutions Ltd
Oakville, 14 Durham Road West, Bowburn, Durham, DH6 5AU
0191 377 8377

Printed: 21 Nov 19




Contact us

  • Name*:*
  • Organisation:
  • Telephone:
  • Email:*
  • Message*:*
  • Send me a copy of this email
  • Send me course updates from time to time via email

    Your subscription will naturally terminate after your chosen time limit. We will get in touch just before the end so that you can subscribe again if you would like to continue receiving information after that point.

* Required Fields