Originariamente inviato da Tommy86r
quindi mi chiedevo che differenza c è tra le parentesi < > e le quadre?
Le < > denotano i tipi parametrici. In Java 5 è stata introdotta una nuova funzionalità chiamata "generics", cioè la possibilità di definire classi "parametriche".
E da Java 5 tutte le collezioni sono state convertite per essere "generiche" e chiaramente sarebbe meglio sfruttare appunto questa funzionalità (anche se si possono comunque usare ancora le collezioni come non parametrizzate).

E per precisare: non è una questione di comparare tra < > (tipi parametrici) e le quadre (riferite ad array) .... sono due cose completamente diverse!

Originariamente inviato da Tommy86r
La questione che maggiormente mi interessa è come vengono istanziate le classi...
nel caso dello studente e corsi, cioè uno studente segue più corsi, viene una cosa del genere?

public class studente{
corso []mycorsi;

studente(){
mycorsi[i] = new corso(this);
}
}

public class corso{
studente seguito;

corso (studente stud){
seguito=stud;

}
No, non proprio (manca comunque parecchio nel codice sopra).

La questione del molti-a-molti è che X fa riferimento a Y che a sua volta fa riferimento a X. E per evitare loop strani o incongruenze quando si collegano tra di loro gli oggetti bisogna fare le cose in modo un po' accurato e sensato.