D4rkAng3l
23-01-2009, 16:43
Ciao,
se io ho una semplicissima classe del genere (includo solo le variabili di istanza ed il costruttore che è l'unica cosa che mi interessa circa il mio dubbio):
public class CoppiaDiOggetti{
private String p;
private int[] q;
/** COSTRUTTORE */
public CoppiaDiOggetti(String s, int[] V){
p = s;
q = V;
}
}
Quando nel main vado a creare un nuovo oggetto istanza di CoppiaDiOggetti che succede in memoria?
Per esempio se nel main ho qualcosa come:
.........................
String a = "Ciao";
int [] x = {1,2,3}
CoppiaDiOggetti C = new CoppiaDiOggetti(b,x);
.........................
Nello heap crea prima l'oggetto a di tipo String che contiene la stringa "Ciao", poi crea l'oggetto x di tipo int[] che contiene l'array.
Poi crea l'oggetto C di tipo CoppiaDiOggetti che conterrà il riferimento all'array ricevuto nel parametro del costruttore (quindi un riferimento ad x) ed il riferimento alla stringa ricevuta come parametro nel costruttore (quindi la stringa a)? E' corretto?!?!
Ho un dubbio...mi pare di ricordare che la proff avesse detto che in Java le stringhe fossero costanti quindi mi viene il dubbio che venga costruita una nuova stringa e che nell'oggetto C ci sia il riferimento a questa nuova stringa che contiene lo stesso valore della stringa a....anche se forse era che se modificavo una stringa, visto che per Java sono costanti ne creava un'altra....
Com'è sta cosa?
Grazie
Andrea
se io ho una semplicissima classe del genere (includo solo le variabili di istanza ed il costruttore che è l'unica cosa che mi interessa circa il mio dubbio):
public class CoppiaDiOggetti{
private String p;
private int[] q;
/** COSTRUTTORE */
public CoppiaDiOggetti(String s, int[] V){
p = s;
q = V;
}
}
Quando nel main vado a creare un nuovo oggetto istanza di CoppiaDiOggetti che succede in memoria?
Per esempio se nel main ho qualcosa come:
.........................
String a = "Ciao";
int [] x = {1,2,3}
CoppiaDiOggetti C = new CoppiaDiOggetti(b,x);
.........................
Nello heap crea prima l'oggetto a di tipo String che contiene la stringa "Ciao", poi crea l'oggetto x di tipo int[] che contiene l'array.
Poi crea l'oggetto C di tipo CoppiaDiOggetti che conterrà il riferimento all'array ricevuto nel parametro del costruttore (quindi un riferimento ad x) ed il riferimento alla stringa ricevuta come parametro nel costruttore (quindi la stringa a)? E' corretto?!?!
Ho un dubbio...mi pare di ricordare che la proff avesse detto che in Java le stringhe fossero costanti quindi mi viene il dubbio che venga costruita una nuova stringa e che nell'oggetto C ci sia il riferimento a questa nuova stringa che contiene lo stesso valore della stringa a....anche se forse era che se modificavo una stringa, visto che per Java sono costanti ne creava un'altra....
Com'è sta cosa?
Grazie
Andrea