日期:2014-05-20  浏览次数:20745 次

给大家出道题!
这段程序会输出什么?
Java code

public class AnimalFarm {
    public static void main(String[] args) {
        final String pig = "length: 10";
        final String dog = "length: " + pig.length();
        System.out.println("Animals are equal: " + pig == dog);
        
        String a = "a";
        String b = "a";
        System.out.println("a==b ? " + a == b);
        
        String c = "ac";
        String d = "a" + "c";
        String e = a + "c";
        System.out.println(c == d);
        System.out.println(c == e);
    }
}



------解决方案--------------------
false
false
true
false

------解决方案--------------------
false 
false 
true 
false 

------解决方案--------------------
又是这种。
------解决方案--------------------
主要是第二个:
false
false
true
false
------解决方案--------------------
大哥 全是 false
------解决方案--------------------
false 
false 
true 
false 

------解决方案--------------------
解释一下啊
------解决方案--------------------
nnd +运算等级高于==

我差点让你们搞胡了.
------解决方案--------------------
不懂
------解决方案--------------------
第一第二是考查+与==的优先级。
第三第四是考查常量池。
------解决方案--------------------
探讨
主要是第二个:
false
false
true
false

------解决方案--------------------
探讨
第一第二是考查+与==的优先级。
第三第四是考查常量池。

------解决方案--------------------
jf
------解决方案--------------------
探讨
Java codeint i1=1;int i2=1;
System.out.println("result :"+ i1== i2);
这段如何

------解决方案--------------------
up up
------解决方案--------------------
false
false
true
false
俺错了第二个
------解决方案--------------------
false
false
true
false
谢谢送分
------解决方案--------------------
....mark,若干时日后,或许面试用得到。。。

或者以后用来聊天显摆也可以。。。
------解决方案--------------------
看过的接分.
------解决方案--------------------
楼上各位说的都很有道理
学习了
------解决方案--------------------
来接分,哈哈。
------解决方案--------------------
恩 2个地方注意下就好了 一个是字符串连接的+运算符,和==运算符 应该是连接之后再比较 所以前两个输出都是false

后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true 最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false