Non esiste un operatore "due punti", ma i due punti vengono visualizzati in due posizioni:
1: Nell'operatore ternario, ad esempio:
int x = bigInt ? 10000 : 50;
In questo caso, l'operatore ternario funge da "se" per le espressioni. Se bigInt è vero, allora x riceverà 10000 assegnati. In caso contrario, 50. I due punti qui significano "altro".
2: In un ciclo for-each:
double[] vals = new double[100];
for (double x : vals) {
}
Questo imposta a turno x a ciascuno dei valori in "vals". Quindi se vals contiene [10, 20.3, 30, ...], allora x sarà 10 alla prima iterazione, 20.3 alla seconda, ecc.
Nota: dico che non è un operatore perché è solo sintassi. Non può apparire da solo in nessuna data espressione ed è solo un caso che sia l'operatore for-each sia l'operatore ternario utilizzino i due punti.