java - Reference comparison using == operator -
this question has answer here:
public class autoboxingandunboxing { public static void main(string[] args) { integer x = 127; integer y = 127; system.out.println(x == y);//true integer = 128; integer b = 128; system.out.println(a == b);//false system.out.println(a); // prints 128 } } how come x==y true , a==b false? if based on value(integer -128 127) 'a' should print -128 right?
when comparing integer objects, == operator might work numbers between [-128,127]. @ jls:
if value p being boxed true, false, byte, or char in range \u0000 \u007f, or int or short number between -128 , 127 (inclusive), let r1 , r2 results of 2 boxing conversions of p. case r1 == r2.
since values you're comparing not in mentioned range, result evaluated false unless use integer#equals.
Comments
Post a Comment