java对象,用‘==’和‘.equals()’区别

一、上代码 例子

public static void main(String[] args) { Short a = new Short("10000"); Short b = new Short("10000"); out.println("new Short: " + (a == b)); out.println("new Short: " + a.equals(b)); Short c = 10000; Short d = 10000; out.println("Short: " + (c == d)); out.println("Short: " + c.equals(d)); Short e = Short.valueOf("10000"); Short f = Short.valueOf("10000"); out.println("Short.valueOf: " + (e == f)); out.println("Short.valueOf: " + e.equals(f)); short g = 10000; short h = 10000; out.println("short: " + (g == h)); }

结果
java对象,用‘==’和‘.equals()’区别
文章图片

二、结论
【java对象,用‘==’和‘.equals()’区别】1.==:比较的是内存地址;
2..equals():jvm中的值;
3.使用 == 比较对象会得到不靠谱的结果,当使用Short缓存中的数字的时候结果会是true,否则就像比较10000一样返回false;
4.Short拆包后会放入缓存,即short类型,此时只能使用 == 号去比较,且是相等的;

    推荐阅读