下列值为false的表达式是

下列值为false的表达式是
A、"Java"=="Java"
B、"Java" == new String("Java")
C、"Java". equals("Java")
D、"Java". equals(new String("Java")
【正确答案】:B
名师解析:在Java语言中,字符串的比较可以通过两种方式进行:使用"=="操作符和使用equals()方法。 选项A中,"Java" == "Java",使用了"=="操作符,它比较的是两个字符串变量是否引用同一个对象。由于这里两个字符串字面量是相同的,它们引用的是同一个对象,所以表达式的值是true。 选项B中,"Java" == new String("Java"),同样使用了"=="操作符。然而,这里"Java"是一个字符串字面量,它引用的是常量池中的一个对象;而new String("Java")创建了一个新的字符串对象,即使内容相同,它们也是不同的对象。因此,这个表达式的值是false。 选项C中,"Java".equals("Java"),使用了equals()方法,这个方法用于比较两个字符串的内容是否相等。由于两个字符串的内容相同,所以表达式的值是true。 选项D中,"Java".equals(new String("Java")),同样使用了equals()方法。即使new String("Java")创建了一个新的字符串对象,equals()方法仍然会返回true,因为它比较的是字符串的内容,而不是引用。 综上所述,只有选项B的表达式的值是false,因此正确答案是B。