java中==不是只能判断数值类型吗?为什么可以判断空字符串,输出为true?

public class Test {


    public static void main(String[] args) {

        String s ="";

        System.out.println(s=="");

    }


}

《《《《《《《《《《《《《《《《《《《《


输出为true


MM们
浏览 605回答 5
5回答

翻过高山走不出你

用双引号创建的相同内容的字符串,均指向同一个引用。而new String出来的是新的一个对象。这也是为什么要尽量避免new String<pre>public class StringEqualsTest{&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; String s1="Gavin";&nbsp; &nbsp; &nbsp; &nbsp; String s2=new String("Gavin");&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Gavin"==s1);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Gavin"==s2);&nbsp; &nbsp; }}$java StringEqualsTest&nbsp;truefalse

一只斗牛犬

String不是基本数据类型,所以使用==是比较的内存地址。

慕田峪9158850

网上关于Java的==和equals()的介绍很多,随便浏览几篇你就可以明白这个问题,这个问题表面很简单,但是越往后就会越深入。

慕的地6264312

java中==不是只能判断数值类型吗?答:不是,==可以判断基本数据类型(数值类型)、对象。

慕的地8271018

==比较的是字面值字符串为引用类型,且已建立的字符串在内存不可变,s引用的是""串的内存地址,相同的地址比较自然一样
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java