[Java] Tipi Wrapper e Primitivi

hamming_burst
Salve,
di recente mi son trovato a domandarmi questo, dato che Java non lo conosco molto a fondo.

se ad un metodo che accetta come parametro un Integer, cioè:

metodo(Integer ob)

come si comporta Java in questi due casi:

int i = 0;

- metodo(new Integer(i));
- metodo(i);

Java accetta entrambe le versioni.
Dato che conosco le classi Wrapper, in questo caso, c'è un'implicita trasformazione del dato primitivo int in un Integer?
se sì, quale delle due versioni è più efficente, cioè dando come paramtro $i$, quando viene trasformato in un oggetto, a compile time?


Grazie a chi aiuta :-)

Risposte
hamming_burst
facendo delle prove, sembra che dando in input un nuovo valore allocato dinamicamente, sia più efficente.

apatriarca
Leggi: http://stackoverflow.com/questions/5041 ... rk-in-java

Fare un benchmark in Java è difficile e molto probabilmente il risultato da te ottenuto ha molto poco valore. Ci sono inoltre altre cose sulle quali conviene lavorare per ottimizzare un codice Java, dubito che quella riga di codice possa mai comparire in un profiler come hot-spot.

hamming_burst
Uuh davvero molto interessante questo tuo link, ti ringrazio molto :-)

Si ho fatto qualche prova spartana con un ciclo di allocazione dinamica e uno con chiamata con tipo primitivo, in due momenti differenti di prove il primo metodo risultava "più veloce" (passami il termine).

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.