Boxing, = =, and equals() ( “= =” VS “equals()”)

voltar

 
 

Código

This example produces the output:

Integer i1 = 128;

Integer i2 = 128;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

different objects

meaningfully equal

Integer i1 = 127;

Integer i2 = 127;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Integer i1 = 128;

int i2 = 128;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Integer i1 = 127;

int i2 = 127;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

 
 

Note: When = = is used to compare a primitive to a wrapper, the wrapper will be unwrapped and the comparison will be primitive to primitive.

same objects

meaningfully equal

Long i1 = new Long(548123848);

long i2 = 548123848;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Float i1 = new Float(548123848.456841541);

float i2 = 548123848.456841541f;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Boolean i1 = true;

Boolean i2 = true;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Boolean i1 = true;

boolean i2 = true; // tipo primitivo

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Byte i1 = 127;

Byte i2 = 127;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

Character i1 = ‘\u007f’;

Character i2 = ‘\u007f’;

if(i1 == i2) System.out.println(“same objects”);

if(i1 != i2) System.out.println(“different objects”);

if(i1.equals(i2)) System.out.println(“meaningfully equal”);

same objects

meaningfully equal

 
 

Esta entrada foi publicada em Java com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s