PACKAGE
- I nomi dei package NON possono contenere delle keywords riservate di Java, ad esempio “do”
- I nomi dei package possono contenere underscore, anche all’inizio o alla fine di un livello.
- Esempi di nomi di package VALIDI:
- org.p1.p2_
- org.p1._p2
- Lo statement package NON è obbligatorio. I files che non definiscono esplicitamente un package di appartenenza finiscono nel package di default.
- Per importare un membro statico di una classe di utilizza un import statico nel seguente modo:
- import static org.project.MyClass.MYVALUE
- Attenzione all’ordine con cui compaiono “import” e “static”
DATATYPE
- NON si può fare una conversione implicita da un float, un double o un long in un int.
- int i = 10L; int i = 10.0f; int i = 10.0; -> TUTTI ERRORI DI COMPILAZIONE
- Number è una classe astratta e quindi non può essere instanziata.
- Le sottoclassi concrete che ereditano da Number sono: AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, Short
- Se si effettua un’operazione che prevede l’unboxing di una reference di un tipo wrapper che è valorizzato a null, si ottiene una NullPointerException.
- Esempio:
Boolean b = null; System.out.println(b ? true : false);
Scatena una NullPointerException
- AtomicBoolean e AtomicReference
- AtomicBoolean NON eredita da Number