É false devido ao msm post q vc escreveu.
Character é objeto … e vc naum compara valores com == … só com equals().
Com == vc compara referência.
Ricardo
S
soublade
vlwww entendi!
B
brrodo
Fazendo uma analogia com sua outra dúvida sobre igualdades de referências, deve-se saber que um Character não se comporta como um Integer por exemplo, quando instancia-se um objeto dessa classe sem usar seu construtor.
No caso do Character, sempre 2 objetos distintos serão criado no heap.
Lavieri
é falso pq esta fora do range de 127 ....
por conveniencia o JVM guarda um pool de objetos iguais, que vai geralmente ate o elemento 127 do objeto... por exemplo
publicclassNewClass{publicstaticvoidmain(String...args){Integernum=127;Integernum2=127;System.out.println(num+" "+(num==num2));//imprime "127 true"num=128;num2=128;//passou de 128 da falseSystem.out.println(num+" "+(num==num2));//imprime "128 false"}
o mesmo ocorre com caracter... esse caracter é o 255 então, não da igual
publicstaticvoidmain(String...args){Characternum=127;Characternum2=127;System.out.println(num+" "+(num==num2));//imprime " true"num=128;num2=128;//passou de 128 da falseSystem.out.println(num+" "+(num==num2));//imprime "? false"Characterc12='\u00FF';System.out.println(c12.charValue()+" "+(int)c12.charValue());//imprime "ÿ 255"}
vc não precisa decorar quais caracters são acima ou abaixo de 127 ... normalmente vai dar false, exceto c ele falar em que range de caracter se encontra
porém se eu mudar o código.... a resposta deste é c1 == c2 : true
agora que eu nao entendi nd!
Lavieri
brrodo:
Fazendo uma analogia com sua outra dúvida sobre igualdades de referências, deve-se saber que um Character não se comporta como um Integer por exemplo, quando instancia-se um objeto dessa classe sem usar seu construtor.
No caso do Character, sempre 2 objetos distintos serão criado no heap.
isso não é verdade, se comporta sim igual a integer… ate 127, serão objetos iguais, depois de 127 objetos distintos… conforme exemplo acima
porém se eu mudar o código.... a resposta deste é c1 == c2 : true
agora que eu nao entendi nd!
veja o meu post, acima deste seu que vc vai entender.... o caracter '\u0000' é o caracter 0... então ele esta entre 0 e 127 e assim vai dar igual... so apos o caracter 128 que começa a dar diferentes os objetos literais
porém se eu mudar o código.... a resposta deste é c1 == c2 : true
agora que eu nao entendi nd!
veja o meu post, acima deste seu que vc vai entender.... o caracter '\u0000' é o caracter 0... então ele esta entre 0 e 127 e assim vai dar igual... so apos o caracter 128 que começa a dar diferentes os objetos literais
É verdade Lavieri, não me atentei ao valor q elas recebiam.