Hyppää sisältöön

Koulutus

Java SE 25: Programming I

Access expert-led QA training live online, wherever you learn best.

Overview

This course builds on the foundational skills taught in Java SE: Programming I, providing additional key skills for Java programmers. It covers secure coding, modular programming, database access, concurrency, multithreading, annotations, advanced generics, Java applications on Oracle Cloud, and other advanced Java topics using the current main Java version.

Prerequisites

Participants should have attended or have knowledge equivalent to: Java SE 25: Programming I (OCJSE25PI)

Target audience

This course is designed for:

  • Data Scientists
  • Developers
  • Implementers

Objectives

By the end of this course, learners will be able to:

  • Create Java applications that leverage object-oriented features such as encapsulation, inheritance, and polymorphism
  • Execute a Java application from the command line
  • Create applications using the Java Collections framework
  • Search and filter collections using Lambda Expressions
  • Implement error-handling techniques using exception handling
  • Implement input/output (I/O) functionality to read from and write to data and text files
  • Manipulate files, directories, and file systems using the JDK NIO.2 specification
  • Perform multiple operations on database tables using JDBC and JPA technology
  • Use Lambda Expression concurrency features
  • Apply modular programming practices and services to applications
  • Create high-performing multi-threaded applications

Outline

Java IO API

  • Java input-output principles
  • Java input-output API
  • Reading and writing binary data
  • Basic binary data reading and writing
  • Reading and writing character data
  • Basic character data reading and writing
  • Connecting streams
  • Standard input and output
  • Using console
  • Understand serialization
  • Serializable object graph
  • Object serialization
  • Serialization of sensitive information
  • Customise serialization process
  • Serialization and versioning
  • Working with filesystems
  • Constructing filesystem paths
  • Navigating the filesystem
  • Analyse path properties
  • Set path properties
  • Create paths
  • Create temporary files and folders
  • Copy and move paths
  • Delete paths
  • Handle zip archives
  • Represent zip archive as a filesystem
  • Access HTTP resources

Java Concurrency and Multithreading

  • Java concurrency concepts
  • Implement threads
  • Thread life cycle
  • Interrupt thread
  • Block thread
  • Make thread wait until notified
  • Common thread properties
  • Create executor service objects
  • Manage executor service life cycle
  • Implementing executor service tasks
  • Locking problems
  • Writing thread-safe code
  • Ensure consistent access to shared data
  • Nonblocking atomic actions
  • Ensure exclusive object access using intrinsic locks
  • Intrinsic lock automation
  • Nonblocking concurrency automation
  • Alternative locking mechanisms
  • CPU versus IO bound concurrent tasks
  • Virtual threads API
  • Virtual thread operations
  • Scoped values
  • Scoped values operations

Modules and Deployment

  • Compile, package, and execute nonmodular Java applications
  • Nonmodular Java characteristics
  • What is a module?
  • Java modules
  • Java module categories
  • Module import declarations
  • Define module dependencies
  • Export module content
  • Module example
  • Open module content
  • Open an entire module
  • Produce and consume services
  • Services example
  • Multi-release module archives
  • Compile and package a module
  • Execute a modularised application
  • Migrating legacy Java applications using automatic module
  • Create custom runtime image
  • Execute runtime image
  • Optimise a custom runtime image
  • Check dependencies

Annotations

  • Introduction to annotations
  • Design annotations
  • Apply annotations
  • Dynamically discover annotations
  • Document the use of annotations
  • Annotations that validate design
  • Deprecated annotation
  • Suppress compiler warnings
  • Varargs and heap pollution

Java Database Connectivity

  • Java Database Connectivity (JDBC)
  • JDBC API structure
  • Manage database connections
  • Create and execute basic SQL statements
  • Create and execute prepared SQL statements
  • Create and execute callable SQL statements
  • Process query results
  • Control transactions
  • Discover metadata
  • Customise ResultSet
  • Set up ResultSet type
  • Set up ResultSet concurrency and holdability

Java Security

  • Security as nonfunctional requirement
  • Security threats
  • Denial of Service (DoS) attack
  • Define security policies
  • Changes in the security API
  • Secure file system and I/O operations
  • Best practices for protecting your code
  • Erroneous value guards
  • Protect sensitive data
  • Prevent SQL injections
  • Prevent JavaScript injections
  • Prevent XML injections
  • Discover and document security issues

Advanced Generics

  • Compiler erases information about generics
  • Generic and raw type compatibility
  • Generics and type hierarchy
  • Wildcard generics
  • Upper bound wildcard
  • Lower bound wildcard
  • Collections and generics best practices

Java Applications on Oracle Cloud

  • Cloud application requirements
  • Cloud application runtime infrastructure
  • Cloud Java application servers
  • Package and deploy cloud application
  • Optimise deployment with GraalVM
  • HTTP protocol basics
  • REST service conventions and resources
  • Configure and launch REST service application using Helidon SE

Miscellaneous Java Topics

  • Builder design pattern
  • Singleton design pattern
  • Java regular expression API
  • Regular expressions: character classes
  • Regular expressions: quantifiers
  • Regular expressions: boundaries
  • File IO watch service
  • Class-file API
  • Foreign function and memory API
  • Allocating and deallocating memory for native data
  • Representing native functions
  • Calling a native function

Exams and assessments

This course will help learners prepare for the Java SE 25 Developer Professional exam which is available separately.

Hands-on learning

Learners practice the skills learned in each lesson through hands-on labs.

Osta liput

QA’s online-courses from Tieturi

Questions about QA courses?

Find out how QA’s live online courses work, what you need to participate, and what to expect before booking your training.

Accreditation and trademark notice

ITIL® and PRINCE2® courses are provided by QA Ltd, an ATO of People Cert.

ITIL®, PRINCE2® are registered trademarks of the PeopleCert group. Used under licence from PeopleCert. All rights reserved.

TOGAF® is a registered trademark of The Open Group.