这段程序会输出什么?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);
}
}

解决方案 »

  1.   

    false
    false
    true
    false
      

  2.   

    false 
    false 
    true 
    false 
      

  3.   

    主要是第二个:
    false
    false
    true
    false
      

  4.   

    false 
    false 
    true 
    false 
      

  5.   

    nnd +运算等级高于==我差点让你们搞胡了.
      

  6.   

    对,如果单纯的 String a = "a";
            String b = "a";
            System.out.println(a == b);应该是输出true因为指向的同一个对象。
      

  7.   


                    int i1 = 1;
    int i2 = 1;
    System.out.println("result : " + i1 == i2);这段如何
      

  8.   


    这个根本行不通,+的优先级比=高,字符串不能和int类型比较,编译报错
      

  9.   

    false
    false
    true
    false
    俺错了第二个
      

  10.   

    false
    false
    true
    false
    谢谢送分
      

  11.   

    恩 2个地方注意下就好了 一个是字符串连接的+运算符,和==运算符   应该是连接之后再比较  所以前两个输出都是false后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true  最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false
      

  12.   

    false 
    false 
    true 
    false 
      

  13.   

    false 
    false 
    true 
    false 
      

  14.   

    false
    false
    true
    false注意前面2题,是字符串相加后,在比较。
      

  15.   

    false 
    false 
    true 
    false 
      

  16.   

    false 
    false 
    true 
    false
      

  17.   

    测试了
    false
    false
    true
    false
      

  18.   

    测试了 
    false 
    false 
    true 
    false
      

  19.   

    看着像Java Puzzler里面的题目
      

  20.   

    这个我是在.NET环境下测的。看来我的路还很长吖。结果有两个,分别为:
    1,但不调试的时候,单独看值与值比较均为true
    2,调试完后,输出结果为:Flase,Flase,True,True,
    前面的Animals are equal: 与a==b ? 没显示出来!!!
    费解,然后改为Console.WriteLine("Animals are equal: {0}", pig == dog);
    显示出来了,结果也成了True哎
      

  21.   

    我一眼看上去怎么觉得是  false ture ture false 呀
      

  22.   

    把 我给弄晕了   各位大侠 请看这两串代码    String a = "a";
            String b = "a";
            System.out.println("a==b ? " + a == b);
            
            String str = "abc"; 
    String str2 = "abc";
    System.out.println(str == str2);不都是一样的吗   为什么返回的结果却不一样类????