给大家出道题!
这段程序会输出什么?
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