很明显返回值应该为false。
12、方法m1和m2有区别吗?
解答:这里考察的是同步方法的问题。synchronized修饰方法时锁定的是调用该方法的对象。它并不能使调用该方法的多个对象在执行顺序上互斥,静态修饰符很有必要。因此当不适用静态时,创建多个对象执行该方法,锁都不一样,还同步什么呢,因此用static修饰后才能实现想要的效果。
13、true or false?
publicclassTest {publicstaticvoidmain(String[] args){Integer i1 = 127;Integer i2 = 127;System.err.println(i1 == i2);i1 = 128;i2 = 128;System.err.println(i1 == i2);}}
解答:第一个为true,第二个为false。这个是对Integer包装类型中应用的享元模式的考察。
14、true or false?
publicclass Test {public static void main(String[] args) {String str1 = "a";String str2 = "a";String str3 = newString("a");System.err.println(str1 == str2);System.err.println(str1 == str3);str3 = str3.intern();System.err.println(str1 == str3);}}
解答:这个是对String Pool的考察。答案为true、false、true
15、true or false?
publicclassTest {publicstaticvoidmain(String[] args){System.err.println(12 - 11.9 == 0.1);}}
解答:结果为false。这个题我只说下我的想法,12-11.9进行运算后会转换成对象,不在是基本数据类型,因此在进行恒等判断时,就会是false。