New Integer vs. Integer.valueOf()

Pessoal,

alguém sabe me dizer qual destes dois caras é mais performático…

[code]public ModelAndView exemplo(HttpServeletRequest request, HttpServletResponse response){

Pessoa pessoa = new Pessoa();
pessoa.setIdade(new Integer(RequestUtils.getIntParameter(request,“idade”,0)));
// ou
pessoa.setIdade(Integer.valueOf(RequestUtils.getIntParameter(request,“idade”,0)));

return new ModelAndView(…);
}[/code]

PS: Sim… estou usando Spring… :slight_smile:
Desde já agradeço a atenção…

Olha o javadoc do
valueOf(int i)

Ou seja, vai de valueOf! :wink:

Ok, sei que quando eu passo diretamente o inteiro, ele acaba fezendo o cache destes valores!
Mas neste caso eu não estou passando diretamente um inteiro, eu passo uma String, ainda sim vale a pena usar o valueOf(). Pois pelo o que eu vi, ele faz uma chamada para o new Integer. Neste caso não seria melhor usar diretamente a chamada do Integer(String), ou acaba ficando na mesma?!

Construtor de Integer passando string

    public Integer(String s) throws NumberFormatException {
	this.value = parseInt(s, 10);
    }

valueOf passando string

    public static Integer valueOf(String s) throws NumberFormatException
    {
	return new Integer(parseInt(s, 10));
    }

construtor de Integer passando int

    public Integer(int value) {
	this.value = value;
    }

Ou seja, exatamente a mesma coisa…

Ah e novamente vendo o javadoc da api para Integer valueOf(String)

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html#valueOf(java.lang.String)

E mesmo que fossem diferente, isso nao faria a minima diferenca na performasse da sua aplicacao, pelo menos nao para fazer uma conversao para setar a idade de uma pessoa atraves dos parametros do request.

…Muito obrigado pelos posts!!
Na verdade, eu já havia olhado a API, mas assim mesmo fiquei na duvida, pois como luBS comento [quote]Ou seja, exatamente a mesma coisa… [/quote] …
Por isso resolvi sanar esta duvida!

PS: com relação a performance apenas para o campo da idade, foi apenas um exemplo, que de fato não implicaria em melhora significativa apenas para esta conversão.

Muito Obrigado pela a atenção de TODOS!!

Viltér Panitz