Novinka v nabídce
Kód kurzu: D99947« Krok zpět

Java SE 9: Exploiting Modularity and Other New Features

Kurz představuje Java module system (Jigsaw) a další novinky v Java SE 9. Mezi nimi jsou JShell, pomocné metody pro práci s kolekcemi a poli, vylepšení Stream API, nebo třeba detailnější možnosti nastavení anotace @Deprecated. Největší novinkou Java SE 9 je bezesporu modularizace JRE, z které benefituje jak samotné běhové prostředí (možnost sestavit si odlehčenou verzi JRE na míru pro svoji desktopovou aplikaci), tak i programátoři knihoven, kteří mohou jasně definovat, které třídy jsou veřejné a které naopak implementační detail, co se může v průbehu času měnit. Je to novinka tak zásadní, že její zvládnutí bude v budoucnu nutnost. Pojďte se s ní seznámit na tento kurz!

 DatumDnůCena kurzuCena materiálůJazyk výukyLokalita 
2.5.2019 2 23 230 CZK v ceně kurzu Český jazyk GOPAS Praha_GTT (info o GTT)
 
2.5.2019 2 23 230 CZK v ceně kurzu Český jazyk GOPAS Brno_GTT (info o GTT)
 
3.12.2018 2 858,00 EUR v ceně kurzu Slovenský jazyk GOPAS Bratislava_GTT (info o GTT)
 
2.5.2019 2 858,00 EUR v ceně kurzu Český jazyk GOPAS Bratislava_GTT (info o GTT)
 
26.11.2018 2 858,00 EUR v ceně kurzu Slovenský jazyk Externá učebňa TUKE12 Košice
 

PobočkaDnůCena kurzuCena materiálůITB*
Praha2 23 230 CZK v ceně kurzu 30
Brno2 23 230 CZK v ceně kurzu 30
Bratislava2 858,00 EUR v ceně kurzu 30

*Body se vztahují pouze na kurzy realizované v prostorách Gopasu.

Pro koho je kurz určen

Kurz je vhodný pro Java programátory, kteří používají starší verzi Javy (5-8) a chtějí se obeznámit s novinkami Java SE 9, například psát modularizované knihovny.

Co Vás naučíme

  • Design applications to take advantage of the module system and its more reliable configuration, improved security and performance, and more easily scalable applications.
  • Migrate existing applications to a modular applications in a step-by-step manner, choosing which parts of the application to migrate first.
  • Deal with common problems encountered in migrating an application, including, cyclic dependencies and split packages.
  • Use services to make modularized applications more robust and easily extensible.
  • Create multi-release JAR files that can be run on different Java releases.
  • Use convenience methods to reduce code that seems verbose, inefficient or boilerplate, and increase readability.
  • Use JShell to quickly run small code experiments and test new APIs.

Požadované vstupní znalosti

Znalost Java SE programování na běžné úrovni, generics, lambda výrazy, Stream API.

Metody výuky

Odborný výklad s praktickými ukázkami, cvičení na počítačích.

Formáty školení Oracle

Velmi oblíbenou formou školení jsou nahrávané kurzy On Demand zahrnující 90 dnů samostudia kdykoliv a kdekoliv s TOP lektorem. Dalšími možnými formáty studia jsou kurzy probíhající přímo v učebně v Počítačové škole Gopas, dále formát Live Virtual Class (školení on-line) či Self-Study (samostudium ve formě CD, nebo download). Podrobnější informace k těmto možnostem studia najdete zde.

Studijní materiály

Elektronické autorizované materiály Oracle v anglickém jazyce.

Osnova kurzu

Why Modules?

  • Module System
  • Levels of a Typical Application
  • How Does Java SE 8 Address Maintainability and Reliability?
  • Classes, Subclasses, Interfaces
  • Class Level Unit of Reuse (Java SE 8)
  • Packages
  • JARs
  • JAR Files and Distribution Issues

Working with the Module System

  • Projects Before Modularization
  • module-info.java: Introduction
  • Creating a Truly Modular Project
  • Compiling Modular JAR Files
  • Accessibility Between Classes
  • Readability Between Modules
  • What Is Readable from the competition Module?
  • The Effects of Exporting

Modular JDK

  • Modular Development in JDK 9
  • The JDK
  • The Modular JDK
  • Modules in JDK 9
  • Java SE Modules
  • The Module Graph of Java SE
  • The Base Module
  • Finding the Right Platform Module

Creating Custom Runtime Images

  • What Is a Custom Runtime Image?
  • Link Time
  • Using jlink to Create a Custom Runtime Image
  • Modules Resolved in a Custom Runtime Image
  • Advantages of a Custom Runtime Image
  • JIMAGE Format
  • Footprint of a Custom Runtime Image
  • jlink Resolves Transitive Dependencies

Migration

  • Typical Application
  • The League Application
  • Run the Application
  • The Unnamed Module
  • Top-Down Migration
  • Dependencies
  • Check Dependencies
  • Typical Application Modularized

Services

  • Module Dependencies
  • Service Relationships
  • Expressing Service Relationships
  • Using the Service Type in competition
  • Choosing a Provider Class
  • Module Dependencies and Services
  • Designing a Service Type
  • TeamGameManager Application with Additional Services

Multi-release JAR files

  • Packaging an Application for Different JDKs
  • Packaging an Application for Different JDK Versions
  • The Solution: A Multi-Release JAR file
  • What Is a Multi-Release JAR File?
  • Structure of a JAR File
  • Structure of a Multi-Release JAR File
  • Search Process in an MRJAR
  • Creating a Multi-Release JAR File

Private Interface Methods

  • Private Methods in Interfaces
  • Java SE 7 Interfaces
  • Implementing Java SE 7 Interface Methods
  • Implementing Methods in Interfaces
  • What About the Problems of Multiple Inheritance?
  • Inheritance Rules of default Methods
  • Interfaces Don't Replace Abstract Classes

Enhancements to the Stream API

  • One More Benefit of Default Methods
  • Changing a Java Interface
  • Why Enhance the Stream API?
  • An Ordered List
  • takeWhile Provides a Solution
  • The Effects and Benefits of takeWhile
  • An Unordered List
  • filter vs takeWhile

JShell

  • Has This Happened to You?
  • A Million Test Classes and Main Methods
  • JShell Provides a Solution
  • Comparing Normal Execution with REPL
  • Getting Started with JShell and REPL
  • Scratch Variables
  • Declaring Traditional Variables
  • Code Snippets

Convenience Methods for Collections

  • What Are Convenience Methods?
  • Many Convenience Methods in Java SE 9
  • Key Collections Interfaces
  • Overloading the of Convenience Method
  • Why Overload the of Method?
  • Growing a Collection
  • ofEntries() Method for Maps
  • Immutability

Convenience Methods for Arrays

  • Arrays
  • Modeling DNA Strands
  • Working with DNA Strands
  • Working with DNA Strands by Using a for Loop
  • Convenience Methods in the Arrays Class
  • Equating DNA Strands
  • DNA Subsequences
  • Equating Subsequences of DNA

Enhanced Deprecations for APIs

  • What Is Deprecation?
  • What Is Enhanced Deprecation?
  • How Do You Deprecate an API?
  • Using @deprecated
  • Enhancements to the @Deprecated Annotation in JDK 9
  • Using the @Deprecated Annotation
  • Notifications and Warnings
  • Compiler Deprecation Warnings

Předchozí kurzy

žádný předchozí kurz

Navazující kurzy

žádný navazující kurz
Oracle University eKit

Cena:
v ceně kurzu
Uvedené ceny jsou bez DPH.