Java Developer
Java Developer
Java Developer
Course Code JAVADEV
Course Description
Java is everywhere and is as popular as ever. This hands-on course, delivered using Java 11, endeavours to
provide the fundamental skills you need to become a Java Developer. We'll have you build a series of realistic
apps focusing on object-oriented principles from the start.
Note that this is not a beginners course. You are expected to be familiar with programming concepts and have a
little coding experience. If not you should consider our Learn to Code with Java course instead.
Exercises and examples are used throughout the course to give practical hands-on experience with the
techniques covered.
Objectives
Target Audience
The Java Developer course is aimed at anyone with a little coding experience seeking to become a Java
Developer, and existing developers seeking to migrate to Java.
Additional Information
Whilst not strictly aligned to it, this course is a good choice for anyone intending to take Oracle's Java SE 11
Programmer I exam. All of the headline exam topics are covered though additional preparation is likely to be
required.
Course Modules
◾ What is an object
◾ What is a class
◾ Object-oriented apps
◾ Classes
◾ Fields
◾ Constructors
◾ Methods
◾ Objects
◾ Instantiation
◾ Getting and setting fields
◾ Calling methods
◾ Instance fields
◾ Default values
◾ Local variables incl. parameters
◾ Primitives
◾ Literals
◾ Default types
◾ Casting
◾ References
◾ Arrays (brief)
◾ Strings (brief)
◾ Primitive wrappers
◾ Constants
◾ Type inference
◾ Varargs
◾ Naming conventions
◾ What is an array
◾ Strings to numbers
◾ Arithmetic and unary operators
◾ The Math class
◾ The BigDecimal class
◾ Number formatting
◾ What is an exception
◾ Checked vs. unchecked exceptions
◾ Exceptions and the call stack
◾ Try, catch, and finally
◾ Handling multiple exception types
◾ Try with resources
◾ Throwing exceptions
◾ Custom exceptions (brief)
Encapsultation (6 topics)
◾ What is encapsulation
◾ Access modifiers
◾ Private fields and public methods
◾ Getters and setters
◾ Constructors (for controlling instantiation)
◾ The this keyword
◾ What is composition
◾ What is aggregation
◾ Composite associations
◾ Aggregate associations
◾ Constructor injection (mandatory)
◾ Setter injection (optional)
◾ The problem with getter methods (refs. vs. copies)
◾ What is inheritance
◾ The purpose of inheritance
◾ Extending a superclass
◾ Shadowing
◾ Overriding
◾ Subclass constructors
◾ The super keyword
◾ Inheritance polymorphism
◾ Upcasting and downcasting
◾ The instanceof operator
◾ Final classes and methods
◾ The Object class incl. toString, hashCode, and equals (brief)
◾ What is abstraction
◾ The purpose of abstraction
◾ Abstract classes and methods
◾ Extending an abstract class
◾ Interfaces
◾ Implementing one or more interfaces
◾ Extending and implementing
◾ Interface polymorphism
◾ Interface default, static, and private methods
◾ What is a stream
◾ The different types of stream
◾ The Path class
Modules (8 topics)
◾ What is a module
◾ Module descriptor
◾ Module requires and exports
◾ Compiling a module
◾ Using jdeps to determine a module's dependencies
◾ Compiling a module that requires other modules
◾ Executing a module
◾ Using jlink to build a custom JRE
◾ What is JDBC
◾ Loading the driver
◾ Establishing a connection
◾ AutoCommit
◾ Transaction management
◾ Creating a statement
◾ PreparedStatement
◾ CallableStatementt
◾ Batch updates
◾ Executing a query/update
◾ Processing a ResultSet
◾ Type
◾ Concurrency
◾ Holdability
◾ Closing resources
Prerequisites
Delegates attending this course should be able to define general programming concepts including compilation
and execution, variables, arrays, sequence, selection and iteration, navigate the filesystem (on the command line
ideally), edit and save text files and browse the web. This knowledge can be obtained by attendance on the pre-
requisite Introduction to Programming course.