public class Navn { felt; konstruktor; metoder } — klassedefinisjonpublic Navn(...) { this.felt = parameter; } — konstruktor (ingen returtype)this(...) som første linje — kall til annen konstruktor i samme klasseprivate static int teller = 1; + this.num = teller++; — automatisk lopenummerpublic static void main(String[] args) — programmets startpunktprivate final T felt; — uforanderlig felt, settes kun i konstruktorif (ugyldig) throw new IllegalArgumentException("..."); — valideringreturn new ArrayList<>(internListe); — returner kopi, ikke referansenclass Sub extends Super { ... } — arvsuper(args); — kall til superklassens konstruktor, må stå FØRSTsuper.metode() — kall til overstyrt metode i superklassen@Override — markerer (og lar kompilator sjekke) overstyring(Type) obj — cast; ClassCastException ved kjøretid hvis feil typeinterface Navn { metode(); } + class K implements Navn { ... }abstract class Navn { abstract T m(); /* + ferdige metoder */ }Iterable<T>: Iterator<T> iterator() → for-each-støtteComparable<T>: int compareTo(T o) (neg/0/pos) → Collections.sortComparator<T>: (a,b) -> ... → alternativ sorteringCollection<E> c = new ArrayList<>(); — deklarer mot grensesnitt, instansier klassefor (E e : samling) { ... } — for-each-iterasjonIterator<E> it = c.iterator(); it.hasNext(); it.next(); it.remove(); — trygg fjerningc.iterator().next() — hent første element av en generell Collectionc.stream().filter(...).map(...).sum()/collect(...) — Stream-teknikkenthrow new IllegalArgumentException("melding"); — kast ved ugyldig argumenttry { ... } catch (Type e) { ... } — fang og håndter... metode(...) throws IOException { ... } — deklarer sjekket unntakclass X implements Lytter + kilde.addLytter(this) i konstruktørprivate Grensesnitt delegat; + videresend kall + setter for å bytteassertEquals(forventet, faktisk); — likhet via equals (forventet først)assertTrue(uttrykk); / assertFalse(uttrykk); — boolsk sjekkassertTrue(a == b); — sjekk identitet (samme objekt), ikke assertEquals