PDA

Visualizza la versione completa : [java]allocazione dati su stack e heap + n° operazioni proporzionali a elementi array


Riico
26-07-2004, 13:57
Salve a tutti, avrei due domande da proporvi.

La prima riguarda l'allocazione dei dati su stack e heap. Vorrei infatti sapere se queste due variabili:


int[] ar1 = {1,2,3}

int[] ar2 = new int[3];

allocano tutte e due un array nello heap, oppure solo quella con lo new.


Inoltre, per la seconda domanda, vorrei chiedervi quando un metodo esegue un numero di operazioni proporzionali al numero di elementi di un array. In poche parole non ho capito cosa si intende con questa frase.

Vi ringrazio anticipatamente :)

Oiziorbaf
26-07-2004, 14:56
allora fare cosė:
int[] ar1 = {1,2,3}
crei un array di interi composto da tre elementi, e in + assegni gia tre valori all'array;

se fai cosė:
int[] ar2 = new int[3];

crei sempre un array di interi di tre elementi....solo ke lo devi ancora inizializzare in questo modo:

ar2[0]=12
ecc!

La seconda domanda credo ke si riferisse ad un numero di azioni da fare con ogni elemento di un array:
esempio



class prova{
public static void main(String args[]){
int numeri[]=new int[10];
for (int a=0;a<10;a++)
numeri[a]=a;
}
}


ecco cosė facendo dai a ogni posizione del vettore il numero intero corrispondente!

Riico
26-07-2004, 15:35
1) Ma i due vettori finiscono nello heap oppure uno rimane nello stack e l'altro va nello heap?? Insomma, come lo raffigurereste?

anx721
26-07-2004, 17:35
Penso che vadano entrambi nello heap, anche perchč anche l'array inizializzato con le graffe puoi ritornarlo cone risultato del metodo, quindi non puo essere locale alla funzione; comuqnue non hai da preoccuparti di questi dettagli in java!

Riico
26-07-2004, 18:12
Emh, queste cose me le chiedono domani all'orale di un esame :S

anx721
26-07-2004, 18:31
Allora in bocca al lupo, io avrei risposto cosi, ma non lė'ho letto da nessuna parte...quindi prendile con le pinze...

Loading