Thorbjørn Ravn Andersen <thunderbear@bigfoot.com> skrev i en
nyhedsmeddelelse:3AA3990E.F5AA72F0@bigfoot.com...
> Martin Moller Pedersen wrote:
> >
> > In <3AA353FE.E6E7398A@bigfoot.com> =?iso-8859-1?Q?Thorbj=F8rn?= Ravn
Andersen <thunderbear@bigfoot.com> writes:
> >
> > >Esben Mose Hansen wrote:
> > >>
> > >> Sune Petersen wrote:
> > >>
> > >> > Jeg sad fortvilet og arbejde videre og kom selv frem til følgende
løsninge:
> > >> > int tal=Integer.parseInt(String.valueOf(fraTastatur.charAt(i)));
> > >>
> > >> Hvad med
> > >>
> > >> int tal=Character.digit(fraTastatur.charAt(i), 10);
> > >>
> > >> så skal den stakkels computer ikke oprette nye objekter :)
> >
> > >Det er ikke synd for den, men det kan godt tage ret lang tid.
> >
> > >Hvor ser du iøvrigt at der bliver oprettet nye objekter i ovenstående?
> > >Jeg ser ingen "new" nogen steer.
> >
> > Med java 1.3 til Linux bliver
> >
> > int tal=Integer.parseInt(String.valueOf(fraTastatur.charAt(i))) til:
> >
> > aload_1
> > iload_2
> > invokevirtual #3 <Method char charAt(int)>
> > invokestatic #4 <Method java.lang.String valueOf(char)>
> > invokestatic #5 <Method int parseInt(java.lang.String)>
> >
> > Og det ser ikke dyrt ud.
>
> Som sagt: Ingen new!
>
> At kalde et par klassemetoder kræver ikke nye objekter.
Det er nu ikke helt sandt, Thorbjørn. Der er måske ingen synlige new, men
String.valueOf('2') returnerer et String objekt, som er oprettet i metoden.
----------------------------------------------------------------------------
----
*** Fra java-doc ***
valueOf
public static String valueOf(char c)
Returns the string representation of the char argument.
Parameters:
c - a char.
Returns:
a n e w l y a l l o c a t e d string of length 1 containing as its
single character the argument c.
----------------------------------------------------------------------------
----
Men hvorvidt omkostningen er stor nok til, at andre krumspring kan betale
sig... Der må jeg nøjes med at tro på Martin
I øvrigt kan sådanne små optimeringer jo med fordel foretages på et senere
tidspunkt.
Med venlig hilsen
Jan Uhre