New Integer vs. Integer.valueOf()

4 respostas
V

Pessoal,

alguém sabe me dizer qual destes dois caras é mais performático... ...
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(....);
}

PS: Sim.. estou usando Spring... :)
Desde já agradeço a atenção...

4 Respostas

F

Olha o javadoc do
valueOf(int i)

Ou seja, vai de valueOf! :wink:

V

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?!

L

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.

V

…Muito obrigado pelos posts!!
Na verdade, eu já havia olhado a API, mas assim mesmo fiquei na duvida, pois como luBS comento

Ou seja, exatamente a mesma coisa…

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

Criado 8 de abril de 2008
Ultima resposta 9 de abr. de 2008
Respostas 4
Participantes 3