Salve a tutti vorrei una mano nella comprensione di una parte di codice.
Il codice è il seguente:

codice:
private static final int[] WINS = {   
      //Caselle orizzontali  
      bit(0) | bit(1) | bit(2),   
      bit(3) | bit(4) | bit(5),   
      bit(6) | bit(7) | bit(8),   
      //caselle verticali  
      bit(0) | bit(3) | bit(6),   
      bit(1) | bit(4) | bit(7),   
      bit(2) | bit(5) | bit(8),   
      //caselle diagonali   
      bit(0) | bit(4) | bit(8),   
      bit(2) | bit(4) | bit(6)   
  };
Qui praticamente viene creato un'array, quello che non capisco è che cosa viene messo all'interno di questo array in quanto il metodo "bit" che viene continuamente richiamato è il seguente:

codice:
private static int bit(int i) {   
    return 1 << i;   
  }
Spero possiate darmi una mano grazie