首先"i1==i2"的结果为true,是因为"i1"在使用40时首先会去常量池中查找,如果有四十这个对象,就引用,池中没有的话就创建一个,而"i2"引用40时,因为池中已经在"i1"使用时创建了一个,所以"i2"会直接引用这一个,这样就证明它俩指向的是常量池中的同一个对象,所以结果为true;
而"i1==i2+i3"两边的值同样是指向常量池中的已经有的那一个对象,所以和上面一样
"i4=i5false"它俩使用new关键字创建的对象,所以它俩引用的内存地址不同,结果自然为false
"4=i5+i6"这个比较复杂,我也不太明白,我试一下,在上网查查看吧 |