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);
}
}
41 个解决方案
#1
false
false
true
false
false
true
false
#2
false
false
true
false
false
true
false
#3
又是这种。
#4
主要是第二个:
false
false
true
false
false
false
true
false
#5
大哥 全是 false
#6
false
false
true
false
false
true
false
#7
解释一下啊
#8
nnd +运算等级高于==
我差点让你们搞胡了.
我差点让你们搞胡了.
#9
不懂
#10
第一第二是考查+与==的优先级。
第三第四是考查常量池。
第三第四是考查常量池。
#11
对,如果单纯的 String a = "a";
String b = "a";
System.out.println(a == b);应该是输出true因为指向的同一个对象。
#12
int i1 = 1;
int i2 = 1;
System.out.println("result : " + i1 == i2);
这段如何
#13
up up
#14
jf
#15
这个根本行不通,+的优先级比=高,字符串不能和int类型比较,编译报错
#16
up up
#17
false
false
true
false
俺错了第二个
false
true
false
俺错了第二个
#18
false
false
true
false
谢谢送分
false
true
false
谢谢送分
#19
....mark,若干时日后,或许面试用得到。。。
或者以后用来聊天显摆也可以。。。
或者以后用来聊天显摆也可以。。。
#20
看过的接分.
#21
楼上各位说的都很有道理
学习了
学习了
#22
来接分,哈哈。
#23
恩 2个地方注意下就好了 一个是字符串连接的+运算符,和==运算符 应该是连接之后再比较 所以前两个输出都是false
后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true 最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false
后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true 最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false
#24
false
false
true
false
false
true
false
#25
23楼说的很好
#26
false
false
true
false
false
true
false
#27
总结一句!做题要小心!呵呵!
#28
false
false
true
false
注意前面2题,是字符串相加后,在比较。
false
true
false
注意前面2题,是字符串相加后,在比较。
#29
false
false
true
false
false
true
false
#30
false
false
true
false
false
true
false
#31
学习
#32
false
false
true
false
false
true
false
#33
false
false
true
false
false
true
false
#34
测试了
false
false
true
false
false
false
true
false
#35
测试了
false
false
true
false
false
false
true
false
#36
看着像Java Puzzler里面的题目
#37
学习了下
受用
受用
#38
这个我是在.NET环境下测的。
看来我的路还很长吖。
结果有两个,分别为:
1,但不调试的时候,单独看值与值比较均为true
2,调试完后,输出结果为:Flase,Flase,True,True,
前面的Animals are equal: 与a==b ? 没显示出来!!!
费解,然后改为Console.WriteLine("Animals are equal: {0}", pig == dog);
显示出来了,结果也成了True
哎。。。
看来我的路还很长吖。
结果有两个,分别为:
1,但不调试的时候,单独看值与值比较均为true
2,调试完后,输出结果为:Flase,Flase,True,True,
前面的Animals are equal: 与a==b ? 没显示出来!!!
费解,然后改为Console.WriteLine("Animals are equal: {0}", pig == dog);
显示出来了,结果也成了True
哎。。。
#39
懂了,我真的懂了。
哇哈哈哈哈哈哈哈哈。。。。。。。
哇哈哈哈哈哈哈哈哈。。。。。。。
#40
我一眼看上去怎么觉得是 false ture ture false 呀
#41
把 我给弄晕了 各位大侠 请看这两串代码
String a = "a";
String b = "a";
System.out.println("a==b ? " + a == b);
String str = "abc";
String str2 = "abc";
System.out.println(str == str2);
不都是一样的吗 为什么返回的结果却不一样类????
String a = "a";
String b = "a";
System.out.println("a==b ? " + a == b);
String str = "abc";
String str2 = "abc";
System.out.println(str == str2);
不都是一样的吗 为什么返回的结果却不一样类????
#1
false
false
true
false
false
true
false
#2
false
false
true
false
false
true
false
#3
又是这种。
#4
主要是第二个:
false
false
true
false
false
false
true
false
#5
大哥 全是 false
#6
false
false
true
false
false
true
false
#7
解释一下啊
#8
nnd +运算等级高于==
我差点让你们搞胡了.
我差点让你们搞胡了.
#9
不懂
#10
第一第二是考查+与==的优先级。
第三第四是考查常量池。
第三第四是考查常量池。
#11
对,如果单纯的 String a = "a";
String b = "a";
System.out.println(a == b);应该是输出true因为指向的同一个对象。
#12
int i1 = 1;
int i2 = 1;
System.out.println("result : " + i1 == i2);
这段如何
#13
up up
#14
jf
#15
这个根本行不通,+的优先级比=高,字符串不能和int类型比较,编译报错
#16
up up
#17
false
false
true
false
俺错了第二个
false
true
false
俺错了第二个
#18
false
false
true
false
谢谢送分
false
true
false
谢谢送分
#19
....mark,若干时日后,或许面试用得到。。。
或者以后用来聊天显摆也可以。。。
或者以后用来聊天显摆也可以。。。
#20
看过的接分.
#21
楼上各位说的都很有道理
学习了
学习了
#22
来接分,哈哈。
#23
恩 2个地方注意下就好了 一个是字符串连接的+运算符,和==运算符 应该是连接之后再比较 所以前两个输出都是false
后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true 最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false
后面两个一个是true 最后一个是false d是常量字符串相连接 编译器直接优化成"ac" 所以输出true 最后一个因为有变量引入 在运行时 会创建一个新的字符串对象 因此输出false
#24
false
false
true
false
false
true
false
#25
23楼说的很好
#26
false
false
true
false
false
true
false
#27
总结一句!做题要小心!呵呵!
#28
false
false
true
false
注意前面2题,是字符串相加后,在比较。
false
true
false
注意前面2题,是字符串相加后,在比较。
#29
false
false
true
false
false
true
false
#30
false
false
true
false
false
true
false
#31
学习
#32
false
false
true
false
false
true
false
#33
false
false
true
false
false
true
false
#34
测试了
false
false
true
false
false
false
true
false
#35
测试了
false
false
true
false
false
false
true
false
#36
看着像Java Puzzler里面的题目
#37
学习了下
受用
受用
#38
这个我是在.NET环境下测的。
看来我的路还很长吖。
结果有两个,分别为:
1,但不调试的时候,单独看值与值比较均为true
2,调试完后,输出结果为:Flase,Flase,True,True,
前面的Animals are equal: 与a==b ? 没显示出来!!!
费解,然后改为Console.WriteLine("Animals are equal: {0}", pig == dog);
显示出来了,结果也成了True
哎。。。
看来我的路还很长吖。
结果有两个,分别为:
1,但不调试的时候,单独看值与值比较均为true
2,调试完后,输出结果为:Flase,Flase,True,True,
前面的Animals are equal: 与a==b ? 没显示出来!!!
费解,然后改为Console.WriteLine("Animals are equal: {0}", pig == dog);
显示出来了,结果也成了True
哎。。。
#39
懂了,我真的懂了。
哇哈哈哈哈哈哈哈哈。。。。。。。
哇哈哈哈哈哈哈哈哈。。。。。。。
#40
我一眼看上去怎么觉得是 false ture ture false 呀
#41
把 我给弄晕了 各位大侠 请看这两串代码
String a = "a";
String b = "a";
System.out.println("a==b ? " + a == b);
String str = "abc";
String str2 = "abc";
System.out.println(str == str2);
不都是一样的吗 为什么返回的结果却不一样类????
String a = "a";
String b = "a";
System.out.println("a==b ? " + a == b);
String str = "abc";
String str2 = "abc";
System.out.println(str == str2);
不都是一样的吗 为什么返回的结果却不一样类????