|
| Hvordan reagerer denne kode? Fra : Jonas Swiatek |
Dato : 01-04-01 21:42 |
|
Hey.
Denne kode...
public void run() {
while(true) {
try {
String command = in.readLine();
if(command == null)
break;
incomingCommand = new StringTokenizer(command, ",");
ready = true;
}
catch(IOException ioe) {
disconnect();
}
}
}
Jeg skriver String command = in.readLine();
Når denne lykke bliver genneløbet, og starter forfra. Bliver command så bare
overskrevet for forrige gang, eller bliver der allokeret RAM for
command-stringen for HVERT gennemløb?
--
Jonas
| |
Jan Uhre (01-04-2001)
| Kommentar Fra : Jan Uhre |
Dato : 01-04-01 21:53 |
|
Jonas Swiatek <sxt@get2net.dk> skrev i en
nyhedsmeddelelse:9a83pp$1uke$1@news.cybercity.dk...
> Hey.
>
> Denne kode...
> public void run() {
> while(true) {
> try {
> String command = in.readLine();
> if(command == null)
> break;
> incomingCommand = new StringTokenizer(command, ",");
> ready = true;
> }
> catch(IOException ioe) {
> disconnect();
> }
> }
> }
>
> Jeg skriver String command = in.readLine();
> Når denne lykke bliver genneløbet, og starter forfra. Bliver command så
bare
> overskrevet for forrige gang, eller bliver der allokeret RAM for
> command-stringen for HVERT gennemløb?
>
Både og...
Ved hvert gennemløg bliver der oprettet et nyt String objekt, men da det
betyder at referencen i variablen command ikke længere peger på den gamle,
bliver den ryddet op i garbage collection.
Med venlig hilsen
Jan Uhre
| |
|
|