美文网首页
初步认识equals与==的区别

初步认识equals与==的区别

作者: 一曲三月 | 来源:发表于2021-07-27 10:34 被阅读0次

    在JVM中,内存分为堆内存跟栈内存。他们二者的区别是: 当我们创建一个对象(new Object)时,就会调用对象的构造函数来开辟空间,将对象数据存储到堆内存中,与此同时在栈内存中生成对应的引用,当我们在后续代码中调用的时候用的都是栈内存中的引用。还需注意的一点,基本数据类型是存储在栈内存中。
    初步认识equals与==的区别:

    1, ==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同 ,
    2,==是指对内存地址进行比较 , equals()是对字符串的内容进行比较,
    3,==指引用是否相同, equals()指的是值是否相等
    4,String s = new String("abcd");和其它任何对象一样.每调用一次就产生一个对象,只要它们调用。
    也可以这么理解: String str = "hello"; 先在内存中找是不是有"hello"这个对象,如果有,就让str指向那个"hello".
    如果内存里没有"hello",就创建一个新的对象保存"hello". String str=new String ("hello") 就是不管内存里是不是已经有"hello"这个对象,都新建一个对象保存"hello"。

    相关文章

      网友评论

          本文标题:初步认识equals与==的区别

          本文链接:https://www.haomeiwen.com/subject/xlanmltx.html