Corso J2SE Avanzato

There are no translations available.

Il corso intende coprire i seguenti argomenti:

  • Dichiarazione, Inizializzazione e Scoping
    • Dichiarazione di classi, interfacce, enums. Uso appropriato degli statements package e import
    • Dichiarazione e inizializzazione e uso di tipi primitivi, arrays, oggetti come variabili locali, static e di istanza. Identificatori dei nomi delle variabili
    • Uso di overloading e overriding di un metodo. Identificazione dei valori di ritorno legali (includendo covariant returns)
    • Costruttori: come istanziare una classe
  • Controllo di Flusso
    • Uso degli statements if e switch
    • Uso delle forme di loops e iterators, includendo l'uso di for, for-each, do, while, lables, break e continue
    • Uso delle asserzioni
    • Gestione degli errori: le eccezioni
    • Riconoscere i vari tipi di eccezioni: runtime exception, checked exception e error
    • Le accezioni predefinite: ArrayIndexOutOfBoundsException, ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError o NoClassDefFoundError
  • API Contents
    • Classi Wrapper primitive (come Boolean, Character, Double, Integer e così via) e/o autoboxing e unboxing. Differenze tra le classi String, StringBuilder e StringBuffer
    • I Files: navigazione, scrittura, o interazione con l'utente utilizzando le seguenti classi dal package java.io: BufferedReader,BufferedWriter, File, FileReader, FileWriter, PrintWriter, e Console
    • Utilizzo delle APIs standard J2SE del package java.text per parserizzare date, numbers e valori di valute per una specifica versione locale. Scopo e uso della classe java.util.Locale
    • Utilizzo delle classi dei package java.util e java.regex per formattare o parserizzare stringhe o stream. Per le stringhe: uso delle classi Matcher e Pattern e del metodo String.split. Sviluppo di espressioni regolari (limitato a . (dot), * (star), + (plus), ?, \d, \s, \w, [], ()). Per gli streams: uso delle classi Scanner e Formatter e dei metodi PrintWriter.format/printf. Uso dei parametri di formattazione (limitato a %b, %c, %d, %f, %s)
  • Concorrenza
    • I threads: uso sia di java.lang.Thread che di java.lang.Runnable
    • Gli stati dei Threads
    • Uso degli oggetti di locking per proteggere variabili di istanza e static dai problemi dell'accesso concorrente
  • Concetti OO
    • Tight encapsulation, loose coupling, e high cohesion nelle classi
    • Uso del polimorfismo. Determinare quando le operazioni di casting sono necessarie e riconoscere gli errori a compiletime vs runtime legati ai casting dei riferimenti agli oggetti
    • Effetto dei modificatori sull'ereditarietà rispetto a costruttori, variabili static e di istanza e metodi static e di istanza
    • Utilizzo di override e overload dei metodi e dei costruttori delle superclassi o overloaded
    • Implementazione delle relazioni "is-a" e/o "has-a"
  • Collections/ Generics
    • Le classi e/o interfacce collection e l'interfaccia Comparable
    • Overrides del corrispondente HashCode e i metodi equals. Differenza tra == e il metodo equals
    • Versioni generiche delle Collections API, in particolare delle interfacce Set, List e Map e le classi di implementazione. Uso delle interfacce NavigableSet e NavigableMap
    • Parametri di tipo nelle dichiarazioni di classi/interfacce, variabili di istanza, argomenti dei metodi e tipi di ritorno. Uso di metodi generici o di metodi che utilizzano tipi wildcard
    • Utilizzo del package java.util per manipolare una lista attraverso: ordinamento, ricerca binaria, o conversione di una lista in un array. Utilizzo del package java.util per manipolare un array attraverso: ordinamento, ricerca binaria e conversione dell'array in una lista. Utilizzo delle interfacce java.util.Comparator e java.util.Comprable per l'ordinamento di liste e arrays
  • Fondamenti
    • Punto in cui l'oggetto diventa eleggibile dal garbage collection. Cosa è e cosa non è garantito dal garbage collection e comportamento del metodo Object.finalize()
    • Come costruire il file JAR

Il programma del corso è da ritenersi provvisorio, pertanto potrebbe subire delle variazioni.

Gli argomenti trattati nel corso garantiscono una solida base per chi volesse ottenere la certificazione Oracle "JSE6  Professional"