Index
copyOf (arrays)
copyOf metodo statico della classe java.util.Arrays
Metodi con numero variabili di argomenti
type ..
Example:
oss
- Ci può essere una sola sequenza di parametri variabili (deve essere posizionata come ultimo parametro)
- Se sono presenti altri parametri devono essere dichiarati prima della sequenza
Array a due dimensioni
Gli elementi della matrice vengono inizializzati al valore di default del tipo della matrice
Metodi setX() getX()
Campi statici
Enumerazioni
- In java esistono le classi e poi le enumerazione
- Le enumerazioni contengono delle costanti enumerative
Esempio:
Come altre classi possono avere:
- costruttori
- campi
- metodi
Esempio:
Metodi values() e valuesOf()
- values of è un metodo statico che ci permette data un enum di ottenere un riferimento public final che coincide con …
Enum e switch
Classi wrapper
- permettono di convertire i valori primitivi in un oggetto
- forniscono metodi di accesso e visualizzazione dei valori
oss
per confrontare due oggetti si usano:
- equals()
- compareTo()
Costo di un oggetto rispetto a un primitivo
.Un oggetto qualsiasi costa minimo 8 byte
- Informazioni di base come la classe dell’oggetto, flag di status, ID, ecc.
- Un Integer 8 byte dell’oggetto + 4 byte per l’int + padding = 16 byte
- Un Long 8 + 8 = 16 byte!
- Un riferimento “costerebbe” 8 byte, ma si usano i
compressed oop
(ordinary object pointer) che sono object offset da 32 bit (ogni 8 byte), quindi indicizzano fino a 32Gb di RAM (attivi fino a – Xmx32G), quindi richiedono normalmente 4 byte
Auto-boxing e Auto-unboxing
Auto-boxing:
auto-unboxing:
Ereditarietà
Ereditarietà concetto utilizzato nella metodologia “mattone su mattone”
Estendere una classe:
- Una sottoclasse estende la super-classe
- La sottoclasse eredita i membri della super-classe
- Campi e metodi d’istanza secondo il livello
oss
Inoltre la sottoclasse può:
- aggiungere nuovi metodi e campi
- ridefinire i metodi che eredita dalla super-classe (tipicamente NON i campi)
Astrazione
Classi astratte
Serve a definire delle classi che posso riutilizzare come basi per altre classi
- una classe astratta non può essere utilizzata per creare un oggetto
- Ma può essere ereditata da altre sotto classi