Informações interessantes - valueOf x parse

Várias classes possuem os métodos parse e valueOf. Por exemplo, na classe Integer, o método valueOf obtém uma instância de Integer, já o método parseInt (lida com sinal de -) obtém um valor int, ou seja, parseInt retorna um tipo primitivo int e valueOf retorna um objeto Integer.

O método Integer.valueOf retornará um novo objeto do tipo Integer se o valor for < -128 ou > 127.
Caso contrário, ele retornará um objeto de um pool, já previamente criado.

Ou seja:

Integer.valueOf(10) == Integer.valueOf(10), porém
Integer.valueOf(1000) != Integer.valueOf(1000)

Por isso, para a comparação entre dois wrappers de tipo primitivo, como o "Integer", use o método equals e não ==. Esse aviso fica especialmente importante agora que o java implementa auto-unboxing. 


Integer.valueOf pega um tipo primitivo int ou uma string e retorna um objeto do tipo Integer

Você também pode passar número em outras bases que ele transforma para a base decimal, veja o exemplo:  

public static void main(String[] args) {
        Integer a = Integer.valueOf(100);
        Integer b = Integer.valueOf("100");
        Integer c = Integer.valueOf("100", 2); //100 na base 2 = 4 na base 10.
       
        System.out.println(a); //100
        System.out.println(b); //100
        System.out.println(c); //4  
 



Tipos primitivos x Classes-wrapper dos tipos primitivos

boolean, byte, char, short, int, float, long e double são tipos primitivos

Boolean, Byte, Character, Short, Integer, Float, Long e Double são classes-wrapper dos tipos primitivos

Fonte(s):
http://www.guj.com.br/java/136909-integerparseint-ou-integervalueof

Comments

Popular posts from this blog

(Coderbyte) Dash Insert II - Solução

(Coderbyte) Run Length - Solução

(Coderbyte) Counting Minutes I - Solução