①正确答案是A C D
②原因:
A: 同类型,同值 √
B: equals 的比较必须在同类型基础上,String 和char[] 为不同类型 ×
C: 显然是相等的 √
D: 这个也必然相等, new String ("hello") 在值上等价于 s √
E: 不同类型不能用== ×
③进一步原因:
== 操作符只能在同类型基础上比较值是否相等,相等则为true,否则为false
equals 方法能在不同和相同类型基础上比较,只要类型和值有一个不同,就一定是false,否则为true;
应该是ACD String有个常量池 String s = "hello" 和String t = "hello"; 在常量池中存放一个位置
s==t 返回true
ACD,equals比较的是两个String的值而不是引用(内存地址)
t==c是不对的,因为两者不是同一类型的,不可以比较,编译的时候会提示不通过的
肯定不对的,应该是A才对啊,因为s,t的内存地址不一样的。
equals(),用来判断字符串,==用来判断整数型,
选A.
据我的经验,A,C,D都对。