Descrizione
Descrizione del profilo professionale
Il linguaggio di programmazione Java, progettato per essere il più possibile indipendente dalla piattaforma di esecuzione, venne creato per soddisfare cinque obiettivi primari: essere semplice, orientato agli oggetti e familiare; essere robusto e sicuro; essere indipendente dalla piattaforma; contenere strumenti e librerie per il networking; essere progettato per eseguire codice da sorgenti remote in modo sicuro.
Prerequisiti
Per partecipare al corso gli studenti debbono avere partecipato al corso Java SE 8 Fondamenti o possedere conoscenze equivalenti.
Articolazione del percorso
Il percorso prevede una fase di formazione teorica, a contenuto specialistico, della durata di 35 ore.
Avvio lezioni
Il corso avrà inizio Lunedì 30 Settembre 2019
Il corso in oggetto sarà avviato con un minimo di 2 partecipanti.
Costi e Pagamenti
Il percorso formativo sarà accessibile ad un prezzo di 2215,00 € iva inclusa.
Obiettivi
• Creare applicazioni multi-threaded ad alte prestazioni
• Creare applicazioni Java che sfruttano le caratteristiche object-oriented del linguaggio Java, come l’incapsulamento, l’ereditarietà e il polimorfismo
• Implementare funzionalità di input / output (I / O) per leggere e scrivere i dati e file di testo e capire flussi avanzati di I / O
• L’esecuzione di un’applicazione Java dalla riga di comando
• Manipolare file, directory e file system che utilizzino lo standard JDK NIO.2
• Creare applicazioni che utilizzano il framework Java Collections
• Eseguire varie operazioni su tabelle di database: creazione, lettura, aggiornamento e cancellazione utilizzando sia JDBC che JPA
• Ricercare e filtrare le collections con le Lambda Expressions
• Implementare tecniche di gestione degli errori attraverso la gestione delle eccezioni
• Utilizzare la concorrenzialità delle Lambda Expression
Contenuti:
Java Platform Overview
• Defining how the Java language achieves platform independence
• Differentiating between the Java ME, Java SE, and Java EE Platforms
• Evaluating Java libraries, middle-ware, and database options
• Defining how the Java language continues to evolve
Java Syntax and Class Review
• Creating simple Java classes
• Creating primitive variables
• Using operators
• Creating and manipulate strings
• Using if-else and switch statements
• Iterating with loops: while,do-while,for,enhanced for
• Creating arrays
• Using Java fields, constructors, and methods
Encapsulation and Subclassing
• Using encapsulation in Java class design
• Modeling business problems using Java classes
• Making classes immutable
• Creating and use Java subclasses
• Overloading methods
Overriding Methods, Polymorphism, and Static Classes
• Using access levels: private, protected, default, and public.
• Overriding methods
• Using virtual method invocation
• Using varargs to specify variable arguments
• Using the instanceof operator to compare object types
• Using upward and downward casts
• Modeling business problems by using the static keyword
• Implementing the singleton design pattern
Abstract and Nested Classes
• Designing general-purpose base classes by using abstract classes
• Constructing abstract Java classes and subclasses
• Applying final keyword in Java
• Distinguish between top-level and nested classes
Interfaces and Lambda Expressions
• Defining a Java interface
• Choosing between interface inheritance and class inheritance
• Extending an interface
• Defaulting methods
• Anonymous inner classes
• Defining a Lambda Expression
Collections and Generics
• Creating a custom generic class
• Using the type inference diamond to create an object
• Creating a collection by using generics
• Implementing an ArrayList
• Implementing a TreeSet
• Implementing a HashMap
• Implementing a Deque
• Ordering collections
Collections Streams, and Filters
• Describing the Builder pattern
• Iterating through a collection using lambda syntax
• Describing the Stream interface
• Filtering a collection using lambda expressions
• Calling an existing method using a method reference
• Chaining multiple methods together
• Defining pipelines in terms of lambdas and collections
Lambda Built-in Functional Interfaces
• Listing the built-in interfaces included in java.util.function
• Core interfaces – Predicate, Consumer, Function, Supplier
• Using primitive versions of base interfaces
• Using binary versions of base interfaces
Lambda Operations
• Extracting data from an object using map
• Describing the types of stream operations
• Describing the Optional class
• Describing lazy processing
• Sorting a stream
• Saving results to a collection using the collect method
• Grouping and partition data using the Collectors class
Exceptions and Assertions
• Defining the purpose of Java exceptions
• Using the try and throw statements
• Using the catch, multi-catch, and finally clauses
• Autoclose resources with a try-with-resources statement
• Recognizing common exception classes and categories
• Creating custom exceptions
• Testing invariants by using assertions
Java Date/Time API
• Creating and manage date-based events
• Creating and manage time-based events
• Combining date and time into a single object
• Working with dates and times across time zones
• Managing changes resulting from daylight savings
• Defining and create timestamps, periods and durations
• Applying formatting to local and zoned dates and times
I/O Fundamentals
• Describing the basics of input and output in Java
• Read and write data from the console
• Using streams to read and write files
• Writing and read objects using serialization
File I/O (NIO.2)
• Using the Path interface to operate on file and directory paths
• Using the Files class to check, delete, copy, or move a file or directory
• Using Stream API with NIO2
Concurrency
• Describing operating system task scheduling
• Creating worker threads using Runnable and Callable
• Using an ExecutorService to concurrently execute tasks
• Identifying potential threading problems
• Using synchronized and concurrent atomic to manage atomicity
• Using monitor locks to control the order of thread execution
• Using the java.util.concurrent collections
The Fork-Join Framework
• Parallelism
• The need for Fork-Join
• Work stealing
• RecursiveTask
• RecursiveTask
Parallel Streams
• Reviewing the key characteristics of streams
• Describing how to make a stream pipeline execute in parallel
• List the key assumptions needed to use a parallel pipeline
• Defining reduction
• Describing why reduction requires an associative function
• Calculating a value using reduce
• Describing the process for decomposing and then merging work
• Listing the key performance considerations for parallel streams
Database Applications with JDBC
• Defining the layout of the JDBC API
• Connecting to a database by using a JDBC driver
• Submitting queries and get results from the database
• Specifying JDBC driver information externally
• Performing CRUD operations using the JDBC API
Localization
• Describing the advantages of localizing an application
• Defining what a locale represents
• Read and set the locale by using the Locale object
• Building a resource bundle for each locale
• Calling a resource bundle from an application
• Changing the locale for a resource bundle
Sede di svolgimento
Levita S.r.l, Perugia, Via Monteneri 43, Sant’Andrea delle Fratte.
Per informazioni e iscrizioni contattare la Segreteria Corsi allo 0759002020
oppure scrivere a info@pcsnetumbria.it